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

Reply via email to