From 3f0fe318257a7d1c73a17081302946cdc4e69c00 Mon Sep 17 00:00:00 2001
From: Christian Trautman <ctrautma@redhat.com>
Date: Tue, 6 Feb 2018 13:57:42 -0500
Subject: Trex_speed_improvement: Add logic for dealing with high speed cards

Adds configuration options and logic to detect maximum supported
speed of T-Rex server side cards.

1. Adds logic to pull maximum supported speed from port info
2. Adds forcable option to have user specify maximum speed
3. If logic cannot detect speed from port_info because it is
   not available or the forcable option is not set it will
   assume 10G speeds.
4. Tested on Intel XXV25G and Mellanox ConnectX-5 cards
5. Added packet structure logging to show packet info for
   better debugging capabilities
6. Adds core mask to take advantage of multiple cores if
   server is started with more than default number of cores
7. Adds packets lost logging to RFC2544 Throughput testing

JIRA: VSPERF-559

Change-Id: I7fcfda7ccc408c30830950ee3668e01b8624c20a
Signed-off-by: Christian Trautman <ctrautma@redhat.com>
---
 conf/03_traffic.conf | 5 +++++
 conf/10_custom.conf  | 4 ++++
 2 files changed, 9 insertions(+)

(limited to 'conf')

diff --git a/conf/03_traffic.conf b/conf/03_traffic.conf
index 67318893..8aff2e35 100644
--- a/conf/03_traffic.conf
+++ b/conf/03_traffic.conf
@@ -487,6 +487,11 @@ TRAFFICGEN_TREX_LEARNING_MODE = True
 TRAFFICGEN_TREX_LEARNING_DURATION = 5
 # FOR SR-IOV or multistream layer 2 tests to work with T-Rex enable Promiscuous mode
 TRAFFICGEN_TREX_PROMISCUOUS = False
+# Enable below options to force T-rex api to attempt to use speed specified on server
+# side when pushing traffic. For 40G use 40000. For 25G use 25000.
+TRAFFICGEN_TREX_FORCE_PORT_SPEED = False
+TRAFFICGEN_TREX_PORT_SPEED = 10000 # 10G
+
 PATHS['trafficgen'] = {
     'Trex': {
         'type' : 'src',
diff --git a/conf/10_custom.conf b/conf/10_custom.conf
index 917d16b4..0e274aab 100644
--- a/conf/10_custom.conf
+++ b/conf/10_custom.conf
@@ -138,6 +138,10 @@ TRAFFICGEN_TREX_LEARNING_MODE = True
 TRAFFICGEN_TREX_LEARNING_DURATION = 5
 # FOR SR-IOV or multistream layer 2 tests to work with T-Rex enable Promiscuous mode
 TRAFFICGEN_TREX_PROMISCUOUS = False
+# Enable below options to force T-rex api to attempt to use speed specified on server
+# side when pushing traffic. For 40G use 40000. For 25G use 25000.
+TRAFFICGEN_TREX_FORCE_PORT_SPEED = False
+TRAFFICGEN_TREX_PORT_SPEED = 10000 # 10G
 # TRex validation option for RFC2544
 TRAFFICGEN_TREX_VERIFICATION_MODE = False
 TRAFFICGEN_TREX_VERIFICATION_DURATION = 60
-- 
cgit