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.
Taipei, Taiwan, 14th of November 2022. Netberg announced the new Aurora 810 400G model programmable switch with Intel Tofino 2 Intelligent Fabric Processors (IFPs) at its heart. The new platform has 32x 400G QSFP-DD Ethernet ports and a 12.8Tbps switching capacity.
Taipei, Taiwan, 24th of October 2022. Netberg participates in the new round of the Fast Forward Initiative by Intel (FFI'22). The program supports academic and research organizations today, aiming at accelerating tomorrow's best network programmability research.
Taipei, Taiwan 13th of July 2022. Netberg launches its hardened SONiC distribution for Intel Tofino and Marvell Teralynx platforms.
Taipei, Taiwan 8th of November 2021. Netberg’s SONiC platform code for Aurora 715 and Aurora 615 Innovium Teralynx-based switches is accepted into the official GitHub repository.
Taipei, Taiwan 1st of June 2021. Netberg, a leading open networking vendor, announces two new Aurora 715 and Aurora 615 models - high-performance 25/100G switches for future-proof Cloud, Enterprise, and Edge data centers.
Taipei, Taiwan 17th of November 2020. Netberg announces new services - custom networking software and hardware development.