X-Git-Url: http://git.openwrt.org/?p=feed%2Frouting.git;a=blobdiff_plain;f=bird-openwrt%2Fbird6-openwrt%2Fsrc%2Fmodel%2Fgen_proto.lua;fp=bird-openwrt%2Fbird6-openwrt%2Fsrc%2Fmodel%2Fgen_proto.lua;h=0000000000000000000000000000000000000000;hp=d823907fc843248c2787138a917c0a4207360e44;hb=ecbdeb0500cc92b514a7442a09b9e90973fa3554;hpb=453de2136e2f354b2d6c88270297f31d4de488ae diff --git a/bird-openwrt/bird6-openwrt/src/model/gen_proto.lua b/bird-openwrt/bird6-openwrt/src/model/gen_proto.lua deleted file mode 100644 index d823907..0000000 --- a/bird-openwrt/bird6-openwrt/src/model/gen_proto.lua +++ /dev/null @@ -1,266 +0,0 @@ ---[[ -Copyright (C) 2014-2017 - Eloi Carbo - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program. If not, see . ---]] - -require("luci.sys") -local http = require "luci.http" -local uci = luci.model.uci.cursor() - --- Repeated Strings -local common_string = "Valid options are:
" .. "1. all (All the routes)
" .. "2. none (No routes)
" .. "3. filter Your_Filter_Name (Call a specific filter from any of the available in the filters files)" -local imp_string = "Set if the protocol must import routes.
" .. common_string -local exp_string = "Set if the protocol must export routes.
" .. common_string - -m=Map("bird6", "Bird6 general protocol's configuration.") - --- Optional parameters lists -local protoptions = { - {["name"]="table", ["help"]="Auxiliar table for routing", ["depends"]={"static","kernel"}}, - {["name"]="import", ["help"]=imp_string, ["depends"]={"kernel"}}, - {["name"]="export", ["help"]=exp_string, ["depends"]={"kernel"}}, - {["name"]="scan_time", ["help"]="Time between scans", ["depends"]={"kernel","device"}}, - {["name"]="kernel_table", ["help"]="Set which table must be used as auxiliar kernel table", ["depends"]={"kernel"}}, - {["name"]="learn", ["help"]="Learn routes", ["depends"]={"kernel"}}, - {["name"]="persist", ["help"]="Store routes. After a restart, routes willstill be configured", ["depends"]={"kernel"}} -} - -local routeroptions = { - {["name"]="prefix",["help"]="",["depends"]={"router","special","iface","multipath","recursive"}}, - {["name"]="via",["help"]="",["depends"]={"router","multipath"}}, - {["name"]="attribute",["help"]="",["depends"]={"special"}}, - {["name"]="iface",["help"]="",["depends"]={"iface"}}, - {["name"]="ip",["help"]="",["depends"]={"recursive"}} -} - --- --- KERNEL PROTOCOL --- - -sect_kernel_protos = m:section(TypedSection, "kernel", "Kernel options", "Configuration of the kernel protocols. First Instance MUST be Primary table (no table or kernel_table fields).") -sect_kernel_protos.addremove = true -sect_kernel_protos.anonymous = false - --- Default kernel parameters - -disabled = sect_kernel_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured.") -disabled.default=0 - --- Optional parameters -for _,o in ipairs(protoptions) do - if o.name ~= nil then - for _, d in ipairs(o.depends) do - if d == "kernel" then - if o.name == "learn" or o.name == "persist" then - value = sect_kernel_protos:option(Flag, o.name, translate(o.name), translate(o.help)) - elseif o.name == "table" then - value = sect_kernel_protos:option(ListValue, o.name, translate(o.name), translate(o.help)) - uci:foreach("bird6", "table", - function (s) - value:value(s.name) - end) - value:value("") - value.default = "" - else - value = sect_kernel_protos:option(Value, o.name, translate(o.name), translate(o.help)) - end - value.optional = true - value.rmempty = true - end - end - - end -end - --- --- DEVICE PROTOCOL --- - -sect_device_protos = m:section(TypedSection, "device", "Device options", "Configuration of the device protocols.") -sect_device_protos.addremove = true -sect_device_protos.anonymous = false - --- Default kernel parameters - -disabled = sect_device_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured.") -disabled.default=0 - --- Optional parameters -for _,o in ipairs(protoptions) do - if o.name ~= nil then - for _, d in ipairs(o.depends) do - if d == "device" then - value = sect_device_protos:option(Value, o.name, translate(o.name), translate(o.help)) - value.optional = true - value.rmempty = true - end - end - end -end - --- --- STATIC PROTOCOL --- - -sect_static_protos = m:section(TypedSection, "static", "Static options", "Configuration of the static protocols.") -sect_static_protos.addremove = true -sect_static_protos.anonymous = false - --- Default kernel parameters - -disabled = sect_static_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured.") -disabled.default=0 - --- Optional parameters -for _,o in ipairs(protoptions) do - if o.name ~= nil then - for _, d in ipairs(o.depends) do - if d == "static" then - if o.name == "table" then - value = sect_static_protos:option(ListValue, o.name, translate(o.name), translate(o.help)) - uci:foreach("bird6", "table", - function (s) - value:value(s.name) - end) - value:value("") - value.default = "" - else - value = sect_static_protos:option(Value, o.name, translate(o.name), translate(o.help)) - end - value.optional = true - value.rmempty = true - end - end - end -end - - --- --- PIPE PROTOCOL --- -sect_pipe_protos = m:section(TypedSection, "pipe", "Pipe options", "Configuration of the Pipe protocols.") -sect_pipe_protos.addremove = true -sect_pipe_protos.anonymous = false - --- Default Pipe parameters -disabled = sect_pipe_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured. This protocol will connect the configured 'Table' to the 'Peer Table'.") -disabled.default=0 - -table = sect_pipe_protos:option(ListValue, "table", "Table", "Select the Primary Table to connect.") -table.optional = false -uci:foreach("bird6", "table", - function (s) - table:value(s.name) - end) -table:value("") -table.default = "" - -peer_table = sect_pipe_protos:option(ListValue, "peer_table", "Peer Table", "Select the Secondary Table to connect.") -table.optional = false -uci:foreach("bird6", "table", - function (s) - peer_table:value(s.name) - end) -peer_table:value("") -peer_table.default = "" - -mode = sect_pipe_protos:option(ListValue, "mode", "Mode", "Select transparent to retransmit all routes and their attributes
Select opaque to retransmit optimal routes (similar to what other protocols do)") -mode.optional = false -mode:value("transparent") -mode:value("opaque") -mode.default = "transparent" - -import = sect_pipe_protos:option(Value, "import", "Import",imp_string) -import.optional=true - -export = sect_pipe_protos:option(Value, "export", "Export", exp_string) -export.optional=true - - --- --- DIRECT PROTOCOL --- -sect_direct_protos = m:section(TypedSection, "direct", "Direct options", "Configuration of the Direct protocols.") -sect_direct_protos.addremove = true -sect_direct_protos.anonymous = false - --- Default Direct parameters -disabled = sect_direct_protos:option(Flag, "disabled", "Disabled", "If this option is true, the protocol will not be configured. This protocol will connect the configured 'Table' to the 'Peer Table'.") -disabled.optional = false -disabled.default = 0 - -interface = sect_direct_protos:option(Value, "interface", "Interfaces", "By default Direct will generate device routes for all the interfaces. To restrict this behaviour, select a number of patterns to match your desired interfaces:" .. "
" .. "1. All the strings MUST be quoted: \"pattern\"" .. "
" .. "2. Use * (star) to match patterns: \"eth*\" (include all eth... interfaces)" .. "
" .. "3. You can add \"-\" (minus) to exclude patterns: \"-em*\" (exclude all em... interfaces)." .. "
" .. "4. Separate several patterns using , (coma): \"-em*\", \"eth*\" (exclude em... and include all eth... interfaces).") -interface.optional = false -interface.default = "\"*\"" - - --- --- ROUTES FOR STATIC PROTOCOL --- -sect_routes = m:section(TypedSection, "route", "Routes configuration", "Configuration of the routes used in static protocols.") -sect_routes.addremove = true -sect_routes.anonymous = true - -instance = sect_routes:option(ListValue, "instance", "Route instance", "") -i = 0 - -uci:foreach("bird6", "static", - function (s) - instance:value(s[".name"]) - end) - -prefix = sect_routes:option(Value, "prefix", "Route prefix", "") -prefix.datatype = "ip6prefix" - -type = sect_routes:option(ListValue, "type", "Type of route", "") -type:value("router") -type:value("special") -type:value("iface") -type:value("recursive") -type:value("multipath") - -valueVia = sect_routes:option(Value, "via", "Via", "") -valueVia.optional = false -valueVia:depends("type", "router") -valueVia.datatype = "ip6addr" - -listVia = sect_routes:option(DynamicList, "l_via", "Via", "") -listVia:depends("type", "multipath") -listVia.optional=false -listVia.datatype = "ip6addr" - -attribute = sect_routes:option(Value, "attribute", "Attribute", "Types are: unreachable, prohibit and blackhole") -attribute:depends("type", "special") - -iface = sect_routes:option(ListValue, "iface", "Interface", "") -iface:depends("type", "iface") - -uci:foreach("network", "interface", - function(section) - if section[".name"] ~= "loopback" then - iface:value(section[".name"]) - end - end) - -ip = sect_routes:option(Value, "ip", "IP address", "") -ip:depends("type", "ip") -ip.datatype = [[ or"ip4addr", "ip6addr" ]] - -function m.on_commit(self,map) - luci.sys.exec('/etc/init.d/bird6 restart') -end - -return m -