[dts] [PATCH] test_plans: PMD drivers adaption for new RXTX offload APIs
Peng Yuan
yuan.peng at intel.com
Thu Apr 19 11:54:40 CEST 2018
Add test plan for the feature "Intel PMD drivers adaption for new RXTX offload APIs"
Signed-off-by: Peng Yuan <yuan.peng at intel.com>
diff --git a/test_plans/rxtx_offload_test_plan.rst b/test_plans/rxtx_offload_test_plan.rst
new file mode 100644
index 0000000..b20c8b9
--- /dev/null
+++ b/test_plans/rxtx_offload_test_plan.rst
@@ -0,0 +1,507 @@
+.. Copyright (c) <2018>, Intel Corporation
+ All rights reserved.
+
+ Redistribution and use in source and binary forms, with or without
+ modification, are permitted provided that the following conditions
+ are met:
+
+ - Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+
+ - Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+
+ - Neither the name of Intel Corporation nor the names of its
+ contributors may be used to endorse or promote products derived
+ from this software without specific prior written permission.
+
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+ FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+ COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+ INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+ HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+ STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+ OF THE POSSIBILITY OF SUCH DAMAGE.
+
+==============================================
+PMD drivers adaption for new RXTX offload APIs
+==============================================
+Description
+===========
+
+ Adapt all the Intel drivers for the new RX/TX offload APIs.
+ There're new RX/TX offload APIs accepted in 17.11,
+ These new APIs are more friendly and easier to use.
+ Currently, they co-exist with the old APIs. Some adaption work is
+ here to make the drivers can use the old ones or the new ones.
+ But suppose the target is to let all the NICs support the new APIs
+ and then remove the old ones.
+ So, in driver layer, we can begin to support the new ones and remove
+ the old ones.
+ Eight new commands are added:
+ Rx test commands:
+ 1. testpmd > rx_offload get capability <port_id>
+ 2. testpmd > rx_offload get configuration <port_id>
+ 3. testmpd > rx_offload enable|disable per_port <offload> <port_id>
+ 4. testpmd > rx_offload enable|disable per_queue <offload> <port_id> <queue_id>
+ Tx test commands:
+ 1. testpmd > tx_offload get capability <port_id>
+ 2. testpmd > tx_offload get configuration <port_id>
+ 3. testmpd > tx_offload enable|disable per_port <offload> <port_id>
+ 4. testpmd > tx_offload enable|disable per_queue <offload> <port_id> <queue_id>
+
+Prerequisites
+=============
+
+1. Hardware:
+ Fortville/82599
+
+2. Software:
+ dpdk: http://dpdk.org/git/dpdk
+ scapy: http://www.secdev.org/projects/scapy/
+
+3. Bind the pf port to dpdk driver::
+
+ ./usertools/dpdk-devbind.py -b igb_uio 05:00.0 05:00.1
+
+Notes: all the cases are discribed according to ixgbe,
+i40e will has difference with ixgbe in printing.
+There is no per_queue parameter in i40e setting now.
+
+Test case: rx_offload set per_queue parameter
+=============================================
+
+1. Start testpmd::
+
+ ./testpmd -c f -n 4 -- -i --rxq=4 --txq=4
+ testpmd> set fwd rxonly
+ testpmd> set verbose 1
+ testpmd> start
+ testpmd> show port info all
+ VLAN offload:
+ strip off
+
+2. Get the rx_offload capability and configuration::
+
+ testpmd> rx_offload get capability 0
+ Rx Offloading Capabilities of port 0 :
+ Per Queue : VLAN_STRIP
+ Per Port : IPV4_CKSUM UDP_CKSUM TCP_CKSUM TCP_LRO MACSEC_STRIP VLAN_FILTER VLAN_EXTEND JUMBO_FRAME CRC_STRIP SCATTER SECURITY
+ testpmd> rx_offload get configuration 0
+ Rx Offloading Configuration of port 0 :
+ Port : CRC_STRIP
+ Queue[ 0] : CRC_STRIP
+ Queue[ 1] : CRC_STRIP
+ Queue[ 2] : CRC_STRIP
+ Queue[ 3] : CRC_STRIP
+
+3. Enable vlan_strip per_queue::
+
+ testpmd> rx_offload enable per_queue vlan_strip 0 0
+ testpmd> rx_offload enable per_queue vlan_strip 0 2
+ testpmd> rx_offload get configuration 0
+ Rx Offloading Configuration of port 0 :
+ Port : CRC_STRIP
+ Queue[ 0] : VLAN_STRIP CRC_STRIP
+ Queue[ 1] : CRC_STRIP
+ Queue[ 2] : VLAN_STRIP CRC_STRIP
+ Queue[ 3] : CRC_STRIP
+ testpmd> port start 0
+ testpmd> show port info 0
+ VLAN offload:
+ strip on
+
+4. Send two packets::
+
+ pkt1 = Ether(dst="00:00:00:00:01:00", src="00:02:00:00:00:01")/Dot1Q(vlan=1)/IP(src="192.168.0.1", dst="192.168.0.3")/UDP(sport=33,dport=34)/Raw('x'*20)
+ pkt2 = Ether(dst="00:00:00:00:01:00", src="00:02:00:00:00:01")/Dot1Q(vlan=1)/IP(src="192.168.0.2", dst="192.168.0.3")/UDP(sport=33,dport=34)/Raw('x'*20)
+
+ Port0 receive the two packets::
+
+ testpmd> port 0/queue 1: received 1 packets
+ src=00:02:00:00:00:01 - dst=00:00:00:00:01:00 - type=0x8100 - length=66 - nb_segs=1 - RSS hash=0x4b4e59b1 - RSS queue=0x3 - hw ptype: L2_ETHER L3_IPV4 L4_UDP - sw ptype: L2_ETHER_VLAN L3_IPV4 L4_UDP - l2_len=18 - l3_len=20 - l4_len=8 - Receive queue=0x1
+ ol_flags: PKT_RX_VLAN PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD
+ port 0/queue 2: received 1 packets
+ src=00:02:00:00:00:01 - dst=00:00:00:00:01:00 - type=0x0800 - length=62 - nb_segs=1 - RSS hash=0xf0068ffe - RSS queue=0x2 - VLAN tci=0x1 - hw ptype: L2_ETHER L3_IPV4 L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x2
+ ol_flags: PKT_RX_VLAN PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_VLAN_STRIPPED
+
+ Queue2 implement the vlan strip, queue3 doesn't support vlan strip.
+
+5. Disable vlan_strip per_queue::
+
+ testpmd> rx_offload enable per_queue vlan_strip 0 3
+ testpmd> rx_offload disable per_queue vlan_strip 0 2
+ testpmd> rx_offload get configuration 0
+ Rx Offloading Configuration of port 0 :
+ Port : CRC_STRIP
+ Queue[ 0] : VLAN_STRIP CRC_STRIP
+ Queue[ 1] : CRC_STRIP
+ Queue[ 2] : CRC_STRIP
+ Queue[ 3] : VLAN_STRIP CRC_STRIP
+
+ Send the same packets::
+
+ testpmd> port 0/queue 3: received 1 packets
+ src=00:02:00:00:00:01 - dst=00:00:00:00:01:00 - type=0x0800 - length=62 - nb_segs=1 - RSS hash=0x6bfdcb2f - RSS queue=0x3 - VLAN tci=0x1 - hw ptype: L2_ETHER L3_IPV4 L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x3
+ ol_flags: PKT_RX_VLAN PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_VLAN_STRIPPED
+ port 0/queue 2: received 1 packets
+ src=00:02:00:00:00:01 - dst=00:00:00:00:01:00 - type=0x8100 - length=66 - nb_segs=1 - RSS hash=0xf0068ffe - RSS queue=0x2 - hw ptype: L2_ETHER L3_IPV4 L4_UDP - sw ptype: L2_ETHER_VLAN L3_IPV4 L4_UDP - l2_len=18 - l3_len=20 - l4_len=8 - Receive queue=0x2
+ ol_flags: PKT_RX_VLAN PKT_RX_RSS_HASH PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD
+
+ Queue3 implement the vlan strip, queue2 doesn't support vlan strip.
+
+6. Enable vlan_strip per_port::
+
+ testpmd> rx_offload enable per_port vlan_strip 0
+ testpmd> rx_offload get configuration 0
+ Rx Offloading Configuration of port 0 :
+ Port : VLAN_STRIP CRC_STRIP
+ Queue[ 0] : VLAN_STRIP CRC_STRIP
+ Queue[ 1] : VLAN_STRIP CRC_STRIP
+ Queue[ 2] : VLAN_STRIP CRC_STRIP
+ Queue[ 3] : VLAN_STRIP CRC_STRIP
+
+ Send the two packets. queue3 and queue2 both implement vlan_strip
+
+7. Disable vlan_strip per_port::
+
+ testpmd> rx_offload disable per_port vlan_strip 0
+ testpmd> rx_offload get configuration 0
+ Rx Offloading Configuration of port 0 :
+ Port : CRC_STRIP
+ Queue[ 0] : CRC_STRIP
+ Queue[ 1] : CRC_STRIP
+ Queue[ 2] : CRC_STRIP
+ Queue[ 3] : CRC_STRIP
+ testpmd> show port info 0
+ VLAN offload:
+ strip off
+
+ send the two packets. queue3 and queue2 both don't support vlan_strip
+ Notes: there is no per_queue parameter in i40e driver,
+ so this case is just only for ixgbe.
+
+Test case: rx_offload set per_port parameter
+============================================
+
+1. Enable jumboframe when start testpmd::
+
+ ./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -- -i --rxq=4 --txq=4 --max-pkt-len=9000
+ testpmd> set fwd rxonly
+ testpmd> set verbose 1
+ testpmd> start
+ testpmd> rx_offload get capability 0
+ Rx Offloading Capabilities of port 0 :
+ Per Queue : VLAN_STRIP
+ Per Port : IPV4_CKSUM UDP_CKSUM TCP_CKSUM TCP_LRO MACSEC_STRIP VLAN_FILTER VLAN_EXTEND JUMBO_FRAME CRC_STRIP SCATTER SECURITY
+ testpmd> rx_offload get configuration 0
+ Rx Offloading Configuration of port 0 :
+ Port : JUMBO_FRAME CRC_STRIP
+ Queue[ 0] : JUMBO_FRAME CRC_STRIP
+ Queue[ 1] : JUMBO_FRAME CRC_STRIP
+ Queue[ 2] : JUMBO_FRAME CRC_STRIP
+ Queue[ 3] : JUMBO_FRAME CRC_STRIP
+
+2. Send a jumboframe packet::
+
+ pkt1 = Ether(dst="52:54:00:00:00:01", src="52:00:00:00:00:00")/IP(dst="192.168.0.1", src="192.168.0.2", len=8981)/Raw(load="P"*8961)
+ pkt1 = Ether(dst="52:54:00:00:00:01", src="52:00:00:00:00:00")/IP(dst="192.168.0.1", src="192.168.0.3", len=8981)/Raw(load="P"*8961)
+
+ pkt1 was distributed to queue 1, pkt2 was distributed to queue 0.
+
+3. Failed to disable jumboframe per_queue::
+
+ testpmd> port stop 0
+ testpmd> rx_offload disable per_queue jumbo_frame 0 1
+ testpmd> port start 0
+ Configuring Port 0 (socket 0)
+ ixgbe_dev_rx_queue_setup(): 0xfd39c0: Rx queue offloads 0x1000 don't match port offloads 0x1800 or supported port offloads 0xbe9e or supported queue offloads 0x1
+ Fail to configure port 0 rx queues
+
+4. Succeed to disable jumboframe per_port::
+
+ testpmd> rx_offload disable per_port jumbo_frame 0
+ testpmd> port start 0
+ testpmd> rx_offload get configuration 0
+ Rx Offloading Configuration of port 0 :
+ Port : CRC_STRIP
+ Queue[ 0] : CRC_STRIP
+ Queue[ 1] : CRC_STRIP
+ Queue[ 2] : CRC_STRIP
+ Queue[ 3] : CRC_STRIP
+ testpmd> start
+
+ Send the same two packet, there is no packet received.
+
+5. Failed to enable jumboframe per_queue::
+
+ testpmd> port stop 0
+ testpmd> rx_offload enable per_queue jumbo_frame 0 1
+ testpmd> port start 0
+ Configuring Port 0 (socket 0)
+ ixgbe_dev_rx_queue_setup(): 0xfd39c0: Rx queue offloads 0x1000 don't match port offloads 0x1800 or supported port offloads 0xbe9e or supported queue offloads 0x1
+ Fail to configure port 0 rx queues
+
+6. Succeed to enable jumboframe per_port.
+ Send the same two packet, pkt1 was distributed to queue 1,
+ pkt2 was distributed to queue 0.
+
+Test case: rx_offload 1 command-line parameter covers 3 per_port parameter
+==========================================================================
+
+1. Enable rx cksum in command-line::
+
+ ./x86_64-native-linuxapp-gcc/app/testpmd -c f -n 4 -- -i --rxq=4 --txq=4 --enable-rx-cksum
+ testpmd> rx_offload get configuration 0
+ Rx Offloading Configuration of port 0 :
+ Port : IPV4_CKSUM UDP_CKSUM TCP_CKSUM CRC_STRIP
+ Queue[ 0] : IPV4_CKSUM UDP_CKSUM TCP_CKSUM CRC_STRIP
+ Queue[ 1] : IPV4_CKSUM UDP_CKSUM TCP_CKSUM CRC_STRIP
+ Queue[ 2] : IPV4_CKSUM UDP_CKSUM TCP_CKSUM CRC_STRIP
+ Queue[ 3] : IPV4_CKSUM UDP_CKSUM TCP_CKSUM CRC_STRIP
+
+2. Disable the rx cksum per_port::
+
+ testpmd> port stop 0
+ testpmd> rx_offload disable per_port udp_cksum 0
+ testpmd> rx_offload get configuration 0
+ Rx Offloading Configuration of port 0 :
+ Port : IPV4_CKSUM TCP_CKSUM CRC_STRIP
+ Queue[ 0] : IPV4_CKSUM TCP_CKSUM CRC_STRIP
+ Queue[ 1] : IPV4_CKSUM TCP_CKSUM CRC_STRIP
+ Queue[ 2] : IPV4_CKSUM TCP_CKSUM CRC_STRIP
+ Queue[ 3] : IPV4_CKSUM TCP_CKSUM CRC_STRIP
+ testpmd> port start 0
+
+ The port can start normally.
+ Try this step with "tcp_cksum/ipv4_cksum", the port can start normally.
+
+3. Enable the rx cksum per_port, all the configuration can be set successfully.
+ The port can start normally.
+
+Test case: rx_offload set other capability per_port and per_queue
+=================================================================
+
+1. Check all the rx_offload capability::
+
+ testpmd> rx_offload get capability 0
+ Rx Offloading Capabilities of port 0 :
+ Per Queue : VLAN_STRIP
+ Per Port : IPV4_CKSUM UDP_CKSUM TCP_CKSUM TCP_LRO MACSEC_STRIP VLAN_FILTER VLAN_EXTEND JUMBO_FRAME CRC_STRIP SCATTER SECURITY
+
+2. Enable and disable other capability per_port and per_queue.
+ Check the configuration and the port can start normally.
+
+Test case: tx_offload set vlan_insert per_port
+==============================================
+
+1. Start testpmd::
+
+ ./x86_64-native-linuxapp-gcc/app/testpmd -c 0x6 -n 4 -- -i --rxq=4 --txq=4 --port-topology=loop
+ testpmd> set fwd txonly
+ testpmd> set verbose 1
+ testpmd> tx_offload get capability 0
+ Tx Offloading Capabilities of port 0 :
+ Per Queue :
+ Per Port : VLAN_INSERT IPV4_CKSUM UDP_CKSUM TCP_CKSUM SCTP_CKSUM TCP_TSO MACSEC_INSERT SECURITY
+ testpmd> tx_offload get configuration 0
+ Tx Offloading Configuration of port 0 :
+ Port :
+ Queue[ 0] :
+ Queue[ 1] :
+ Queue[ 2] :
+ Queue[ 3] :
+ testpmd> start
+
+ Port1 received the packet::
+
+ # tcpdump -i ens786f1 -e -n -v -x
+ 16:27:19.689870 90:e2:ba:ac:9b:44 > 02:00:00:00:00:00, ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 50)
+ 192.168.0.1.1024 > 192.168.0.2.1024: UDP, length 22
+ 0x0000: 4500 0032 0000 0000 4011 f967 c0a8 0001
+ 0x0010: c0a8 0002 0400 0400 001e 0000 0000 0000
+ 0x0020: 0000 0000 0000 0000 0000 0000 0000 0000
+ 0x0030: 0000
+
+ There is no vlan infomation.
+
+2. Enable vlan_insert per_port::
+
+ testpmd> port stop 0
+ testpmd> tx_offload enable per_port vlan_insert 0
+ testpmd> port start 0
+ Configuring Port 0 (socket 0)
+ Port 0: 90:E2:BA:AC:9B:44
+ Checking link statuses...
+ Done
+ testpmd> tx_offload get configuration 0
+ Tx Offloading Configuration of port 0 :
+ Port : VLAN_INSERT
+ Queue[ 0] : VLAN_INSERT
+ Queue[ 1] : VLAN_INSERT
+ Queue[ 2] : VLAN_INSERT
+ Queue[ 3] : VLAN_INSERT
+ testpmd> start
+ 16:16:19.437534 90:e2:ba:ac:9b:44 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 68: vlan 0, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 50)
+ 192.168.0.1.1024 > 192.168.0.2.1024: UDP, length 22
+ 0x0000: 0000 0800 4500 0032 0000 0000 4011 f967
+ 0x0010: c0a8 0001 c0a8 0002 0400 0400 001e 0000
+ 0x0020: 0000 0000 0000 0000 0000 0000 0000 0000
+ 0x0030: 0000 0000 0000
+
+ There is vlan ID in the received packet.
+ The vlan_insert take effect.
+ if with fortville NIC, there is not vlan ID in the received packet.
+
+3. Set the insert vlan ID::
+
+ testpmd> tx_vlan set 0 1
+
+ Receive the packet::
+
+ 16:34:45.348625 90:e2:ba:ac:9b:44 > 02:00:00:00:00:00, ethertype 802.1Q (0x8100), length 68: vlan 1, p 0, ethertype IPv4, (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 50)
+ 192.168.0.1.1024 > 192.168.0.2.1024: UDP, length 22
+ 0x0000: 0001 0800 4500 0032 0000 0000 4011 f967
+ 0x0010: c0a8 0001 c0a8 0002 0400 0400 001e 0000
+ 0x0020: 0000 0000 0000 0000 0000 0000 0000 0000
+ 0x0030: 0000 0000 0000
+
+ The old command can take effect.
+
+4. Disable vlan_insert per_port::
+
+ testpmd> tx_offload disable per_port vlan_insert 0
+ testpmd> port start 0
+ Configuring Port 0 (socket 0)
+ Port 0: 90:E2:BA:AC:9B:44
+ Checking link statuses...
+ Done
+ testpmd> tx_offload get configuration 0
+ Tx Offloading Configuration of port 0 :
+ Port :
+ Queue[ 0] :
+ Queue[ 1] :
+ Queue[ 2] :
+ Queue[ 3] :
+ testpmd> start
+ 16:36:07.512453 90:e2:ba:ac:9b:44 > 02:00:00:00:00:00, ethertype IPv4 (0x0800), length 64: (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 50)
+ 192.168.0.1.1024 > 192.168.0.2.1024: UDP, length 22
+ 0x0000: 4500 0032 0000 0000 4011 f967 c0a8 0001
+ 0x0010: c0a8 0002 0400 0400 001e 0000 0000 0000
+ 0x0020: 0000 0000 0000 0000 0000 0000 0000 0000
+ 0x0030: 0000
+
+ There is no vlan infomation in the received packet.
+ The disable command take effect.
+
+Test case: tx_offload failed to set vlan_insert per_queue
+=========================================================
+
+1. Start testpmd with "--tx-offloads"::
+
+ ./testpmd -c 0xf -n 4 -- -i --rxq=4 --txq=4 --port-topology=loop --tx-offloads=0x0001
+ testpmd> tx_offload get capability 0
+ Tx Offloading Capabilities of port 0 :
+ Per Queue :
+ Per Port : VLAN_INSERT IPV4_CKSUM UDP_CKSUM TCP_CKSUM SCTP_CKSUM TCP_TSO MACSEC_INSERT SECURITY
+ testpmd> tx_offload get configuration 0
+ Tx Offloading Configuration of port 0 :
+ Port : VLAN_INSERT
+ Queue[ 0] : VLAN_INSERT
+ Queue[ 1] : VLAN_INSERT
+ Queue[ 2] : VLAN_INSERT
+ Queue[ 3] : VLAN_INSERT
+
+2. Disable vlan_insert per_queue::
+
+ testpmd> port stop 0
+ testpmd> tx_offload disable per_queue vlan_insert 0 1
+ testpmd> tx_offload get configuration 0
+ Tx Offloading Configuration of port 0 :
+ Port : VLAN_INSERT
+ Queue[ 0] : VLAN_INSERT
+ Queue[ 1] :
+ Queue[ 2] : VLAN_INSERT
+ Queue[ 3] : VLAN_INSERT
+ testpmd> port start 0
+ Configuring Port 0 (socket 0)
+ ixgbe_dev_tx_queue_setup(): 0xfd39c0: Tx queue offloads 0x1 don't match port offloads 0x0 or supported queue offloads 0x0 or supported port offloads 0x2203f
+ Fail to configure port 0 tx queues
+
+ The per_port capability can't be disabled by per_queue command.
+
+3. Disable vlan_insert per_port::
+
+ testpmd> tx_offload disable per_port vlan_insert 0
+ testpmd> tx_offload get configuration 0
+ Tx Offloading Configuration of port 0 :
+ Port :
+ Queue[ 0] :
+ Queue[ 1] :
+ Queue[ 2] :
+ Queue[ 3] :
+ testpmd> port start 0
+ Configuring Port 0 (socket 0)
+ Port 0: 90:E2:BA:AC:9B:44
+ Checking link statuses...
+ Done
+
+ The per_port capability can be disabled by per_port command.
+
+4. Enable vlan_insert per_queue::
+
+ testpmd> port stop 0
+ testpmd> tx_offload enable per_queue vlan_insert 0 1
+ testpmd> tx_offload get configuration 0
+ Tx Offloading Configuration of port 0 :
+ Port :
+ Queue[ 0] :
+ Queue[ 1] : VLAN_INSERT
+ Queue[ 2] :
+ Queue[ 3] :
+ testpmd> port start 0
+ Configuring Port 0 (socket 0)
+ ixgbe_dev_tx_queue_setup(): 0xfd39c0: Tx queue offloads 0x1 don't match port offloads 0x0 or supported queue offloads 0x0 or supported port offloads 0x2203f
+ Fail to configure port 0 tx queues
+
+ The per_port capability can't be enabled by per_queue command.
+
+5. Enable vlan_insert per_port::
+
+ testpmd> tx_offload enable per_port vlan_insert 0
+ testpmd> tx_offload get configuration 0
+ Tx Offloading Configuration of port 0 :
+ Port : VLAN_INSERT
+ Queue[ 0] : VLAN_INSERT
+ Queue[ 1] : VLAN_INSERT
+ Queue[ 2] : VLAN_INSERT
+ Queue[ 3] : VLAN_INSERT
+ testpmd> port start 0
+ Configuring Port 0 (socket 0)
+ Port 0: 90:E2:BA:AC:9B:44
+ Checking link statuses...
+ Done
+
+ The per_port capability can be enabled by per_port command.
+
+Test case: tx_offload set other capability per_port
+===================================================
+
+1. Check all the tx_offload capability::
+
+ testpmd> tx_offload get capability 0
+ Tx Offloading Capabilities of port 0 :
+ Per Queue :
+ Per Port : VLAN_INSERT IPV4_CKSUM UDP_CKSUM TCP_CKSUM SCTP_CKSUM TCP_TSO MACSEC_INSERT SECURITY
+
+ There is not per_queue capability in tx_offload.
+
+2. Enable and disable other capability per_port.
+ Check the configuration and the port can start normally.
--
2.5.0
More information about the dts
mailing list