Ovs CLI Enhancements
PicOS ovs cli has some enhancements from version 2.7.1.
List ovs Configuration
PicOS ovs added a new command to display the current configuration by traversing the ovsdb tables. The command is:
ovs-vsctl show-running-config
admin@PicOS-OVS$ovs-vsctl show-running-config Open_vSwitch c645ee8a-34d5-4c64-a3dc-0c1a20f3c26e Bridge "br0" datapath_id: "1c48cc37ab254bc1" datapath_type: "pica8" Port "ge-1/1/19" Interface "ge-1/1/19" type: "pica8" tag: 1 vlan_mode: trunk Port "br0" Interface "br0" mtu: 1500 type: internal Pica8 ecafe6f4-97ac-407b-b4df-c871b5cd9561 hardware_type: "as4610_54t" admin@PicOS-OVS$
List System Resources Usage
Adds two commands to display current system resources usage and interfaces.
When we show system resources usage, the current mode is cared, such as match-mode, udf-mode, L2-mode, L3-mode, combinate-mode and egress-mode.
The commands are:
ovs-appctl pica/show tables
ovs-appctl pica/show interfaces
admin@PicOS-OVS$ovs-appctl pica/show tables Pica Tables Statistics: Pica Tables Max Limitation Current Used ----------------------------------------------------------------------- ICAP Table 2046 9 ECAP Table (null) (null) VCAP Table 1024 0 L2 System Table (null) (null) L2 FDB Table (null) (null) L3 Host Table (null) (null) L3 Route Table (null) (null) UDF Table (null) (null) admin@PicOS-OVS$ admin@PicOS-OVS$ admin@PicOS-OVS$ovs-appctl pica/show interfaces 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) admin@PicOS-OVS$
Associate sw-flow with hw-flow
When a new flow entry is added, a unique 64bit flow-id is assigned to it. The flow-id can be used by ovs-ofctl and ovs-appctl to filter the flow entries and associate sw-flow with hw-flow.
The commands are:
ovs-ofctl dump-flows br0 [flow_id=n]
ovs-appctl pica/dump-flows [flow_id=n]
Example 1:
root@PicOS-OVS$ovs-ofctl add-flow br0 priority=200,in_port=1,actions=2 root@PicOS-OVS$ovs-ofctl add-flow br0 priority=124,in_port=1,ip,nw_src=10.10.10.10,actions=4 root@PicOS-OVS$ovs-ofctl dump-flows br0 OFPST_FLOW reply (OF1.4) (xid=0x2): cookie=0x0, duration=36.591s, flow_id=1, table=0, n_packets=n/a, n_bytes=0, priority=200,in_port=1 actions=output:2 cookie=0x0, duration=6.393s, flow_id=2, table=0, n_packets=n/a, n_bytes=0, priority=124,ip,in_port=1,nw_src=10.10.10.10 actions=output:4 root@PicOS-OVS$ovs-appctl pica/dump-flows #4 normal permanent flow_id=1, priority=124,recirc_id=0,ip,in_port=1,nw_src=10.10.10.10, actions:2 #3 normal permanent flow_id=1, priority=200,recirc_id=0,in_port=1, actions:2 #0 normal_d permanent priority=0,recirc_id=0, actions:drop Total 3 flows in HW.
From the above example, if two flow entries in table 0 don’t have the exact same match and priority, but the match of sw-flow which has higher priority can cover another sw-flow’s match, then two hw-flows with the same flow-id of sw-flow which has the higher priority will be installed.
Example 2:
root@PicOS-OVS$ovs-ofctl add-flow br0 priority=200,in_port=1,actions=goto_table:1 root@PicOS-OVS$ovs-ofctl add-flow br0 table=1,priority=101,in_port=1,ip,nw_src=10.10.10.11,actions=2 root@PicOS-OVS$ovs-ofctl add-flow br0 table=1,priority=102,ip,nw_src=10.10.10.12,actions=goto_table:2 root@PicOS-OVS$ovs-ofctl add-flow br0 table=2,priority=123,dl_dst=00:11:22:33:44:55,actions=3 root@PicOS-OVS$ root@PicOS-OVS$ovs-ofctl dump-flows br0 OFPST_FLOW reply (OF1.4) (xid=0x2): cookie=0x0, duration=184.078s, flow_id=1, table=0, n_packets=n/a, n_bytes=0, priority=200,in_port=1 actions=goto_table:1 cookie=0x0, duration=49.800s, flow_id=2, table=1, n_packets=n/a, n_bytes=0, priority=102,ip,nw_src=10.10.10.12 actions=goto_table:2 cookie=0x0, duration=107.575s, flow_id=3, table=1, n_packets=n/a, n_bytes=0, priority=101,ip,in_port=1,nw_src=10.10.10.11 actions=output:2 cookie=0x0, duration=7.991s, flow_id=4, table=2, n_packets=n/a, n_bytes=0, priority=123,dl_dst=00:11:22:33:44:55 actions=output:3 root@PicOS-OVS$ovs-appctl pica/dump-flows #6 normal permanent flow_id=1, priority=201,recirc_id=0,ip,in_port=1,dl_dst=00:11:22:33:44:55,nw_src=10.10.10.12, actions:3 #5 normal permanent flow_id=1, priority=200,recirc_id=0,ip,in_port=1,nw_src=10.10.10.11, actions:2 #0 normal_d permanent priority=0,recirc_id=0, actions:drop Total 3 flows in HW.
If a flow entry in table 0 has goto action, then the flow-id will be applied to all hw-flows generated by it. Only the flow-id's of sw-flows in first table are cared now.
Display dpid in both hex and decimal
When the status of bridge is shown, we add decimal numbers for dpid to display.
admin@PicOS-OVS$ovs-ofctl show br0 OFPT_FEATURES_REPLY (OF1.4) (xid=0x2): dpid:0x1c48cc37ab254bc1(2038103370851765185) n_tables:254, n_buffers:256 capabilities: FLOW_STATS TABLE_STATS PORT_STATS GROUP_STATS OFPST_PORT_DESC reply (OF1.4) (xid=0x3): 13(ge-1/1/13): addr:cc:37:ab:25:4b:c1 config: 0 state: LINK_UP current: 100MB-FD COPPER AUTO_NEG advertised: 10MB-FD 100MB-FD 1GB-FD COPPER AUTO_NEG supported: 10MB-FD 100MB-FD 1GB-FD COPPER AUTO_NEG peer: 10MB-HD 10MB-FD 100MB-HD 100MB-FD COPPER speed: 100 Mbps now, 1000 Mbps max LOCAL(br0): addr:cc:37:ab:25:4b:c1 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
List Interface Details
A command is added to display the details of a specific interface or all interfaces in the bridge. A corresponding openflow multipart message should be added by using multipart experimenter type, the controller can then get these statistics as well.
The command is:
ovs-ofctl dump-interfaces <bridge> [interface]
Example:
Add the following flow:
admin@PicOS-OVS$ovs-ofctl add-flow br0 in_port=13,actions=15
No packets:
admin@PicOS-OVS$ovs-ofctl dump-interfaces br0 ge-1/1/15 PXST_INTERFACE_STATS reply (OF1.4) (xid=0x4): 1 interfaces ge-1/1/15(port 15): Traffic statistics: Input Packets............................0 Output Packets...........................0 Input Octets.............................0 Output Octets............................0
Port 13 send unicast packets to match the flow and check:
admin@PicOS-OVS$ovs-ofctl dump-interfaces br0 ge-1/1/13 PXST_INTERFACE_STATS reply (OF1.4) (xid=0x4): 1 interfaces ge-1/1/13(port 13): Traffic statistics: Input Packets............................3013397 Output Packets...........................0 Input Octets.............................771429632 Output Octets............................0 Transmit: Unicast packets........................0 Multicast packets......................0 Broadcast packets......................0 Packets 64 Octets......................0 Packets 65-127 Octets..................0 Packets 128-255 Octets.................0 Packets 256-511 Octets.................0 Packets 512-1023 Octets................0 Packets 1024-1518 Octets...............0 Oversize Packets.......................0 Total Packets Without Errors...........0 Discarded Packets......................0 Total Packets With Errors..............0 Single Collision Frames................0 Multiple Collision Frames..............0 Deferred Frames........................0 Late Collisions........................0 Excessive Collisions...................0 Pause Frames...........................0 Receive: Unicast packets........................3013393 Multicast packets......................0 Broadcast packets......................0 Packets 64 Octets......................0 Packets 65-127 Octets..................0 Packets 128-255 Octets.................0 Packets 256-511 Octets.................3013396 Packets 512-1023 Octets................0 Packets 1024-1518 Octets...............0 Oversize Packets.......................0 Total Packets Without Errors...........3013397 Discarded Packets......................0 Total Packets With Errors..............0 Alignment Errors.......................0 FCS Errors.............................0 Collisions.............................0 Pause Frames...........................0
Copyright © 2025 Pica8 Inc. All Rights Reserved.