This PR adds support for the manager to receive jumbo frames with Ethernet payload upto 9600 bytes. It also ensures that there is enough memory allocated by the manager to process the same number of packets as before. This enhancement is made optional and can be enabled by using a flag (mentioned below) when executing the go.sh script.
Summary:
Usage:
New flag: -j Allow ports to send and receive jumbo frames
This PR includes
Resolves issues
Breaking API changes
Internal API changes
Usability improvements
Bug fixes
New functionality
New NF/onvm_mgr args
Yes
Changes to starting NFs
Dependency updates
Web stats updates
Merging notes:
Dependencies: None
TODO before merging :
[ ] PR is ready for review
Test Plan:
The PR was tested using the following setup:
Topology
Node1--------Node2--------Node3
OpenNetVM was run on Node2 along with the l2fwd example NF.
Commands:
The manager was run using the following command:
./go.sh -k 3 -n 0xF8 -m 0,1,2 -s stdout -j
The l2fwd NF was run using the following command:
./go.sh 1 -n
The MTU on the interfaces of Node1 and Node2 was set to 9000 bytes using the following command:
# ip link set <interface_name> mtu 9000
The support for jumbo frames was tested by running a ping test from Node1 to Node3 using the following command on Node1:
$ ping <ip_address> -M do -s 8972
Correct working was verified by obtaining a successful ping and observing the packets being processed in the manager and NF.
pktgen-dpdk was also employed to test these changes. pktgen-dpdk was run on Node1 and Node3, and the size of the frames in the traffic was set to 9618 bytes.
Support for Jumbo Frames.
This PR adds support for the manager to receive jumbo frames with Ethernet payload upto 9600 bytes. It also ensures that there is enough memory allocated by the manager to process the same number of packets as before. This enhancement is made optional and can be enabled by using a flag (mentioned below) when executing the go.sh script.
Summary:
Usage: New flag:
-j
Allow ports to send and receive jumbo framesMerging notes:
TODO before merging :
Test Plan:
The PR was tested using the following setup:
Topology
Node1--------Node2--------Node3
OpenNetVM was run on Node2 along with the l2fwd example NF.
Commands:
The manager was run using the following command:
./go.sh -k 3 -n 0xF8 -m 0,1,2 -s stdout -j
The l2fwd NF was run using the following command:
./go.sh 1 -n
The MTU on the interfaces of Node1 and Node2 was set to 9000 bytes using the following command:
# ip link set <interface_name> mtu 9000
The support for jumbo frames was tested by running a ping test from Node1 to Node3 using the following command on Node1:
$ ping <ip_address> -M do -s 8972
Correct working was verified by obtaining a successful ping and observing the packets being processed in the manager and NF.
pktgen-dpdk was also employed to test these changes. pktgen-dpdk was run on Node1 and Node3, and the size of the frames in the traffic was set to 9618 bytes.
Command used to run pktgen-dpdk:
# ./pktgen -l 0-2 -n 2 -- -T -P -j -m "[1:2].0"
pktgen cli command to set frame size:
Pktgen:/> set 0 size 9618
--- Update ---
Updated description Added pktgen-dpdk test plan
Review:
Subscribers: @twood02 @kkrama