* Re: [dpdk-dev] [PATCH] examples/vhost: Fix vlan offload issue
2014-12-12 4:15 [dpdk-dev] [PATCH] examples/vhost: Fix vlan offload issue Ouyang Changchun
@ 2014-12-12 6:00 ` Fu, JingguoX
2014-12-16 16:36 ` Thomas Monjalon
1 sibling, 0 replies; 6+ messages in thread
From: Fu, JingguoX @ 2014-12-12 6:00 UTC (permalink / raw)
To: Ouyang, Changchun, dev
Comments:
This patch fixed all cases related to VM to VM scenario hard switch for virtio.
Basic Information
Patch name: examples/vhost: Fix vlan offload issue
Brief description: Verify all VM to VM scenario cases based hard switch
Test Flag: Tested-by
Tester name: jingguox.fu@intel.com
Test environment:
OS: Fedora20 3.11.10-301.fc20.x86_64
GCC: gcc version 4.8.3 20140911
CPU: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz
NIC: 82599ES 10-Gigabit SFI/SFP+ Network Connection [8086:10fb]
Commit ID: 4c8b41715168101dc76fd9b264658837ff54ab76
Detailed Testing Information:
DPDK SW Configuration:
open CONFIG_RTE_LIBRTE_VHOST
x86_64-native-linuxapp-gcc configuration
Test Result Summary: Total 6 cases, 6 passed, 0 failed
Test Case - name:
vm to vm by dpdk forward hard switch (virtio one copy suite)
Test Case - Description:
Check vhost switch can forward packets received from the first virtio on VM1 to the second virtio on VM2
Test Case - command / instruction:
Start vhost-switch on host and start testpmd on guests
On host:
taskset -c 8-10 vhost-switch -c 0xf00 -n 4 --huge-dir /mnt/huge --socket-mem 1024,1024 -- -p 1 --mergeable 0 --zero-copy 0 --vm2vm 2
On guests:
VM1:
./testpmd -c 0xf -n 4 -- -i --txqflags 0x0f00 --eth-peer=0,00:00:00:00:00:0A
Set fwd type tx_first
testpmd>set fwd mac
testpmd>start tx_first
VM2:
testpmd -c 0xf -n 4 -- -i --txqflags 0x0f00
testpmd>set fwd mac
testpmd>start tx_first
Send packets without vlan id: ether|ip|udp packets
Test Case - expected test result:
packet generator can get the packets from the vf on VM2
Test Case - name:
vm to vm by linux forward hard switch (virtio one copy suite)
Test Case - Description:
Check vhost switch can forward packets received from the first virtio on VM1 to the second virtio on VM2
Test Case -test command / instruction:
Start vhost-switch on host, use virtios as Ethernet devices
On host:
taskset -c 8-10 vhost-switch -c 0xf00 -n 4 --huge-dir /mnt/huge --socket-mem 1024,1024 -- -p 1 --mergeable 0 --zero-copy 0 --vm2vm 2
On guests:
VM1:
ip addr add 192.168.2.2/24 dev eth1
ip neigh add 192.168.2.1 lladdr 00:00:02:00:00:a1 dev eth1
ip link set dev eth1 up
ip addr add 192.168.3.2/24 dev eth0
ip neigh add 192.168.3.1 lladdr 52:00:00:54:00:02 dev eth0
ip link set dev eth0 up
VM2:
ip addr add 192.168.3.2/24 dev eth1
ip neigh add 192.168.3.1 lladdr 00:00:02:00:00:a1 dev eth1
ip link set dev eth1 up
ip addr add 192.168.2.2/24 dev eth0
ip neigh add 192.168.2.1 lladdr 00:00:02:00:00:a1 dev eth0
ip link set dev eth0 up
arp -s 192.168.3.1 00:00:02:0a:0a
Send packets without vlan id: ether|ip|udp packets
Test Case - expected test result:
packet generator can get the packets from the vf on VM2
Test Case - name:
vm to vm by dpdk forward hard switch (virtio one copy jumbo frame suite)
Test Case - Description:
Check vhost switch can forward packets received from the first virtio on VM1 to the second virtio on VM2
Test Case - command / instruction:
Start vhost-switch on host and start testpmd on guests
On host:
taskset -c 8-10 vhost-switch -c 0xf00 -n 4 --huge-dir /mnt/huge --socket-mem 1024,1024 -- -p 1 --mergeable 1 --zero-copy 0 --vm2vm 2
On guests:
VM1:
./testpmd -c 0xf -n 4 -- -i --txqflags 0x0f00 --max-pkt-len 9000 --eth-peer=0,00:00:00:00:00:0A
Set fwd type tx_first
testpmd>set fwd mac
testpmd>start tx_first
VM2:
testpmd -c 0xf -n 4 -- -i --txqflags 0x0f00 --max-pkt-len 9000
testpmd>set fwd mac
testpmd>start tx_first
Send packets without vlan id: ether|ip|udp packets
Test Case - expected test result:
packet generator can get the packets from the vf on VM2
Test Case - name:
vm to vm by linux forward hard switch (virtio one copy jumbo frame suite)
Test Case - Description:
Check vhost switch can forward packets received from the first virtio on VM1 to the second virtio on VM2
Test Case -test command / instruction:
Start vhost-switch on host, use virtios as Ethernet devices
On host:
taskset -c 8-10 vhost-switch -c 0xf00 -n 4 --huge-dir /mnt/huge --socket-mem 1024,1024 -- -p 1 --mergeable 1 --zero-copy 0 --vm2vm 2
On guests:
VM1:
ip addr add 192.168.2.2/24 dev eth1
ip neigh add 192.168.2.1 lladdr 00:00:02:00:00:a1 dev eth1
ip link set dev eth1 up
ip link set dev eth1 mtu 9000
ip addr add 192.168.3.2/24 dev eth0
ip neigh add 192.168.3.1 lladdr 52:00:00:54:00:02 dev eth0
ip link set dev eth0 up
ip link set dev eth0 mtu 9000
VM2:
ip addr add 192.168.3.2/24 dev eth1
ip neigh add 192.168.3.1 lladdr 00:00:02:00:00:a1 dev eth1
ip link set dev eth1 up
ip link set dev eth1 mtu 9000
ip addr add 192.168.2.2/24 dev eth0
ip neigh add 192.168.2.1 lladdr 00:00:02:00:00:a1 dev eth0
ip link set dev eth0 up
ip link set dev eth0 mtu 9000
arp -s 192.168.3.1 00:00:02:0a:0a
Send packets without vlan id: ether|ip|udp packets
Test Case - expected test result:
packet generator can get the packets from the vf on VM2
Test Case - name:
vm to vm by dpdk forward hard switch (virtio zero suite)
Test Case - Description:
Check vhost switch can forward packets received from the first virtio on VM1 to the second virtio on VM2
Test Case - command / instruction:
Start vhost-switch on host and start testpmd on guests
On host:
taskset -c 8-10 vhost-switch -c 0xf00 -n 4 --huge-dir /mnt/huge --socket-mem 1024,1024 -- -p 1 --mergeable 0 --zero-copy 1 --vm2vm 2
On guests:
VM1:
./testpmd -c 0xf -n 4 -- -i --txqflags 0x0f00 --eth-peer=0,00:00:00:00:00:0A
Set fwd type tx_first
testpmd>set fwd mac
testpmd>start tx_first
VM2:
testpmd -c 0xf -n 4 -- -i --txqflags 0x0f00
testpmd>set fwd mac
testpmd>start tx_first
Send packets without vlan id: ether|ip|udp packets
Test Case - expected test result:
packet generator can get the packets from the vf on VM2
Test Case - name:
vm to vm by linux forward hard switch (virtio zero suite)
Test Case - Description:
Check vhost switch can forward packets received from the first virtio on VM1 to the second virtio on VM2
Test Case -test command / instruction:
Start vhost-switch on host, use virtios as Ethernet devices
On host:
taskset -c 8-10 vhost-switch -c 0xf00 -n 4 --huge-dir /mnt/huge --socket-mem 1024,1024 -- -p 1 --mergeable 0 --zero-copy 1 --vm2vm 2
On guests:
VM1:
ip addr add 192.168.2.2/24 dev eth1
ip neigh add 192.168.2.1 lladdr 00:00:02:00:00:a1 dev eth1
ip link set dev eth1 up
ip addr add 192.168.3.2/24 dev eth0
ip neigh add 192.168.3.1 lladdr 52:00:00:54:00:02 dev eth0
ip link set dev eth0 up
VM2:
ip addr add 192.168.3.2/24 dev eth1
ip neigh add 192.168.3.1 lladdr 00:00:02:00:00:a1 dev eth1
ip link set dev eth1 up
ip addr add 192.168.2.2/24 dev eth0
ip neigh add 192.168.2.1 lladdr 00:00:02:00:00:a1 dev eth0
ip link set dev eth0 up
arp -s 192.168.3.1 00:00:02:0a:0a
Send packets without vlan id: ether|ip|udp packets
Test Case - expected test result:
packet generator can get the packets from the vf on VM2
-----Original Message-----
From: dev [mailto:dev-bounces@dpdk.org] On Behalf Of Ouyang Changchun
Sent: Friday, December 12, 2014 12:15
To: dev@dpdk.org
Subject: [dpdk-dev] [PATCH] examples/vhost: Fix vlan offload issue
The following commit break vm2vm hard mode test cases:
commit db4014f2b65cb31bf209cadd5bcec778ca137fe2
Author: Huawei Xie <huawei.xie@intel.com>
Date: Thu Nov 13 06:34:07 2014 +0800
examples/vhost: use factorized default Rx/Tx configuration
Investigation show that it needs enabling vlan offload since it is turn off by default,
and Tx need it, especially when vm2vm is in hard mode.
Signed-off-by: Changchun Ouyang <changchun.ouyang@intel.com>
---
examples/vhost/main.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 9331910..04f0118 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -390,6 +390,9 @@ port_init(uint8_t port)
txconf = &dev_info.default_txconf;
rxconf->rx_drop_en = 1;
+ /* Enable vlan offload */
+ txconf->txq_flags &= ~ETH_TXQ_FLAGS_NOVLANOFFL;
+
/*
* Zero copy defers queue RX/TX start to the time when guest
* finishes its startup and packet buffers from that guest are
--
1.8.4.2
^ permalink raw reply [flat|nested] 6+ messages in thread