Материал: ПИН-42_2019_Золотарев_ИА_Текст_Программы

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

"component[name='angtel-component']/angtel-stp:spanning-tree/forwarding-delay"))

if 2*(fwd[1] - 1) < args["max-age"] then

s:output("Wrong value! 2 * (Bridge Forward Delay - 1 second) must be >= Bridge Max Age")

return

end

local p = {

operation = "replace",

target = "/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/" ..

"angtel-stp:spanning-tree/max-age",

value = {

["max-age"] = args["max-age"]

}

}

s:cdb_edit_config(p)

end

},

["spanning-tree priority"] = {

description = "Configure the device STP priority",

usage_info = "priority",

parameters = {

"priority\tSpecifies the bridge priority. Range: 0-61440. Default is 32768. " ..

"The priority value must be a multiple of 4096.\n"

},

args = {

{

type = "positional",

name = "priority",

vtype = "int",

nvalues = "1",

description = "Bridge priority",

required = true

}

},

handler = function(s, args)

assert(args.priority % 4096 == 0, "Priority must be a multiple of 4096")

local p = {

operation = "replace",

target = "/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/" ..

"angtel-stp:spanning-tree/bridge-priority",

value = {

["bridge-priority"] = args.priority

}

}

s:cdb_edit_config(p)

end

},

["spanning-tree hello-time"] = {

description = "Configure the device STP hello time",

usage_info = "hello-time",

parameters = {

"hello-time\tSpecifies the bridge hello-time. Range: 0-10. Default is 2. "

},

args = {

{

type = "positional",

name = "hello-time",

vtype = "int",

nvalues = "1",

description = "Bridge hello-time",

required = true

}

},

handler = function(s, args)

local max_age = c.strip_cdb_data(s:cdb_get("/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/angtel-stp:spanning-tree/max-age"))

if max_age[1] < 2*(args["hello-time"] + 1) then

s:output("Wrong value! Bridge Max Age must be >= 2 * (Bridge Hello Time + 1 second)")

return

end

local p = {

operation = "replace",

target = "/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/" ..

"angtel-stp:spanning-tree/hello-time",

value = {

["hello-time"] = args["hello-time"]

}

}

s:cdb_edit_config(p)

end

},

["spanning-tree hold-count"] = {

description = "Configure the device STP hold count",

usage_info = "hold-count",

parameters = {

"hold-count\tSpecifies the bridge hold-count. Range: 0-10. Default is 6. "

},

args = {

{

type = "positional",

name = "hold-count",

vtype = "int",

nvalues = "1",

description = "Bridge hold-count",

required = true

}

},

handler = function(s, args)

local p = {

operation = "replace",

target = "/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/" ..

"angtel-stp:spanning-tree/hold-count",

value = {

["hold-count"] = args["hold-count"]

}

}

s:cdb_edit_config(p)

end

},

["no spanning-tree"] = {

description = "Disable spanning tree protocol.",

usage_info = "",

handler = function(s, args)

local p = {

operation = "replace",

target = "/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/" ..

"angtel-stp:spanning-tree/enable",

value = {

enable = false

}

}

s:cdb_edit_config(p)

end

},

["no spanning-tree forward-time"] = {

description = "Restore default configuration",

usage_info = "",

handler = function(s, args)

local p = {

operation = "delete",

target = "/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/" ..

"angtel-stp:spanning-tree/forwarding-delay",

}

s:cdb_edit_config(p)

end

},

["no spanning-tree max-age"] = {

description = "Restore default configuration",

usage_info = "",

handler = function(s, args)

local p = {

operation = "delete",

target = "/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/" ..

"angtel-stp:spanning-tree/max-age",

}

s:cdb_edit_config(p)

end

},

["no spanning-tree priority"] = {

description = "Restore default configuration",

usage_info = "",

handler = function(s, args)

local p = {

operation = "delete",

target = "/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/" ..

"angtel-stp:spanning-tree/bridge-priority",

}

s:cdb_edit_config(p)

end

},

["no spanning-tree hello-time"] = {

description = "Restore default configuration",

usage_info = "",

handler = function(s, args)

local p = {

operation = "delete",

target = "/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/" ..

"angtel-stp:spanning-tree/hello-time",

}

s:cdb_edit_config(p)

end

},

["no spanning-tree hold-count"] = {

description = "Restore default configuration",

usage_info = "",

handler = function(s, args)

local p = {

operation = "delete",

target = "/ieee802-dot1q-bridge:bridges/bridge[name='br0']/" ..

"component[name='angtel-component']/" ..

"angtel-stp:spanning-tree/hold-count",

}

s:cdb_edit_config(p)

end

}

}

Москва, 2019

Источник: https://studfile.net/preview/16493240/