Hi Troopy, Attached is a new VC3 interfaces template file that should do what you want. Just put it in /opt/vyatta/share/xorp/templates/ and reboot. It will add an address parameter to the bridge interface. It doesn't add the IP to XORP unfortunately. (I tried that but couldn't get it to work for some reason. Have to do more digging...) But it should allow you to put the ip in the config and configure the interface on reboot.
Give it a try and let me know if it fixes your issue... Cheers, Robert. Troopy . wrote: > Hello, > > I didn't find any possibility to set a bridge IP address at the Vyatta > platform level. > > What I did: > configure the bridge at the Vyatta level and set an IP address at the Linux > level. > > Vyatta level: > > set interface bridge br0 > set interface ethernet eth0 bridge-group bridge br0 > set interface ethernet eth1 bridge-group bridge br0 > > Linux level: > > ifconfig br0 10.9.0.222 netmask 255.255.255.0 > > Result: > it works fine but it would be better to be able to add the IP address > at the Vyatta level. > > > REgards > > Troopy > > > > > > ---------- Original Message ---------------------------------- > From: "Troopy ." <[EMAIL PROTECTED]> > Reply-To: [EMAIL PROTECTED] > Date: Tue, 27 Nov 2007 10:00:48 +0100 > >> >> Hello, >> >> The BGP base study link was wrong, here is the good one: >> >> http://openmaniak.com/vyatta_case4.php >> >> OM Team >> >> >> ---------- Original Message ---------------------------------- >> From: "Troopy ." <[EMAIL PROTECTED]> >> Reply-To: [EMAIL PROTECTED] >> Date: Tue, 27 Nov 2007 08:55:45 +0100 >> >>> >>> Hello, >>> >>> We released a little case study about Vyatta Packages. >>> >>> http://openmaniak.com/vyatta_case_package.php >>> >>> Our BGP tutorial is still pending: >>> >>> http://openmaniak.com/vyatta_case_bgp.php >>> >>> REgards >>> >>> OM Team >>> >>> >>> >>> ______________________________________________________ >>> Désirez vous une adresse éléctronique @suisse.com? >>> Visitez la Suisse virtuelle sur http://www.suisse.com >>> >>> _______________________________________________ >>> Vyatta-users mailing list >>> Vyatta-users@mailman.vyatta.com >>> http://mailman.vyatta.com/mailman/listinfo/vyatta-users >>> >> >> >> ______________________________________________________ >> Désirez vous une adresse éléctronique @suisse.com? >> Visitez la Suisse virtuelle sur http://www.suisse.com >> >> _______________________________________________ >> Vyatta-users mailing list >> Vyatta-users@mailman.vyatta.com >> http://mailman.vyatta.com/mailman/listinfo/vyatta-users >> > > > > ______________________________________________________ > Désirez vous une adresse éléctronique @suisse.com? > Visitez la Suisse virtuelle sur http://www.suisse.com > > _______________________________________________ > Vyatta-users mailing list > Vyatta-users@mailman.vyatta.com > http://mailman.vyatta.com/mailman/listinfo/vyatta-users
interfaces { targetname: txt = "fea"; restore: bool = false; loopback @: txt { description: txt = ""; address @: ipv4 { prefix-length: u32; broadcast: ipv4; multicast-capable: bool; disable: toggle = false; } address @: ipv6 { prefix-length: u32; broadcast: ipv6; multicast-capable: bool; disable: toggle = false; } } ethernet @: txt { disable: toggle = false; discard: toggle = false; description: txt = ""; mac: macaddr; hw-id: macaddr; mtu: u32; duplex: txt = "auto"; speed: txt = "auto"; address @: ipv4 { prefix-length: u32; broadcast: ipv4; multicast-capable: bool; disable: toggle = false; } address @: ipv6 { prefix-length: u32; broadcast: ipv6; multicast-capable: bool; disable: toggle = false; } bridge-group { bridge: txt; cost: u32; priority: u32; } vif @: txt { disable: toggle = false; description: txt = ""; address @: ipv4 { prefix-length: u32; broadcast: ipv4; destination: ipv4; multicast-capable: bool; point-to-point: bool; loopback: bool; disable: toggle = false; } address @: ipv6 { prefix-length: u32; broadcast: ipv6; destination: ipv6; multicast-capable: bool; point-to-point: bool; loopback: bool; disable: toggle = false; } bridge-group { bridge: txt; cost: u32; priority: u32; } } } bridge @: txt { description: txt = ""; disable: bool = false; aging: u32 = 300; stp: bool = false; priority: u32 = 0; forwarding-delay: u32 = 15; hello-time: u32 = 2; max-age: u32 = 20; address @: ipv4 { prefix-length: u32; } } } interfaces { %help: short "Network interface configuration"; %modinfo: provides interfaces; %modinfo: path "libexec/xorp/xorp_fea"; %modinfo: default_targetname "fea"; %modinfo: status_method xrl "$(interfaces.targetname)/common/0.1/get_status->status:u32&reason:txt"; %modinfo: shutdown_method xrl "$(interfaces.targetname)/common/0.1/shutdown"; /*OLD==>> %modinfo: start_commit xrl "$(interfaces.targetname)/ifmgr/0.1/start_transaction->tid:u32=$(interfaces.TID)"; %modinfo: end_commit xrl "$(interfaces.targetname)/ifmgr/0.1/commit_transaction?tid:u32=$(interfaces.TID)"; <<==*/ %modinfo: start_commit program "/opt/vyatta/sbin/commit_interface.sh start $(interfaces.targetname) -> stdout=$(interfaces.TID)"; %modinfo: end_commit program "/opt/vyatta/sbin/commit_interface.sh end $(interfaces.targetname) $(interfaces.TID)"; %mandatory: $(@.targetname); targetname { %user-hidden: "XRL target name"; %help: short "XRL target name"; %set:; } TID { %user-hidden: "Transaction ID generated by the FEA"; %create:; } restore { %help: short "Restore original configuration on shutdown"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/set_restore_original_config_on_shutdown?enable:bool=$(@)"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_restore_original_config_on_shutdown?enable:bool=$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/set_restore_original_config_on_shutdown?enable:bool=$(DEFAULT)"; } loopback @: txt { %help: short "Configure loopback interface"; %allow: $(@) "lo" %help: "Configure loopback interface"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_interface?tid:u32=$(interfaces.TID)&ifname:txt=$(@)"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/set_interface_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&enabled:bool=true"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_vif?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&vif:txt=$(@)"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/set_vif_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&vif:txt=$(@)&enabled:bool=true"; %delete: program "echo Can not delete loopback interface. 1>&2; exit 1"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_interface_names->ifnames:list"; description { %help: short "Add a human-readable description of an interface"; %set:; %get:; %delete:; } address @: ipv4 { %help: short "Set IPv4 address"; %mandatory: $(@.prefix-length); %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_address4?tid:u32=$(interfaces.TID)&ifname:txt=$(loopback.@)&vif:txt=$(loopback.@)&address:ipv4=$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_address4?tid:u32=$(interfaces.TID)&ifname:txt=$(loopback.@)&vif:txt=$(loopback.@)&address:ipv4=$(@)"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_vif_addresses4?ifname:txt=$(loopback.@)&vif:txt->addresses:list"; disable { %help: short "Disable the address"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_address_enabled4?tid:u32=$(interfaces.TID)&ifname:txt=$(loopback.@)&vif:txt=$(loopback.@)&address:ipv4=$(address.@)&enabled:bool=`~$(@)`"; } prefix-length { %help: short "Assign the network prefix length"; %allow-range: $(@) "1" "32" %help: "The network prefix length"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_prefix4?tid:u32=$(interfaces.TID)&ifname:txt=$(loopback.@)&vif:txt=$(loopback.@)&address:ipv4=$(address.@)&prefix_len:u32=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_prefix4?ifname:txt=$(loopback.@)&vif:txt=$(loopback.@)&address:ipv4=$(address.@)->prefix_len:u32"; } broadcast { %help: short "Assign the network broadcast address"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_broadcast4?tid:u32=$(interfaces.TID)&ifname:txt=$(loopback.@)&vif:txt=$(loopback.@)&address:ipv4=$(address.@)&broadcast:ipv4=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_broadcast4?ifname:txt=$(loopback.@)&vif:txt=$(loopback.@)&address:ipv4=$(address.@)->broadcast:ipv4=$(@)"; } multicast-capable { %help: short "Show if the address is multicast capable"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_address_flags4?ifname:txt=$(loopback.@)&vif:txt=$(loopback.@)&address:ipv4=$(address.@)->enabled:bool&broadcast:bool&loopback:bool&point_to_point:bool&multicast:bool=$(@)"; } } address @: ipv6 { %help: short "Set IPv6 address"; %mandatory: $(@.prefix-length); %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_address6?tid:u32=$(interfaces.TID)&ifname:txt=$(interface.@)&vif:txt=$(loopback.@)&address:ipv6=$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_address6?tid:u32=$(interfaces.TID)&ifname:txt=$(interface.@)&vif:txt=$(loopback.@)&address:ipv6=$(@)"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_vif_addresses6?ifname:txt=$(loopback.@)&vif:txt->addresses:list"; disable { %help: short "Disable the address"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_address_enabled6?tid:u32=$(interfaces.TID)&ifname:txt=$(loopback.@)&vif:txt=$(address.@)&address:ipv6=$(address.@)&enabled:bool=`~$(@)`"; } prefix-length { %help: short "Assign the network prefix length"; %allow-range: $(@) "1" "128" %help: "The network prefix length"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_prefix6?tid:u32=$(interfaces.TID)&ifname:txt=$(loopback.@)&vif:txt=$(address.@)&address:ipv6=$(address.@)&prefix_len:u32=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_prefix6?ifname:txt=$(loopback.@)&vif:txt=$(address.@)&address:ipv6=$(address.@)->prefix_len:u32"; } multicast-capable { %help: short "Show if the address is multicast capable"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_address_flags6?ifname:txt=$(loopback.@)&vif:txt=$(address.@)&address:ipv6=$(address.@)->enabled:bool&loopback:bool&point_to_point:bool&multicast:bool=$(@)"; } } } ethernet @: txt { %help: short "Ethernet interface name"; %allow: $(@) "eth0" %help: "Ethernet interface name"; %allow: $(@) "eth1" %help: "Ethernet interface name"; %allow: $(@) "eth2" %help: "Ethernet interface name"; %allow: $(@) "eth3" %help: "Ethernet interface name"; %allow: $(@) "eth4" %help: "Ethernet interface name"; %allow: $(@) "eth5" %help: "Ethernet interface name"; %allow: $(@) "eth6" %help: "Ethernet interface name"; %allow: $(@) "eth7" %help: "Ethernet interface name"; %allow: $(@) "eth8" %help: "Ethernet interface name"; %allow: $(@) "eth9" %help: "Ethernet interface name"; %allow: $(@) "eth10" %help: "Ethernet interface name"; %allow: $(@) "eth11" %help: "Ethernet interface name"; %allow: $(@) "eth12" %help: "Ethernet interface name"; %allow: $(@) "eth13" %help: "Ethernet interface name"; %allow: $(@) "eth14" %help: "Ethernet interface name"; %allow: $(@) "eth15" %help: "Ethernet interface name"; %allow: $(@) "eth16" %help: "Ethernet interface name"; %allow: $(@) "eth17" %help: "Ethernet interface name"; %allow: $(@) "eth18" %help: "Ethernet interface name"; %allow: $(@) "eth19" %help: "Ethernet interface name"; %allow: $(@) "eth20" %help: "Ethernet interface name"; %allow: $(@) "eth21" %help: "Ethernet interface name"; %allow: $(@) "eth22" %help: "Ethernet interface name"; %allow: $(@) "eth23" %help: "Ethernet interface name"; %create: program "ifconfig $(@) 0.0.0.0"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_interface?tid:u32=$(interfaces.TID)&ifname:txt=$(@)"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/set_interface_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&enabled:bool=true"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_vif?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&vif:txt=$(@)"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/set_vif_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&vif:txt=$(@)&enabled:bool=true"; %update: program "/opt/vyatta/sbin/xorp_tmpl_tool set interfaces ethernet $(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_vif?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&vif:txt=$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_interface?tid:u32=$(interfaces.TID)&ifname:txt=$(@)"; %delete: program "/opt/vyatta/sbin/xorp_tmpl_tool delete interfaces ethernet $(@)"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_interface_names->ifnames:list"; disable { %help: short "Disable a network interface"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_interface_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&enabled:bool=`~$(@)`"; } discard { %help: short "Configure discard interface"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_interface_discard?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&discard:bool=$(@)"; } default-system-config { %help: short "Use default values from the system"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/configure_interface_from_system?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)"; } description { %help: short "Add a human-readable description of an interface"; %set:; %get:; %delete:; } mac { %help: short "Set the MAC address"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_mac?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&mac:mac=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_mac?ifname:txt=$(ethernet.@)->mac:mac=$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_mac?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)"; } hw-id { %help: short "The original factory assigned MAC address"; } mtu { %help: short "Set the MTU"; /* Minimum and maximum MTU as defined in RFC 791 and RFC 1191 */ %allow-range: $(@) "68" "65535" %help: "The MTU (in octets)"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_mtu?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&mtu:u32=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_mtu?ifname:txt=$(ethernet.@)->mtu:u32=$(@)"; } duplex { %help: short "Set the interface duplex"; %allow: $(@) "full" %help: "Set full duplex mode"; %allow: $(@) "half" %help: "Set half duplex mode"; %allow: $(@) "auto" %help: "Set duplex auto-negotiation mode"; %set: program "sh -c 'if [ \"$(@)\" != \"auto\" ] && [ \"$([EMAIL PROTECTED])\" != \"auto\" ]; then ethtool -s $(ethernet.@) duplex $(@) speed $([EMAIL PROTECTED]) autoneg off; elif [ \"$(@)\" != \"auto\" ]; then ethtool -s $(ethernet.@) duplex $(@) autoneg off; fi;'"; %delete: program "sh -c 'if [ \"$([EMAIL PROTECTED])\" == \"auto\" ]; then ethtool -s $(ethernet.@) autoneg on; fi'"; } speed { %help: short "Set interface speed"; %allow: $(@) "10" %help: "Set 10mb speed mode"; %allow: $(@) "100" %help: "Set 100mb speed mode"; %allow: $(@) "1000" %help: "Set 1000mb speed mode"; %allow: $(@) "auto" %help: "Set speed auto-negotiation mode"; %set: program "sh -c 'if [ \"$(@)\" != \"auto\" ] && [ \"$([EMAIL PROTECTED])\" != \"auto\" ]; then ethtool -s $(ethernet.@) speed $(@) duplex $([EMAIL PROTECTED]) autoneg off; elif [ \"$(@)\" != \"auto\" ]; then ethtool -s $(ethernet.@) speed $(@) autoneg off; fi;'"; %delete: program "sh -c 'if [ \"$([EMAIL PROTECTED])\" == \"auto\" ]; then ethtool -s $(ethernet.@) autoneg on; fi'"; } address @: ipv4 { %help: short "Set IP address"; %mandatory: $(@.prefix-length); /* %create: program "ifconfig $(ethernet.@) 0.0.0.0";*/ %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_address4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv4=$(@)"; %update: program "/opt/vyatta/sbin/xorp_tmpl_tool set interfaces ethernet $(ethernet.@) address $(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_address4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv4=$(@)"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_vif_addresses4?ifname:txt=$(ethernet.@)&vif:txt->addresses:list"; %delete: program "/opt/vyatta/sbin/xorp_tmpl_tool delete interfaces ethernet $(ethernet.@) address $(@)"; disable { %help: short "Disable the address"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_address_enabled4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv4=$(address.@)&enabled:bool=`~$(@)`"; } prefix-length { %set: program "/opt/vyatta/sbin/xorp_tmpl_tool set interfaces ethernet $(ethernet.@) address $(address.@) prefix-length $(@)"; %delete: program "/opt/vyatta/sbin/xorp_tmpl_tool delete interfaces ethernet $(ethernet.@) address $(address.@) prefix-length"; %help: short "Assign the network prefix length"; %allow-range: $(@) "1" "32" %help: "The network prefix length"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_prefix4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv4=$(address.@)&prefix_len:u32=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_prefix4?ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv4=$(address.@)->prefix_len:u32"; } broadcast { %help: short "Assign the network broadcast address"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_broadcast4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv4=$(address.@)&broadcast:ipv4=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_broadcast4?ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv4=$(address.@)->broadcast:ipv4=$(@)"; } multicast-capable { %help: short "Show if the address is multicast capable"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_address_flags4?ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv4=$(address.@)->enabled:bool&broadcast:bool&loopback:bool&point_to_point:bool&multicast:bool=$(@)"; } } address @: ipv6 { %help: short "Set IP address"; %mandatory: $(@.prefix-length); %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_address6?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_address6?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(@)"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_vif_addresses6?ifname:txt=$(ethernet.@)&vif:txt->addresses:list"; disable { %help: short "Disable the address"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_address_enabled6?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)&enabled:bool=`~$(@)`"; } prefix-length { %help: short "Assign the network prefix length"; %allow-range: $(@) "1" "128" %help: "The network prefix length"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_prefix6?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)&prefix_len:u32=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_prefix6?ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)->prefix_len:u32"; } multicast-capable { %help: short "Show if the address is multicast capable"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_address_flags6?ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)->enabled:bool&loopback:bool&point_to_point:bool&multicast:bool=$(@)"; } } bridge-group { %help: short "Add this interface to a bridge group"; %mandatory: $([EMAIL PROTECTED]); bridge { %allow: $(@) "br0" %help: "Bridge interface name"; %allow: $(@) "br1" %help: "Bridge interface name"; %allow: $(@) "br2" %help: "Bridge interface name"; %allow: $(@) "br3" %help: "Bridge interface name"; %allow: $(@) "br4" %help: "Bridge interface name"; %allow: $(@) "br5" %help: "Bridge interface name"; %allow: $(@) "br6" %help: "Bridge interface name"; %allow: $(@) "br7" %help: "Bridge interface name"; %allow: $(@) "br8" %help: "Bridge interface name"; %allow: $(@) "br9" %help: "Bridge interface name"; %help: short "Add this interface to a bridge group"; /* Notes: I may have to bring the interface down first. It may need to not have an IP addresss. * I may need to verify that the bridge group exists first. */ %set: program "brctl addif $(@) $(ethernet.@)"; %delete: program "brctl delif $(@) $(ethernet.@)"; } cost { %help: short "Set the path cost for this port"; %set: program "brctl setpathcost $([EMAIL PROTECTED]) $(ethernet.@) $(@)"; %delete: program "brctl setpathcost $([EMAIL PROTECTED]) $(ethernet.@) $(@)"; } priority { %help: short "Set the path priority for this port"; %set: program "brctl setportprio $([EMAIL PROTECTED]) $(ethernet.@) $(@)"; %delete: program "brctl setportprio $([EMAIL PROTECTED]) $(ethernet.@) $(@)"; } } vif @: txt { %help: short "VLAN ID"; %allow-range: $(@) "0" "4095" %help: "VLAN ID"; %create: program "modprobe 8021q"; %create: program "vconfig add $(ethernet.@) $(@)"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_interface?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(@)"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/set_interface_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(@)&enabled:bool=true"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/set_interface_discard?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(@)&discard:bool=false"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_vif?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(@)&vif:txt=$(ethernet.@).$(@)"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/set_vif_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(@)&vif:txt=$(ethernet.@).$(@)&enabled:bool=true"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/start_transaction->tid:u32=$(interfaces.VLAN_TID)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_vif?tid:u32=$(interfaces.VLAN_TID)&ifname:txt=$(ethernet.@).$(@)&vif:txt=$(ethernet.@).$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_interface?tid:u32=$(interfaces.VLAN_TID)&ifname:txt=$(ethernet.@).$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/commit_transaction?tid:u32=$(interfaces.VLAN_TID)"; %delete: program "vconfig rem $(ethernet.@).$(@)"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_vif_names?ifname:txt=$([EMAIL PROTECTED]@)->vifs:list"; disable { %help: short "Disable a network interface"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_interface_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(vif.@)&enabled:bool=`~$(@)`"; } description { %help: short "Add a human-readable description of an interface"; %set:; %get:; %delete:; } address @: ipv4 { %help: short "Set IPv4 address"; %mandatory: $(@.prefix-length); %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_address4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_address4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(@)"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_vif_addresses4?ifname:txt=$(ethernet.@).$(vif.@)&vif:txt->addresses:list"; disable { %help: short "Disable the address"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_address_enabled4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(address.@)&enabled:bool=`~$(@)`"; } prefix-length { %help: short "Assign the network prefix length"; %allow-range: $(@) "1" "32" %help: "The network prefix length"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_prefix4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(address.@)&prefix_len:u32=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_prefix4?ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(address.@)->prefix_len:u32"; } broadcast { %help: short "Assign the network broadcast address"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_broadcast4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(address.@)&broadcast:ipv4=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_broadcast4?ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(address.@)->broadcast:ipv4=$(@)"; } destination { %help: short "Assign the destination address on point-to-point links"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_endpoint4?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(address.@)&endpoint:ipv4=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_endpoint4?ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(address.@)->endpoint:ipv4=$(@)"; } multicast-capable { %help: short "Show if the address is multicast capable"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_address_flags4?ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(address.@)->enabled:bool&broadcast:bool&loopback:bool&point_to_point:bool&multicast:bool=$(@)"; } point-to-point { %help: short "Show if the address is point-to-point"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_address_flags4?ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(address.@)->enabled:bool&broadcast:bool&loopback:bool&point_to_point:bool=$(@)&multicast:bool"; } loopback { %help: short "Use if this is a loopback address"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_address_flags4?ifname:txt=$(ethernet.@).$(vif.@)&vif:txt=$(ethernet.@).$(vif.@)&address:ipv4=$(address.@)->enabled:bool&broadcast:bool&loopback:bool=$(@)&point_to_point:bool&multicast:bool"; } } address @: ipv6 { %help: short "Set IPv6 address"; %mandatory: $(@.prefix-length); %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_address6?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_address6?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(@)"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_vif_addresses6?ifname:txt=$(ethernet.@)&vif:txt->addresses:list"; disable { %help: short "Disable the address"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_address_enabled6?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)&enabled:bool=`~$(@)`"; } prefix-length { %help: short "Assign the network prefix length"; %allow-range: $(@) "1" "128" %help: "The network prefix length"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_prefix6?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)&prefix_len:u32=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_prefix6?ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)->prefix_len:u32"; } destination { %help: short "Assign the destination address on point-to-point links"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_endpoint6?tid:u32=$(interfaces.TID)&ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)&endpoint:ipv6=$(@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_endpoint6?ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)->endpoint:ipv6=$(@)"; } multicast-capable { %help: short "Show if the address is multicast capable"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_address_flags6?ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)->enabled:bool&loopback:bool&point_to_point:bool&multicast:bool=$(@)"; } point-to-point { %help: short "Show if the address is point-to-point"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_address_flags6?ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)->enabled:bool&loopback:bool&point_to_point:bool=$(@)&multicast:bool"; } loopback { %help: short "Use if this is a loopback address"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_address_flags6?ifname:txt=$(ethernet.@)&vif:txt=$(ethernet.@)&address:ipv6=$(address.@)->enabled:bool&loopback:bool=$(@)&point_to_point:bool&multicast:bool"; } } bridge-group { %help: short "Add this interface to a bridge group"; %mandatory: $([EMAIL PROTECTED]@.bridge-group.bridge); bridge { %allow: $(@) "br0" %help: "Bridge interfaces"; %allow: $(@) "br1" %help: "Bridge interfaces"; %allow: $(@) "br2" %help: "Bridge interfaces"; %allow: $(@) "br3" %help: "Bridge interfaces"; %allow: $(@) "br4" %help: "Bridge interfaces"; %allow: $(@) "br5" %help: "Bridge interfaces"; %allow: $(@) "br6" %help: "Bridge interfaces"; %allow: $(@) "br7" %help: "Bridge interfaces"; %allow: $(@) "br8" %help: "Bridge interfaces"; %allow: $(@) "br9" %help: "Bridge interfaces"; %help: short "Add this interface to a bridge group"; /* Notes: I may have to bring the interface down first. It may need to not have an IP addresss. * I may need to verify that the bridge group exists first. */ %set: program "brctl addif $(@) $(ethernet.@).$([EMAIL PROTECTED]@)"; %delete: program "brctl delif $(@) $(ethernet.@).$([EMAIL PROTECTED]@)"; } cost { %help: short "Set the path cost for this port"; %set: program "brctl setpathcost $([EMAIL PROTECTED]) $(ethernet.@).$([EMAIL PROTECTED]@) $(@)"; %delete: program "brctl setpathcost $([EMAIL PROTECTED]) $(ethernet.@).$([EMAIL PROTECTED]@) $(@)"; } priority { %help: short "Set the path priority for this port"; %set: program "brctl setportprio $([EMAIL PROTECTED]) $(ethernet.@).$([EMAIL PROTECTED]@) $(@)"; %delete: program "brctl setportprio $([EMAIL PROTECTED]) $(ethernet.@).$([EMAIL PROTECTED]@) $(@)"; } } } } bridge @: txt { %help: short "Enter bridge interface name (br0 - br9)"; %allow: $(@) "br0" %help: "Bridge interface name"; %allow: $(@) "br1" %help: "Bridge interface name"; %allow: $(@) "br2" %help: "Bridge interface name"; %allow: $(@) "br3" %help: "Bridge interface name"; %allow: $(@) "br4" %help: "Bridge interface name"; %allow: $(@) "br5" %help: "Bridge interface name"; %allow: $(@) "br6" %help: "Bridge interface name"; %allow: $(@) "br7" %help: "Bridge interface name"; %allow: $(@) "br8" %help: "Bridge interface name"; %allow: $(@) "br9" %help: "Bridge interface name"; %create: program "brctl addbr $(@)"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_interface?tid:u32=$(interfaces.TID)&ifname:txt=$(@)"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/set_interface_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&enabled:bool=true"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_vif?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&vif:txt=$(@)"; %create: xrl "$(interfaces.targetname)/ifmgr/0.1/set_vif_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&vif:txt=$(@)&enabled:bool=true"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/set_vif_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&vif:txt=$(@)&enabled:bool=false"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_vif?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&vif:txt=$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/set_interface_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(@)&enabled:bool=false"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_interface?tid:u32=$(interfaces.TID)&ifname:txt=$(@)"; %delete: program "ip link set br0 down; brctl delbr $(@)"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_interface_names->ifnames:list"; description { %help: short "Add a human-readable description of an interface"; %set:; %get:; %delete:; } disable { %help: short "Disable a network interface"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_interface_enabled?tid:u32=$(interfaces.TID)&ifname:txt=$(bridge.@)&enabled:bool=`~$(@)`"; } aging { %help: short "Set the number of seconds a MAC address will be kept in the forwarding database"; %set: program "brctl setageing $(bridge.@) $(@)"; } stp { %help: short "Enable spanning tree"; %set: program "sh -c 'if [ \"$(@)\" == \"true\" ]; then brctl stp $(bridge.@) on; else brctl stp $(bridge.@) off; fi;'"; %delete: program "brctl stp $(bridge.@) off"; } priority { %help: short "Set the priority for this bridge"; %set: program "brctl setbridgeprio $(bridge.@) $(@)"; } forwarding-delay { %help: short "Set the forwarding delay"; %set: program "brctl setfd $(bridge.@) $(@)"; %delete: program "brctl setfd $(bridge.@) $(@)"; } hello-time { %help: short "Set the hello packet advertisment interval"; %set: program "brctl sethello $(bridge.@) $(@)"; %delete: program "brctl sethello $(bridge.@) $(@)"; } max-age { %help: short "Set the interval at which neighbor bridges are removed"; %set: program "brctl setmaxage $(bridge.@) $(@)"; %delete: program "brctl setmaxage $(bridge.@) $(@)"; } address @: ipv4 { %help: short "Set IP address"; %mandatory: $(@.prefix-length); %create: xrl "$(interfaces.targetname)/ifmgr/0.1/create_address4?tid:u32=$(interfaces.TID)&ifname:txt=$(bridge.@)&vif:txt=$(bridge.@)&address:ipv4=$(@)"; %delete: xrl "$(interfaces.targetname)/ifmgr/0.1/delete_address4?tid:u32=$(interfaces.TID)&ifname:txt=$(bridge.@)&vif:txt=$(bridge.@)&address:ipv4=$(@)"; %list: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_vif_addresses4?ifname:txt=$(bridge.@)&vif:txt->addresses:list"; prefix-length { %help: short "Assign the network prefix length"; %allow-range: $(@) "1" "32" %help: "The network prefix length"; %set: xrl "$(interfaces.targetname)/ifmgr/0.1/set_prefix4?tid:u32=$(interfaces.TID)&ifname:txt=$(bridge.@)&vif:txt=$(bridge.@)&address:ipv4=$(address.@)&prefix_len:u32=$(@)"; %set: program "ip addr add $(address.@)/$(@) dev $(bridge.@)"; %get: xrl "$(interfaces.targetname)/ifmgr/0.1/get_configured_prefix4?ifname:txt=$(bridge.@)&vif:txt=$(bridge.@)&address:ipv4=$(address.@)->prefix_len:u32"; %delete: program "ip addr del $(address.@)/$(@) dev $(bridge.@)"; } } } }
_______________________________________________ Vyatta-users mailing list Vyatta-users@mailman.vyatta.com http://mailman.vyatta.com/mailman/listinfo/vyatta-users