If you need an OpenFlow-based network, you can go through a CLI set of commands and do it old-school way.
As we mention already, ICOS offers a possibility to work via Linux shell with L2/L3 networks.
It is true to the OpenFlow-related things as well.
How to do it?
It’s very simple!
1. Switch to Open-Flow passive mode via icos-cli
#configure
#openflow passive-mode
2. Install OVS common component via Linux shell:
#sudo apt-get install openvswitch-common
That’s all. You can check connectivity with the simple show command:
#ovs-ofctl show tcp:127.0.0.1
You’ll see something like this:
root@nba720:~# ovs-ofctl show tcp:127.0.0.1
OFPT_FEATURES_REPLY (xid=0x2): dpid:00000005642f3c7d n_tables:255, n_buffers:256
capabilities: FLOW_STATS TABLE_STATS PORT_STATS QUEUE_STATS ARP_MATCH_IP actions: OUTPUT SET_VLAN_VID SET_VLAN_PCP SET_DL_SRC SET_DL_DST
SET_NW_SRC SET_NW_DST SET_NW_TOS
1(0/2): addr:00:05:64:2f:3c:7d config: 0 state: LINK_DOWN
peer: 10MB-HD 100MB-HD 100MB-FD 10GB-FD AUTO_PAUSE_ASYM speed: 0 Mbps now, 0 Mbps max
2(0/3): addr:00:05:64:2f:3c:7d config: 0 state: LINK_DOWN
peer: 10MB-HD 10GB-FD COPPER AUTO_PAUSE_ASYM speed: 0 Mbps now, 0 Mbps max
3(0/4): addr:00:05:64:2f:3c:7d config: 0 state: LINK_DOWN
peer: 100MB-HD 10GB-FD COPPER AUTO_PAUSE AUTO_PAUSE_ASYM speed: 0 Mbps now, 0 Mbps max
4(0/5): addr:00:05:64:2f:3c:7d config: 0 state: LINK_DOWN
peer: 10MB-HD 100MB-HD 100MB-FD 1GB-HD 1GB-FD 10GB-FD
COPPER FIBER AUTO_PAUSE AUTO_PAUSE_ASYM speed: 0 Mbps now, 0 Mbps max
5(0/6): addr:00:05:64:2f:3c:7d config: 0 state: LINK_DOWN
peer: 10MB-HD 10MB-FD 1GB-FD COPPER FIBER AUTO_NEG speed: 0 Mbps now, 0 Mbps max
Now you are able to manage flows with ovs-ofctl directly from the switch.
For example:
ovs-ofctl show tcp:127.0.0.1
33(0/33): addr:00:05:64:2f:3c:7d
config: 0 state: 0
speed: 0 Mbps now, 0 Mbps max 34(0/34): addr:00:05:64:2f:3c:7d config: 0 state: 0
speed: 0 Mbps now, 0 Mbps max 35(0/35): addr:00:05:64:2f:3c:7d config: 0 state: 0
speed: 0 Mbps now, 0 Mbps max 172(3/1): addr:00:05:64:2f:3c:7d config: 0 state: 0
speed: 0 Mbps now, 0 Mbps max 173(3/2): addr:00:05:64:2f:3c:7d config: 0 state: 0
speed: 0 Mbps now, 0 Mbps max
Now you can do things like:
#####################################################
### Input (Source) port : 1,2,3,4,5,6 -> Filter (10.10.10.x and tcp and port 80) -> hash Load-balancing -> Output (Destination) port group : 8,9,10
#####################################################
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=1,nw_proto=6,nw_src=10.10.10.0/24,tp_dst=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=1,nw_proto=6,nw_dst=10.10.10.0/24,tp_src=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=2,nw_proto=6,nw_src=10.10.10.0/24,tp_dst=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=2,nw_proto=6,nw_dst=10.10.10.0/24,tp_src=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=3,nw_proto=6,nw_src=10.10.10.0/24,tp_dst=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=3,nw_proto=6,nw_dst=10.10.10.0/24,tp_src=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=4,nw_proto=6,nw_src=10.10.10.0/24,tp_dst=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=4,nw_proto=6,nw_dst=10.10.10.0/24,tp_src=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=5,nw_proto=6,nw_src=10.10.10.0/24,tp_dst=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=5,nw_proto=6,nw_dst=10.10.10.0/24,tp_src=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=6,nw_proto=6,nw_src=10.10.10.0/24,tp_dst=80/0xffff,actions=output:171
ovs-ofctl add-flow br0 dl_type=0x0800,in_port=6,nw_proto=6,nw_dst=10.10.10.0/24,tp_src=80/0xffff,actions=output:171
#####################################################
### Input : 11,12,13,14,15,16 -> Aggregation -> Output : 17,18
#####################################################
ovs-ofctl add-flow br0 in_port=11,actions=output:17,18
ovs-ofctl add-flow br0 in_port=12,actions=output:17,18
ovs-ofctl add-flow br0 in_port=13,actions=output:17,18
ovs-ofctl add-flow br0 in_port=14,actions=output:17,18
ovs-ofctl add-flow br0 in_port=15,actions=output:17,18
ovs-ofctl add-flow br0 in_port=16,actions=output:17,18
#####################################################
### Input : 21,22,23,24,25,26,27,28,29,30 -> Hash Load-balancing -> Output group 1 and 2 : (31,32,33,34), (35,36,37,38)
#####################################################
ovs-ofctl add-flow br0 in_port=21,actions=output:172,173
ovs-ofctl add-flow br0 in_port=22,actions=output:172,173
ovs-ofctl add-flow br0 in_port=23,actions=output:172,173
ovs-ofctl add-flow br0 in_port=24,actions=output:172,173
ovs-ofctl add-flow br0 in_port=25,actions=output:172,173
ovs-ofctl add-flow br0 in_port=26,actions=output:172,173
ovs-ofctl add-flow br0 in_port=27,actions=output:172,173
ovs-ofctl add-flow br0 in_port=28,actions=output:172,173
ovs-ofctl add-flow br0 in_port=29,actions=output:172,173
ovs-ofctl add-flow br0 in_port=30,actions=output:172,173
#####################################################
If you want to keep flows after the switch reboot – you need to add a script to the system boot file. Check our x86 ICOS guide for how-to.
Taoyuan, Taiwan, 29th of April 2025. The latest release of SONiC 202411.n0 – an enterprise distribution of SONiC by Netberg – introduces new features and enhancements tailored to improve performance in data center, edge, and campus environments.
Taoyuan, Taiwan, 20th of January 2025. Netberg, the leading provider of open networking solutions, announces support of Ubuntu 24.04 Noble Numbat on its Broadcom-enabled portfolio.
Taoyuan city, Taiwan, 24th of June 2024. Netberg announced the new Aurora 721 100G and Aurora 421 10G switches, which feature programmable pipelines powered by Broadcom StrataXGS® Trident3 Ethernet switch chips.
Taoyuan city, Taiwan, January 24th, 2024. Netberg announced the release of two new models powered by the Broadcom StrataXGS® Trident3 series , the Netberg Aurora 221 1G switch and Aurora 621 25G switch.
Effective January 12, 2024: The following products are now End of Life (EOL) - Aurora 720 and Aurora 620.
Taoyuan city, Taiwan, December 20th, 2023. Netberg updates its Netberg SONiC distribution to release 2022.11 on Aurora 610, Aurora 710, and Aurora 750 P4-Programmable Intel Tofino IFP systems.