[dpdk-dev] [PATCH] vmxnet3: set txq_flags in default TX conf

Zhang, XiaonanX xiaonanx.zhang at intel.com
Fri Dec 12 07:48:12 CET 2014


Tested-by: Xiaonan Zhang <xiaonanx.zhang at intel.com>

- Tested Commit: Pablo
- OS: Fedora20 3.15.8-200.fc20.x86_64
- GCC: gcc version 4.8.3 20140624
- CPU: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
- NIC: Intel Corporation 82599ES 10-Gigabit SFI/SFP+ Network Connection [8086:10fb]
- Default x86_64-native-linuxapp-gcc configuration
- Total 6 cases, 6 passed, 0 failed
- Test Environment setup

- Topology #1: Create 2VMs (Fedora 20, 64bit);for each VM, pass through one physical port(Niantic 82599) to VM, and also create one virtual device: vmxnet3 in VM. Between two VMs, use one vswitch to connect 2 vmxnet3. In summary, PF1 
               and vmxnet3A are in VM1; PF2 and vmxnet3B are in VM2.The traffic flow for l2fwd/l3fwd is as below:                            
               Ixia -> PF1 -> vmxnet3A -> vswitch -> vmxnet3B -> PF2 -> Ixia. 
- Topology #2: Create 1VM (Fedora 20, 64bit), on this VM, created 2 vmxnet3, called vmxnet3A, vmxnet3B; create 2 vswitch, vswitchA connecting PF1 and vmxnet3A, while vswitchB connecting PF2 and vmxnet3B. The traffic flow is as below:
               Ixia -> PF1 -> vswitchA -> vmxnet3A -> vmxnet3B -> vswitchB -> PF2 -> Ixia.

- Test Case1: L2fwd with Topology#1 
  Description: Set up topology#1(in prerequisite session), and bind PF1, PF2, Vmxnet3A, vmxnet3B to DPDK poll-mode driver (igb_uio).
               Increase the flow at line rate (uni-directional traffic), send the flow at different packet size (64bytes, 128bytes, 256bytes, 512bytes, 1024bytes, 1280bytes and 1518bytes) and check the received packets/rate to see  
               if any unexpected behavior, such as no receives after N packets. 
  Command / instruction:
                To run the l2fwd example in 2VMs:
                                ./build/l2fwd -c f -n 4 -- -p 0x3
- Test IXIA Flow prerequisite: Ixia port1 sends 5 packets to PF1, and the flow should have PF1's MAC as destination MAC. Check if ixia port2 have received the 5 packets.
  Expected test result:
                Passed

- Test Case2: L3fwd-VF with Topology#1
  Description: Set up topology#1(in prerequisite session), and bind PF1, PF2, Vmxnet3A, vmxnet3B to DPDK poll-mode driver (igb_uio)
               Increase the flow at line rate (uni-directional traffic), send the flow at different packet size (64bytes, 128bytes, 256bytes, 512bytes, 1024bytes, 1280bytes and 1518bytes) and check the received packets/rate to see  
               if any unexpected behavior, such as no receives after N packets.
  Command / instruction:
                To run the l3fwd-vf example in 2VMs:
                                ./build/l3fwd-vf -c 0x6 -n 4 -- -p 0x3 --config "(0,0,1),(1,0,2)"
- Test IXIA Flow prerequisite: Ixia port1 sends 5 packets to PF1, and the flow should have PF1's MAC as destination MAC and have 2.1.1.x as destination IP. Check if ixia port2 have received the 5 packets.
  Expected test result:
                Passed

- Test Case3: L2fwd with Topology#2
  Description: Set up topology#2(in prerequisite session), and bind vmxnet3A and vmxnet3B to DPDK poll-mode driver (igb_uio).
               Increase the flow at line rate (uni-directional traffic), send the flow at different packet size (64bytes, 128bytes, 256bytes, 512bytes, 1024bytes, 1280bytes and 1518bytes) and check the received packets/rate to see  
               if any unexpected behavior, such as no receives after N packets.
  Command / instruction:
                To run the l2fwd example in VM1:
                                ./build/l2fwd -c f -n 4 -- -p 0x3
- Test IXIA Flow prerequisite: Ixia port1 sends 5 packets to port0 (vmxnet3A), and the flow should have port0's MAC as destination MAC. Check if ixia port2 have received the 5 packets. Similar things need to be done at ixia port2.
  Expected test result:
                Passed

- Test Case4: L3fwd-VF with Topology#2
  Description: Set up topology#2(in prerequisite session), and bind vmxnet3A and vmxnet3B to DPDK poll-mode driver (igb_uio).  
               Increase the flow at line rate (uni-directional traffic), send the flow at different packet size (64bytes, 128bytes, 256bytes, 512bytes, 1024bytes, 1280bytes and 1518bytes) and check the received packets/rate to see  
               if any unexpected behavior, such as no receives after N packets.
  Command / instruction:
                To run the l3fwd-vf example in VM1:
                                ./build/l3fwd-vf -c 0x6 -n 4 -- -p 0x3 --config "(0,0,1),(1,0,2)"
- Test IXIA Flow prerequisite: Ixia port1 sends 5 packets to port0(vmxnet3A), and the flow should have port0's MAC as destination MAC and have 2.1.1.x as destination IP. Check if ixia port2 have received the 5 packets.

  Expected test result:
                Passed

- Test Case5: Timer test with Topology#2
  Description: Set up topology#2(in prerequisite session), and bind vmxnet3A and vmxnet3B to DPDK poll-mode driver (igb_uio).
  Command / instruction:
                Build timer sample and run the sample:
                                ./build/timer -c f -n 4
- Test IXIA Flow prerequisite: N.A.
		
  Expected test result:
                Passed

- Test Case6: Testpmd basic with Topology#2
  Description: Set up topology#2(in prerequisite session), and bind vmxnet3A and vmxnet3B to DPDK poll-mode driver (igbuio).
               Increase the flow at line rate (uni-directional traffic), send the flow at different packet size (64bytes, 128bytes, 256bytes, 512bytes, 1024bytes, 1280bytes and 1518bytes) and check the received packets/rate to see  
               if any unexpected behavior, such as no receives after N packets.
  Command / instruction:
                Run testpmd(e.g:/x86_64-native-linuxapp-gcc/app/testpmd) with below command lines:
                                ./testpmd -c f -n 4 -- --txqflags=0xf01 -i
		    Clean environment and start the forwarding. Need check the port information and clear port statics by using below commands:
                Testpmd>show port info all
                Testpmd>clear port stats all
                Testpmd>show port stats all
                Testpmd>set fwd mac
                Testpmd>start
- Test IXIA Flow prerequisite: N.A.
  Expected test result:
                Passed


-----Original Message-----
From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of De Lara Guarch, Pablo
Sent: Friday, December 12, 2014 3:57 AM
To: De Lara Guarch, Pablo; dev at dpdk.org
Subject: Re: [dpdk-dev] [PATCH] vmxnet3: set txq_flags in default TX conf



> -----Original Message-----
> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Pablo de Lara
> Sent: Thursday, December 11, 2014 5:08 PM
> To: dev at dpdk.org
> Cc: root
> Subject: [dpdk-dev] [PATCH] vmxnet3: set txq_flags in default TX conf
> 
> Since commit fbde27f19ab8f "get default Rx/Tx configuration from dev info",
> a default RX/TX configuration can be used for all PMDs.
> In case of vmxnet3, the whole structure was zeroed and not filled out.
> The PMD does not support multi segments or offload functions,
> so txq_flags should have those flags set.
> 
> Signed-off-by: root <root at sie-lab-214-174.ir.intel.com>

Self-NACK. Wrong signed-off.

> ---
>  lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c |    3 +++
>  1 files changed, 3 insertions(+), 0 deletions(-)
> 
> diff --git a/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c
> b/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c
> index 963a8a5..ef0af16 100644
> --- a/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c
> +++ b/lib/librte_pmd_vmxnet3/vmxnet3_ethdev.c
> @@ -642,6 +642,9 @@
> vmxnet3_dev_info_get(__attribute__((unused))struct rte_eth_dev *dev,
> struct rte_
>  	dev_info->min_rx_bufsize = 1518 + RTE_PKTMBUF_HEADROOM;
>  	dev_info->max_rx_pktlen = 16384; /* includes CRC, cf MAXFRS
> register */
>  	dev_info->max_mac_addrs = VMXNET3_MAX_MAC_ADDRS;
> +
> +	dev_info->default_txconf.txq_flags =
> ETH_TXQ_FLAGS_NOMULTSEGS |
> +
> 	ETH_TXQ_FLAGS_NOOFFLOADS;
>  }
> 
>  /* return 0 means link status changed, -1 means not changed */
> --
> 1.7.4.1



More information about the dev mailing list