Table of Contents

1. Abstract

Mellanox ConnectX-4/5 adapter family supports 100/56/40/25/10 Gb/s Ethernet speeds. Its DPDK support is a bit different from Intel DPDK support, more information can be found here. Intel NICs do not require additional kernel drivers (except for igb_uio which is already supported in most distributions). ConnectX-4 works on top of Infiniband API (verbs) and requires special kernel modules/user space libs. This means that it is required to install OFED package to be able to work with this NIC. Installing the full OFED package is the simplest way to make it work (trying to install part of the package can work too but didn’t work for us). The advantage of this model is that you can control it using standard Linux tools (ethtool and ifconfig will work). The disadvantage is the OFED dependency.

2. Distro Installation

We tested the following distro with TRex and OFED. Others might work too.

  • CentOS 7.4 (This is the only verified distro)

Following distro was tested and did not work for us.

  • Fedora 21 (3.17.4-301.fc21.x86_64)

  • Ubuntu 14.04.3 LTS (GNU/Linux 3.19.0-25-generic x86_64)  — crash when RSS was enabled MLX RSS issue

3. OFED Installation

Information was taken from Install OFED

  • Download OFED 4.3.1 tar for RedHat 7.4 distro.

Important

The version must be exactly MLNX_OFED_LINUX-4.3.1 for CentOS 7.4 any other version won’t work

Important

RedHat 7.4 distro and MLNX_OFED_LINUX-4.3.1 is mandatory. You can’t have any different version. Please follow the long installation process in the following sections. There is no need to install DPDK on your system.

Important

Make sure you have an internet connection without firewalls for HTTPS/HTTP - required by yum/apt-get

Verify md5
[bash]>md5sum MLNX_OFED_LINUX-4.3-1.0.1.0-rhel7.4-x86_64.tgz
9ae98b165b034d3397fae7e38c5fc664  MLNX_OFED_LINUX-4.3-1.0.1.0-rhel7.4-x86_64.tgz
Open the tar
[bash]>tar -xzf MLNX_OFED_LINUX-4.3-1.0.1.0-rhel7.4-x86_64.tgz
[bash]>cd MLNX_OFED_LINUX-4.3-1.0.1.0-rhel7.4-x86_64
Run Install script (use this exact command)
[bash]>sudo ./mlnxofedinstall --with-mft --with-mstflint --dpdk --upstream-libs


Log: /tmp/ofed.build.log
Logs dir: /tmp/MLNX_OFED_LINUX.10406.logs


Do you want to continue?[y/N]:y

Uninstalling the previous version of MLNX_OFED_LINUX

...

Installation passed successfully
To load the new driver, run:
/etc/init.d/openibd restart
Reboot
[bash]>sudo  reboot
After reboot
[bash]>ibv_devinfo
hca_id: mlx5_0
        transport:                      InfiniBand (0)
        fw_ver:                         16.22.1002                 # 1
        node_guid:                      248a:0703:00a2:f380
        sys_image_guid:                 248a:0703:00a2:f380
        vendor_id:                      0x02c9
        vendor_part_id:                 4121
        hw_ver:                         0x0
        board_id:                       MT_0000000013
        phys_port_cnt:                  1
                port:   1
                        state:                  PORT_ACTIVE (4)
                        max_mtu:                4096 (5)
                        active_mtu:             4096 (5)
                        sm_lid:                 0
                        port_lid:               0
                        port_lmc:               0x00
                        link_layer:             Ethernet

hca_id: mlx5_1
        transport:                      InfiniBand (0)
        fw_ver:                         16.22.1002
        node_guid:                      248a:0703:00a2:f381
        sys_image_guid:                 248a:0703:00a2:f380
        vendor_id:                      0x02c9
        vendor_part_id:                 4121
        hw_ver:                         0x0
        board_id:                       MT_0000000013
        phys_port_cnt:                  1
                port:   1
                        state:                  PORT_ACTIVE (4)
                        max_mtu:                4096 (5)
                        active_mtu:             4096 (5)
                        sm_lid:                 0
                        port_lid:               0
                        port_lmc:               0x00
                        link_layer:             Ethernet
1 Verify latest firmware. Currently it’s 16.22.1002 for Connect5 and 12.22.1002 for Connect4.
ibdev2netdev
[bash]>ibdev2netdev
mlx5_0 port 1 ==> enp4s0f0 (Up)
mlx5_1 port 1 ==> enp4s0f1 (Up)
Find the ports

[bash]>sudo ./dpdk_setup_ports.py -t
+----+------+---------+-------------------+---------------------------------+-----------+-
| ID | NUMA |   PCI   |        MAC        |              Name               |  Driver   |
+====+======+=========+===================+=================================+===========+=
| 0  | 0    | 04:00.0 | 24:8a:07:a2:f3:80 | MT28800 Family [ConnectX-5 Ex]  | mlx5_core | #1
+----+------+---------+-------------------+---------------------------------+-----------+-
| 1  | 0    | 04:00.1 | 24:8a:07:a2:f3:81 | MT28800 Family [ConnectX-5 Ex]  | mlx5_core | #2
+----+------+---------+-------------------+---------------------------------+-----------+-
| 2  | 0    | 07:00.0 | 2c:d0:2d:b2:8d:98 | I350 Gigabit Network Connection | igb       |
+----+------+---------+-------------------+---------------------------------+-----------+-
| 3  | 0    | 07:00.1 | 2c:d0:2d:b2:8d:99 | I350 Gigabit Network Connection | igb       |
+----+------+---------+-------------------+---------------------------------+-----------+-
1 ConnectX-5 port 0
2 ConnectX-5 port 1
Config file example
### Config file generated by dpdk_setup_ports.py ###

- port_limit: 2
  version: 2
  interfaces: ['04:00.0', '04:00.1']
  port_info:
      - ip: 1.1.1.1
        default_gw: 2.2.2.2
      - ip: 2.2.2.2
        default_gw: 1.1.1.1

  platform:
      master_thread_id: 0
      latency_thread_id: 14
      dual_if:
        - socket: 0
          threads: [1,2,3,4,5,6,7,8,9,10,11,12,13]

4. Connect-5x maximum throughput

Table 1. TRex unidirectional traffic matrix
Packet size Tx L1 Percent (100Gb) Rx L1 Percent (100Gb)

64

100%

88%

imix

90%

90%, 64B PCI optimization does not work in this case. This is the reason the performance is worse than 64B and 128B

128

100%

100%

256

100%

100%

512

100%

100%

1024

100%

100%

1500

100%

100%

5. 100Gb Optics

The optics should be approved Mellanox optics any other optics might not work due to speed field in the optic eeprom that breaks vendor compatibility verification.

In case the NIC is stuck in IB try

Change to Ethernet mode
[bash]>sudo mstconfig -d [youpci] set LINK_TYPE_P1=2 LINK_TYPE_P2=2

For example for 04:00.0

[bash]>sudo mstconfig -d 04:00.0 set LINK_TYPE_P1=2 LINK_TYPE_P2=2

To use Cisco optics, you need to disable to power limit by command:

[bash]>mlxconfig -e -d [youpci] set ADVANCED_POWER_SETTINGS=True
[bash]>mlxconfig -e -d [youpci] set DISABLE_SLOT_POWER_LIMITER=True

6. Upgrade procedure

TRex v2.32 and lower works with OFED 4.1 and it can’t work with OFED 4.2/newer

Table 2. TRex OFED matrix
TRex version OFED Disto

2.32

only 4.1

CentOS 7.3

2.33 or higher

only 4.3

CentOS 7.4

Warning In our case an upgrade from CentOS 7.3 to CentOS 7.4 using yum update didn’t work and we needed to reinstall everything from scratch see trex-504

7. TRex specific implementation details

TRex uses flow director filter to steer specific packets to specific queues. To support that, we change IPv4.TOS/Ipv6.TC LSB to 1 for packets we want to handle by software (Other packets will be dropped). So latency packets will have this bit turned on (This is true for all NIC types, not only for ConnectX-4). This means that if the DUT for some reason clears this bit (change TOS LSB to 0, e.g. change it from 0x3 to 0x2 for example) some TRex features (latency measurement for example) will not work properly.

8. Which NIC to buy?

For CX-4, it is better to have MCX456A-ECAT(dual 100gb ports) and not the MCX455A-ECAT (single 100gb port). For CX-5, it is better to have the ConnectX-5 Ex EN version which run faster(Ex). part number is MCX516A-CDAT (PCIe4.0). MCX516A-CCAT and MCX515A-CCAT will be a bit slower. see ConnectX-5

9. Limitation/Issues

Many issues were solved in new DPDK 17.11 the current list of issues are:

  • Stateless mode “per stream statistics” feature is handled in software (No hardware support like in X710 card).

10. Troubleshooting

  • Before running TRex make sure the commands ibv_devinfo and ibdev2netdev present the NICS

  • ifconfig should work too, you need to be able to ping from those ports

  • run TRex server with -v 7 for example sudo ./t-rex-64 -i -v 7

  • In case the link_layer is not set to Ethernet you should run this command

[bash]>sudo mlxconfig -d /dev/mst/mt4115_pciconf0 set LINK_TYPE_P1=2 LINK_TYPE_P2=2
[bash]>sudo mlxconfig -d /dev/mst/mt4115_pciconf1 set LINK_TYPE_P1=2 LINK_TYPE_P2=2
  • It is possible to change the link speed (e.g. 50Gb/40Gb/25Gb) see change speed

for example to change to 50Gb speed

[bash]>sudo ethtool -s enp135s0f1 speed 50000 autoneg off
  • Check how many DRAM channels are installed. Less than 4 will impose latency and performance issue

[bash]>sudo dmidecode -t memory | grep CHANNEL
Bank Locator: NODE 0 CHANNEL 0 DIMM 0
Bank Locator: NODE 0 CHANNEL 0 DIMM 1
Bank Locator: NODE 0 CHANNEL 0 DIMM 2
Bank Locator: NODE 0 CHANNEL 1 DIMM 0
Bank Locator: NODE 0 CHANNEL 1 DIMM 1
Bank Locator: NODE 0 CHANNEL 1 DIMM 2
Bank Locator: NODE 0 CHANNEL 2 DIMM 0
Bank Locator: NODE 0 CHANNEL 2 DIMM 1
Bank Locator: NODE 0 CHANNEL 2 DIMM 2
Bank Locator: NODE 0 CHANNEL 3 DIMM 0
Bank Locator: NODE 0 CHANNEL 3 DIMM 1
Bank Locator: NODE 0 CHANNEL 3 DIMM 2
  • I can reach maximum rate of 50Gb/sec


[bash]>sudo lspci | grep  Mellanox
87:00.0 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]  #1
87:00.1 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]


[bash]>sudo lspci -vv -s 87:00.0                                                         #2
87:00.0 Ethernet controller: Mellanox Technologies MT27700 Family [ConnectX-4]
        Subsystem: Mellanox Technologies Device 0008
        Physical Slot: 0-9
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin A routed to IRQ 43
        Region 0: Memory at f8000000 (64-bit, prefetchable) [size=32M]
        Expansion ROM at fbe00000 [disabled] [size=1M]
        Capabilities: [60] Express (v2) Endpoint, MSI 00
                DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+
                DevCtl: Report errors: Correctable- Non-Fatal+ Fatal+ Unsupported-
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-
                        MaxPayload 256 bytes, MaxReadReq 1024 bytes
                DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-
                LnkCap: Port #0, Speed 8GT/s, Width x16, ASPM not supported, Exit Latency L0s unlimited, L1 unlimited
                        ClockPM- Surprise- LLActRep- BwNot-
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 8GT/s, Width x16, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-  #4
                DevCap2: Completion Timeout: Range ABCD, TimeoutDis+, LTR-, OBFF Not Supported
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+, EqualizationPhase1+
                         EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
        Capabilities: [48] Vital Product Data
                Product Name: CX416A - ConnectX-4 QSFP28
                Read-only fields:
                        [PN] Part number: MCX416A-CCAT                                 #3
                        [EC] Engineering changes: A7
                        [SN] Serial number: MT1618X16948
                        [V0] Vendor specific: PCIeGen3 x16
                        [RV] Reserved: checksum good, 0 byte(s) reserved
                End
        Capabilities: [9c] MSI-X: Enable+ Count=64 Masked-
                Vector table: BAR=0 offset=00002000
                PBA: BAR=0 offset=00003000
        Capabilities: [c0] Vendor Specific Information: Len=18 <?>
        Capabilities: [40] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0-,D1-,D2-,D3hot-,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES- TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
                AERCap: First Error Pointer: 04, GenCap+ CGenEn- ChkCap+ ChkEn-
        Capabilities: [150 v1] Alternative Routing-ID Interpretation (ARI)
                ARICap: MFVC- ACS-, Next Function: 1
                ARICtl: MFVC- ACS-, Function Group: 0
        Capabilities: [180 v1] Single Root I/O Virtualization (SR-IOV)
                IOVCap: Migration-, Interrupt Message Number: 000
                IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy+
                IOVSta: Migration-
                Initial VFs: 8, Total VFs: 8, Number of VFs: 0, Function Dependency Link: 00
                VF offset: 2, stride: 1, Device ID: 1014
                Supported Page Size: 000007ff, System Page Size: 00000001
                Region 0: Memory at 00000000fa800000 (64-bit, prefetchable)
                VF Migration: offset: 00000000, BIR: 0
        Capabilities: [1c0 v1] #19
        Capabilities: [230 v1] Access Control Services
                ACSCap: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
                ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
        Kernel driver in use: mlx5_core


[bash]>sudo lspci -vt | grep Mellanox                                                       #5
 +-[0000:80]-+-00.0-[81]--
  |           +-01.0-[82]--
  |           +-01.1-[83]--
  |           +-02.0-[84]--
  |           +-02.2-[85-86]--+-00.0  Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection
  |           |               \-00.1  Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection
  |           +-03.0-[87]--+-00.0  Mellanox Technologies MT27700 Family [ConnectX-4]
  |           |            \-00.1  Mellanox Technologies MT27700 Family [ConnectX-4]



[bash]>sudo lspci -vv -s 0000:80:03.0                                                     #6
80:03.0 PCI bridge: Intel Corporation Xeon E7 v3/Xeon E5 v3/Core i7 PCI Express Root Port 3 (rev 02) (prog-if 00 [Normal decode])
        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Bus: primary=80, secondary=87, subordinate=87, sec-latency=0
        Memory behind bridge: fbd00000-fbefffff
        Prefetchable memory behind bridge: 00000000f6000000-00000000faffffff
        Secondary status: 66MHz- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort+ <SERR- <PERR-
        BridgeCtl: Parity- SERR- NoISA- VGA- MAbort- >Reset- FastB2B-
                PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn-
        Capabilities: [40] Subsystem: Intel Corporation Device 0000
        Capabilities: [60] MSI: Enable+ Count=1/2 Maskable+ 64bit-
                Address: fee00138  Data: 0000
                Masking: 00000002  Pending: 00000000
        Capabilities: [90] Express (v2) Root Port (Slot-), MSI 00
                DevCap: MaxPayload 256 bytes, PhantFunc 0
                        ExtTag- RBE+
                DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+
                        RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
                        MaxPayload 256 bytes, MaxReadReq 128 bytes
                DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend-
                LnkCap: Port #7, Speed 8GT/s, Width x16, ASPM L1, Exit Latency L0s <512ns, L1 <16us
                        ClockPM- Surprise+ LLActRep+ BwNot+
                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 8GT/s, Width x16, TrErr- Train- SlotClk+ DLActive+ BWMgmt+ ABWMgmt-
                RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible-
                RootCap: CRSVisible-
                RootSta: PME ReqID 0000, PMEStatus- PMEPending-
                DevCap2: Completion Timeout: Range BCD, TimeoutDis+, LTR-, OBFF Not Supported ARIFwd+
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-, LTR-, OBFF Disabled ARIFwd+
                LnkCtl2: Target Link Speed: 8GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance De-emphasis: -6dB
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete+, EqualizationPhase1+
                         EqualizationPhase2+, EqualizationPhase3+, LinkEqualizationRequest-
        Capabilities: [e0] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] Vendor Specific Information: ID=0002 Rev=0 Len=00c <?>
        Capabilities: [110 v1] Access Control Services
                ACSCap: SrcValid+ TransBlk+ ReqRedir+ CmpltRedir+ UpstreamFwd+ EgressCtrl- DirectTrans-
                ACSCtl: SrcValid- TransBlk- ReqRedir- CmpltRedir- UpstreamFwd- EgressCtrl- DirectTrans-
        Capabilities: [148 v1] Advanced Error Reporting
                UESta:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UEMsk:  DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
                UESvrt: DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
                CESta:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                CEMsk:  RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr-
                AERCap: First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
        Capabilities: [1d0 v1] Vendor Specific Information: ID=0003 Rev=1 Len=00a <?>
        Capabilities: [250 v1] #19
        Capabilities: [280 v1] Vendor Specific Information: ID=0005 Rev=3 Len=018 <?>
        Capabilities: [300 v1] Vendor Specific Information: ID=0008 Rev=0 Len=038 <?>
        Kernel driver in use: pcieport

1 look for the PCI id
2 run the lspci -vv to find out the Part number
3 Part number should be MCX516A-CDAT(CX5)/MCX416A-CCAT (CX4) for 100Gb NICS
4 PCI LnkSta (status) should be x16 and NOT x8 in case it is not you should look for UCS PCIe configucation (raiser)
5 Check parent PCI speed to be find where is the problem-→ in this case it is 0000:80:03.0
6 Look for the speed

11. Build with native OFED

In some case there is a need to build the dpdk-mlx5 with different OFED (not just 4.0 maybe newer) to do so run this on native machine

[bash]> ./b configure
Setting top to                           : /auto/srg-sce-swinfra-usr/emb/users/hhaim/work/depot/asr1k/emb/private/hhaim/bp_sim_git/trex-core
Setting out to                           : /auto/srg-sce-swinfra-usr/emb/users/hhaim/work/depot/asr1k/emb/private/hhaim/bp_sim_git/trex-core/linux_dpdk/build_dpdk
Checking for program 'g++, c++'          : /bin/g++
Checking for program 'ar'                : /bin/ar
Checking for program 'gcc, cc'           : /bin/gcc
Checking for program 'ar'                : /bin/ar
Checking for program 'ldd'               : /bin/ldd
Checking for library z                   : yes
Checking for OFED                        : Found needed version 4.0   #1
Checking for library ibverbs             : yes
'configure' finished successfully (1.826s)
1 make sure it was identify
Code change need for new OFED
        index fba7540..a55fe6b 100755
        --- a/linux_dpdk/ws_main.py
        +++ b/linux_dpdk/ws_main.py
        @@ -143,8 +143,11 @@ def missing_pkg_msg(fedora, ubuntu):
         def check_ofed(ctx):
             ctx.start_msg('Checking for OFED')
             ofed_info='/usr/bin/ofed_info'
        -    ofed_ver= '-3.4-'
        -    ofed_ver_show= 'v3.4'
        +
        +    ofed_ver_re = re.compile('.*[-](\d)[.](\d)[-].*')
        +
        +    ofed_ver= 40                                     1
        +    ofed_ver_show= '4.0'


        --- a/scripts/dpdk_setup_ports.py
        +++ b/scripts/dpdk_setup_ports.py
        @@ -366,8 +366,8 @@ Other network devices

                 ofed_ver_re = re.compile('.*[-](\d)[.](\d)[-].*')

        -        ofed_ver= 34
        -        ofed_ver_show= '3.4-1'
        +        ofed_ver= 40                                 2
        +        ofed_ver_show= '4.0'
1 change to new version
2 change to new version