Configuring bridge


Users can create one or more bridges on a PICA8 switch. Note that each physical port can only be added to one bridge.

User can use command 'ovs-appctl pica/show' to show valid ports.

admin@PicOS-OVS$ovs-appctl pica/show
Max Hardware Flow Entry Limitation:
    TCAM Table    : 2048
    Egress Table  : 256
    VFilter Table : 1024
    L2 Table      : 32768
    L3 Table      : 24000
Valid Interfaces On Switch P3290:
    Physical interfaces:
        ge-1/1/1(1)       ge-1/1/2(2)       ge-1/1/3(3)       ge-1/1/4(4)
        ge-1/1/5(5)       ge-1/1/6(6)       ge-1/1/7(7)       ge-1/1/8(8)
        ge-1/1/9(9)       ge-1/1/10(10)     ge-1/1/11(11)     ge-1/1/12(12)
        ge-1/1/13(13)     ge-1/1/14(14)     ge-1/1/15(15)     ge-1/1/16(16)
        ge-1/1/17(17)     ge-1/1/18(18)     ge-1/1/19(19)     ge-1/1/20(20)
        ge-1/1/21(21)     ge-1/1/22(22)     ge-1/1/23(23)     ge-1/1/24(24)
        ge-1/1/25(25)     ge-1/1/26(26)     ge-1/1/27(27)     ge-1/1/28(28)
        ge-1/1/29(29)     ge-1/1/30(30)     ge-1/1/31(31)     ge-1/1/32(32)
        ge-1/1/33(33)     ge-1/1/34(34)     ge-1/1/35(35)     ge-1/1/36(36)
        ge-1/1/37(37)     ge-1/1/38(38)     ge-1/1/39(39)     ge-1/1/40(40)
        ge-1/1/41(41)     ge-1/1/42(42)     ge-1/1/43(43)     ge-1/1/44(44)
        ge-1/1/45(45)     ge-1/1/46(46)     ge-1/1/47(47)     ge-1/1/48(48)
        te-1/1/49(49)     te-1/1/50(50)     te-1/1/51(51)     te-1/1/52(52)
    LAG   interfaces:    ae1(1025) - ae1023(2047)
    Bond  interfaces:  bond1(2049) - bond1023(3071)
    GRE   interfaces:   gre1(3073) - gre1023(4095)
    VXLAN interfaces: vxlan1(4097) - vxlan1023(5119)
    L2GRE interfaces: l2gre1(5121) - l2gre1023(6143)

Create a Bridge

User can command "ovs-vsctl add-br <bridge> [-- set bridge br0 datapath_type=pica8]".

From PicOS2.6.5, due to the default datapath_type is pica8, so "-- set bridge br0 datapath_type=pica8" is optional.

root@PicOS-OV$ovs-vsctl add-br br0 -- set bridge br0 datapath_type=pica8
root@PicOS-OVS$ovs-vsctl add-br br1

Viewing the Bridge Settings

Use the show <bridge_name> command to view the bridge details.

root@PicOS-OVS$ovs-ofctl show br0
OFPT_FEATURES_REPLY (xid=0x1): ver:0x1, dpid:0000e89a8f503d30
n_tables:1, n_buffers:256
features: capabilities:0x87, actions:0x3f
1(ge-1/1/1): addr:e8:9a:8f:50:3d:30
config: 0
state: LINK_DOWN
current: 10MB-FD COPPER AUTO_NEG AUTO_PAUSE AUTO_PAUSE_ASYM
advertised: 10MB-FD AUTO_PAUSE
supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD AUTO_NEG AUTO_PAUSE AUTO_PAUSE_ASYM
peer: 10MB-FD AUTO_PAUSE
2(ge-1/1/2): addr:e8:9a:8f:50:3d:30
config: 0
state: LINK_DOWN
current: 10MB-FD COPPER AUTO_NEG AUTO_PAUSE AUTO_PAUSE_ASYM
advertised: 10MB-FD AUTO_PAUSE
supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD AUTO_NEG AUTO_PAUSE AUTO_PAUSE_ASYM
peer: 10MB-FD AUTO_PAUSE
3(ge-1/1/3): addr:e8:9a:8f:50:3d:30
config: 0
state: LINK_DOWN
current: 10MB-FD COPPER AUTO_NEG AUTO_PAUSE AUTO_PAUSE_ASYM
advertised: 10MB-FD AUTO_PAUSE
supported: 10MB-HD 10MB-FD 100MB-HD 100MB-FD 1GB-FD AUTO_NEG AUTO_PAUSE AUTO_PAUSE_ASYM
peer: 10MB-FD AUTO_PAUSE
LOCAL(br0): addr:e8:9a:8f:50:3d:30
config: PORT_DOWN
state: LINK_DOWN
current: 10MB-FD COPPER
OFPT_GET_CONFIG_REPLY (xid=0x3): frags=normal miss_send_len=0
root@PicOS-OVS$
root@PicOS-OVS$
root@PicOS-OVS$ ovs-vsctl list-ports br0
ge-1/1/1
ge-1/1/2
ge-1/1/3
root@PicOS-OVS$
root@PicOS-OVS$
root@PicOS-OVS$ovs-vsctl list-ifaces br0
ge-1/1/1
ge-1/1/2
ge-1/1/3
root@PicOS-OVS$
root@PicOS-OVS$

Deleting the Bridge

To delete the bridge and its ports, use the del-port command, then the del-br <bridge_name> command.

root@PicOS-OVS$ovs-vsctl  del-port br0 ge-1/1/1
root@PicOS-OVS$ovs-vsctl  del-port br0 ge-1/1/2
root@PicOS-OVS$ovs-vsctl  del-port br0 ge-1/1/3
root@PicOS-OVS$ovs-vsctl  del-br br0

View software table flows

Normally,we view software table flows using below command without options.

admin@PicOS-OVS$ovs-ofctl dump-flows br0

And picos add a cli view to group flows into certain application categories (LLDP, VRRP, IP, Controller, Miscellaneous) or a user-configurable value from Picos 2.8.0. User can filter flows using the flow group name.

ovs-ofctl dump-flows br0 --filter=<VRRP | LLDP | IPV4 | IPV6 | CONTROLLER | MISC>

You can use one filter or more. 

For example:

admin@PicOS-OVS$ovs-ofctl dump-flows br0 --filter=VRRP,LLDP,IPV4,IPV6,CONTROLLER,MISC     
 
VRRP flows (count=1):
 flow_id=9, cookie=0x0, duration=64.268s, table=0, n_packets=n/a, n_bytes=0, priority=22016,ip,in_port=1,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,nw_proto=112 actions=output:2
 
LLDP flows (count=1):
 flow_id=6, cookie=0x0, duration=92.408s, table=0, n_packets=n/a, n_bytes=0, in_port=3,dl_dst=01:80:c2:00:00:0e,dl_type=0x88cc actions=output:4
 
IPV4 flows (count=2):
 flow_id=9, cookie=0x0, duration=64.268s, table=0, n_packets=n/a, n_bytes=0, priority=22016,ip,in_port=1,dl_dst=01:00:00:00:00:00/01:00:00:00:00:00,nw_proto=112 actions=output:2
 flow_id=8, cookie=0x0, duration=72.908s, table=0, n_packets=n/a, n_bytes=0, ip,in_port=2,nw_dst=192.168.100.200 actions=CONTROLLER:65535
 
IPV6 flows (count=1):
 flow_id=10, cookie=0x0, duration=57.592s, table=0, n_packets=n/a, n_bytes=0, tcp6,in_port=3 actions=CONTROLLER:65535
 
Controller flows (count=2):
 flow_id=8, cookie=0x0, duration=72.908s, table=0, n_packets=n/a, n_bytes=0, ip,in_port=2,nw_dst=192.168.100.200 actions=CONTROLLER:65535
 flow_id=10, cookie=0x0, duration=57.592s, table=0, n_packets=n/a, n_bytes=0, tcp6,in_port=3 actions=CONTROLLER:65535
 
MISC flows (count=1):
 flow_id=7, cookie=0x0, duration=80.295s, table=0, n_packets=n/a, n_bytes=0, priority=40000,in_port=3,dl_dst=01:80:c2:00:00:02,dl_type=0x8809 actions=set_field:00:00:00:00:22:33->eth_src,output:4
admin@PicOS-OVS$


Enable STP in bridge

Defaultly, STP is disabled in ovs mode. User can use following command to enable/disable STP in bridge.

ovs-vsctl set bridge <bridge> stp_enable=<true|false>

Example:

admin@PicOS-OVS$ovs-vsctl set bridge br-12 stp_enable=true 
 
admin@PicOS-OVS$ovs-ofctl show br-12
OFPT_FEATURES_REPLY (OF1.4) (xid=0x2):
dpid:0xaa5e60eb69d29cd7(12276356198467542231)
n_tables:254, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS GROUP_STATS
OFPST_PORT_DESC reply (OF1.4) (xid=0x3):
 51(te-1/1/51): addr:60:eb:69:d2:9c:d7
     config:     0
     state:      BLOCKED
     current:    10GB-FD FIBER
     advertised: 1GB-FD 10GB-FD FIBER
     supported:  1GB-FD 10GB-FD FIBER AUTO_NEG
     speed: 10000 Mbps now, 10000 Mbps max
 52(te-1/1/52): addr:60:eb:69:d2:9c:d7
     config:     0
     state:      LINK_UP
     current:    10GB-FD FIBER
     advertised: 1GB-FD 10GB-FD FIBER
     supported:  1GB-FD 10GB-FD FIBER AUTO_NEG
     speed: 10000 Mbps now, 10000 Mbps max
 LOCAL(br-12): addr:60:eb:69:d2:9c:d7
     config:     0
     state:      LINK_UP
     current:    10MB-FD COPPER
     supported:  10MB-FD COPPER
     speed: 10 Mbps now, 10 Mbps max
OFPT_GET_CONFIG_REPLY (OF1.4) (xid=0x5): frags=normal miss_send_len=0


Other_config about bridge

1)Configure datapath-id:

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:datapath-id=0000d80aa99e14a3 

2)Human readable description of datapath:

admin@PicOS-OVS$ovs-vsctl set bridg br0 other_config:dp-desc=pica8 

3)Disable or enable in-band:

admin@PicOS-OVS$ovs-vsctl set bridge br0 other-config:disable-in-band=true/false 

4)The flow table will be cleared or not:

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:enable-flush=true/false 

5)This sets the OpenFlow queue ID that will be used by flows set up by in-band control on this bridge:

admin@PicOS-OVS$ovs-vsctl set bridg br0 other_config:in-band-queue=4

Note: in-band-queue is in range 0 to 7.

6)Configure stp:

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:stp-priority=0x7800
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:stp-system-id=123456
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:stp-hello-time=10

Note:stp hello time is in range 1 to 10.

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:stp-max-age=6

Note:stp max age is in range 6 to 40.

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:stp-forward-delay=6

Notestp-forward-delay is in range 4 to 30. 

7)Specifies the number of threads for software datapaths to use for handling new flows:

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:n-handler-threads=1 

8)Specifies the number of threads for software datapaths to use for revalidating flows in the Datapath:

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:n-revalidator-threads=2 

9)The maximum number of seconds to retain a MAC learning entry for which no packets have been seen.

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:mac-aging-time=300 

10)The maximum number of MAC addresses to learn.

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:mac-table-size=2048

11)LLDP:

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-msg-tx-hold=4
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-msg-tx-interval=30
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-reinit-delay=2
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tx-delay=2
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-port-desc=false
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-sys-name=true
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-sys-desc=true
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-sys-cap=true
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-mgmt-addr=true
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-pvid=true
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-mac-phy=true
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-power-via-mdi=true
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-max-frame-size=true
admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:lldp-tlv-link-aggregation=true

12)Configure bridge mac address.

admin@PicOS-OVS$ovs-vsctl set bridge br0 other_config:hwaddr=22:22:22:22:22:22





Copyright © 2024 Pica8 Inc. All Rights Reserved.