In this section, flow aggregation from multiple ports is examined. Two scenarios will be configured. The first scenario is to aggregate traffic from port 1, 2, and 3 without any filtering to port 4. The second scenario is to apply packet matching filter on each port to select specific traffic based on source IP address from each port for aggregation. For the first scenario, delete the existing flows using the ovs-ofctl del-flows br0 command. Then, use the following commands to add 3 flows to the flow table:
- ovs-ofctl add-flow br0 in_port=1,actions=output:4
- ovs-ofctl add-flow br0 in_port=2,actions=output:4
- ovs-ofctl add-flow br0 in_port=3,actions=output:4
Figure 11 – Many to 1 port level aggregation
Configure packeth on each PC to send packets from port 1 to 3, with source IP 184.108.40.206 from port1, source IP 220.127.116.11 from port 2, and 18.104.22.168 from port 3. All the packets should be forwarded to port 4.
Figure 12 – Many to 1 port level aggregation
In this many-to-one aggregation configuration, if the aggregated traffic is more than 1 Gbps, the over-subscribed packets will be dropped. The over-subscription scenario could not be demonstrated in this set up because the PC only has a 100 Mbps Ethernet port. But if user can create the scenario, the dropped packets can be shown via the ovs-ofctl dump-ports br0 command as part of the port counters.
To engineer the traffic aggregation, the filters described in Open SDN: Starter kit – Power on and configure switch can be applied to identify and select traffic for aggregation. In the scenario below, three flows are created with a filter on separate IP address on each port. The previous flows need to be deleted first, then use the following commands to set up the new flows:
- ovs-ofctl add-flow br0 in_port=1,dl_type=0x0800,nw_src=22.214.171.124,actions=output:4
- ovs-ofctl add-flow br0 in_port=2,dl_type=0x0800,nw_src=126.96.36.199,actions=output:4
- ovs-ofctl add-flow br0 in_port=3,dl_type=0x0800,nw_src=188.8.131.52,actions=output:4
Figure 13 – Many to 1 port level aggregation
The packeth is configured to generate traffic with mixed source IP addresses. Try this with a manual option first to send a small amount of traffic through each port. Then, monitor the traffic on wireshark to see if the packets are filtered and forwarded correctly.
The dump-flows command is handy to verify the number of packets matched by the filtering rule. The ovs-ofctl dump-ports br0 command is also very useful to show all the port statistics. Flows can be modified dynamically based on traffic conditions to throttle traffic during over-subscription, provide load balance, and re-distribute traffic. In deployment scenario, flows are managed via Open Flow controller with Open Flow protocols. In the next Starter kit, the RYU Open Flow controller will be discussed to show the controller-switch interaction.
Figure 14 – Many to 1 port level aggregation with filter