diff options
author | Christian Trautman <ctrautma@redhat.com> | 2017-09-25 17:22:38 -0400 |
---|---|---|
committer | Christian Trautman <ctrautma@redhat.com> | 2017-09-25 17:22:38 -0400 |
commit | 5d08ffdf317d31361a528bf1b6d33cd4d0007600 (patch) | |
tree | 49bb5ca1e3de78dc198d5192107f32649eacbd8a | |
parent | 0549aa1f1a694899fec3b16b44230b5c60d2fa29 (diff) |
trex_prom: Add promiscuous option for trex for SRIOV tests
Adds option to enable promiscuous mode for Trex traffic
generator to allow for SR-IOV tests to work correctly.
Trex by default only accepts packets based on destination
MAC address matching what is configured on server in
/etc/trex-cfg.yaml. This removes that limitation since
SR-IOV tests require mac addresses to be modified in the
generated packets to correctly route packets to the relevant
VFs.
JIRA: VSPERF-531
Change-Id: I19b64f364c8a1b656994c82c96f47a68b92486d8
Signed-off-by: Christian Trautman <ctrautma@redhat.com>
-rw-r--r-- | conf/03_traffic.conf | 2 | ||||
-rw-r--r-- | conf/10_custom.conf | 2 | ||||
-rw-r--r-- | docs/testing/user/configguide/trafficgen.rst | 12 | ||||
-rw-r--r-- | tools/pkt_gen/trex/trex.py | 4 |
4 files changed, 20 insertions, 0 deletions
diff --git a/conf/03_traffic.conf b/conf/03_traffic.conf index 5f6d791c..419ca704 100644 --- a/conf/03_traffic.conf +++ b/conf/03_traffic.conf @@ -441,6 +441,8 @@ TRAFFICGEN_TREX_LATENCY_PPS = 1000 # Example 10 Gbps: TRAFFICGEN_TREXINE_SPEED_GBPS = '10' # Today only 10 Gbps is supported TRAFFICGEN_TREX_LINE_SPEED_GBPS = '10' +# FOR SR-IOV tests to work with T-Rex enable Promiscuous mode +TRAFFICGEN_TREX_PROMISCUOUS=False PATHS['trafficgen'] = { 'trex': { 'type' : 'src', diff --git a/conf/10_custom.conf b/conf/10_custom.conf index 6011e6a8..9dc605e0 100644 --- a/conf/10_custom.conf +++ b/conf/10_custom.conf @@ -136,6 +136,8 @@ TRAFFICGEN_TREX_LATENCY_PPS = 1000 # Example 10 Gbps: TRAFFICGEN_TREXINE_SPEED_GBPS = '10' # Today only 10 Gbps is supported TRAFFICGEN_TREX_LINE_SPEED_GBPS = '10' +# FOR SR-IOV tests to work with T-Rex enable Promiscuous mode +TRAFFICGEN_TREX_PROMISCUOUS=False # TREX Configuration and Connection Info-- END #################################################### diff --git a/docs/testing/user/configguide/trafficgen.rst b/docs/testing/user/configguide/trafficgen.rst index 7c14c55d..2d2b9a9e 100644 --- a/docs/testing/user/configguide/trafficgen.rst +++ b/docs/testing/user/configguide/trafficgen.rst @@ -821,3 +821,15 @@ Default value of this parameter is defined in conf/03_traffic.conf as follows: .. code-block:: console TRAFFICGEN_TREX_RFC2544_TPUT_THRESHOLD = '' + +SR-IOV +~~~~~~ +T-Rex by default only accepts packets on the receive side if the destination mac matches the +MAC address specificed in the /etc/trex-cfg.yaml on the server side. For SR-IOV this creates +challenges with modifying the MAC address in the traffic profile to correctly flow packets +through specified VFs. To remove this limitation enable promiscuous mode on T-Rex to allow +all packets regardless of the destination mac to be accepted. + +.. code-block:: console + + TRAFFICGEN_TREX_PROMISCUOUS=True diff --git a/tools/pkt_gen/trex/trex.py b/tools/pkt_gen/trex/trex.py index 7cdeec9c..7b554ecb 100644 --- a/tools/pkt_gen/trex/trex.py +++ b/tools/pkt_gen/trex/trex.py @@ -201,6 +201,10 @@ class Trex(ITrafficGenerator): my_ports = [0, 1] self._stlclient.reset(my_ports) ports_info = self._stlclient.get_port_info(my_ports) + # for SR-IOV + if settings.getValue('TRAFFICGEN_TREX_PROMISCUOUS'): + self._stlclient.set_port_attr(my_ports, promiscuous=True) + packet_1, packet_2 = Trex.create_packets(traffic, ports_info) stream_1, stream_2, stream_1_lat, stream_2_lat = Trex.create_streams(packet_1, packet_2, traffic) self._stlclient.add_streams(stream_1, ports=[0]) |