From: Olivier MATZ <olivier.matz@6wind.com>
To: dev@dpdk.org
Cc: jigsaw@gmail.com
Subject: Re: [dpdk-dev] [PATCH 00/12] add TSO support
Date: Tue, 11 Nov 2014 10:21:15 +0100 [thread overview]
Message-ID: <5461D50B.6050201@6wind.com> (raw)
In-Reply-To: <1415635166-1364-1-git-send-email-olivier.matz@6wind.com>
This is the test report for the new TSO feature. Test done on testpmd
on x86_64-native-linuxapp-gcc
platform:
Tester (linux) <----> DUT (DPDK on westmere)
ixgbe6 port0 (ixgbe)
Run testpmd on DUT:
cd dpdk.org/
make install T=x86_64-native-linuxapp-gcc
cd x86_64-native-linuxapp-gcc/
modprobe uio
insmod kmod/igb_uio.ko
python ../tools/dpdk_nic_bind.py -b igb_uio 0000:02:00.0
echo 0 > /proc/sys/kernel/randomize_va_space
echo 1000 >
/sys/devices/system/node/node0/hugepages/hugepages-2048kB/nr_hugepages
echo 1000 >
/sys/devices/system/node/node1/hugepages/hugepages-2048kB/nr_hugepages
mount -t hugetlbfs none /mnt/huge
./app/testpmd -c 0x55 -n 4 -m 800 -- -i --port-topology=chained
--enable-rx-cksum
Disable all offload feature on Tester, and start capture:
ethtool -K ixgbe6 rx off tx off tso off gso off gro off lro off
ip l set ixgbe6 up
tcpdump -n -e -i ixgbe6 -s 0 -w /tmp/cap
We use the following scapy script for testing (note: vxlan was not
tested because I have no i40e on my platform, but at least the test
scripts are provided if someone wants to check it):
class VXLAN(Packet):
name = 'VXLAN'
fields_desc = [
FlagsField('flags', default=1 << 3, size=8,
names=['R', 'R', 'R', 'R', 'I', 'R', 'R', 'R']),
XBitField('reserved1', default=0x000000, size=24),
BitField('vni', None, size=24),
XBitField('reserved2', default=0x00, size=8),
]
overload_fields = {
UDP: {'sport': 4789, 'dport': 4789},
}
def mysummary(self):
return self.sprintf("VXLAN (vni=%VXLAN.vni%)")
bind_layers(UDP, VXLAN, dport=4789)
bind_layers(VXLAN, Ether)
def test_v4(iface, macdst):
macsrc = get_if_hwaddr(iface)
v4 = Ether(dst=macdst, src=macsrc)/IP(src=RandIP(), dst=RandIP())
# valid TCP packet
p=v4/TCP(flags=0x10)/Raw(RandString(50))
sendp(p, iface=iface, count=5)
# valid UDP packet
p=v4/UDP()/Raw(RandString(50))
sendp(p, iface=iface, count=5)
# bad IP checksum
p=v4/TCP(flags=0x10)/Raw(RandString(50))
p[IP].chksum=0x1234
sendp(p, iface=iface, count=5)
# bad TCP checksum
p=v4/TCP(flags=0x10, chksum=0x1234)/Raw(RandString(50))
sendp(p, iface=iface, count=5)
# large packet
p=v4/TCP(flags=0x10)/Raw(RandString(1400))
sendp(p, iface=iface, count=5)
def test_v6(iface, macdst):
macsrc = get_if_hwaddr(iface)
v6 = Ether(dst=macdst, src=macsrc)/IPv6(src=RandIP6(), dst=RandIP6())
# checksum TCP
p=v6/TCP(flags=0x10)/Raw(RandString(50))
sendp(p, iface=iface, count=5)
# checksum UDP
p=v6/UDP()/Raw(RandString(50))
sendp(p, iface=iface, count=5)
# bad TCP checksum
p=v6/TCP(flags=0x10, chksum=0x1234)/Raw(RandString(50))
sendp(p, iface=iface, count=5)
# large packet
p=v6/TCP(flags=0x10)/Raw(RandString(1400))
sendp(p, iface=iface, count=5)
def test_vxlan(iface, macdst):
macsrc = get_if_hwaddr(iface)
vxlan = Ether(dst=macdst, src=macsrc)/IP(src=RandIP(), dst=RandIP())
vxlan /= UDP()/VXLAN(vni=1234)/Ether(dst=macdst, src=macsrc)
vxlan /= IP(src=RandIP(), dst=RandIP())
# valid packet
p=vxlan/TCP(flags=0x10)/Raw(RandString(50))
sendp(p, iface=iface, count=5)
# bad IP checksum
p=vxlan/TCP(flags=0x10)/Raw(RandString(50))
p[IP].payload[IP].chksum=0x1234 # inner header
sendp(p, iface=iface, count=5)
# bad TCP checksum
p=vxlan/TCP(flags=0x10, chksum=0x1234)/Raw(RandString(50))
sendp(p, iface=iface, count=5)
# large TCP packet, no UDP checksum on outer
p=vxlan/TCP(flags=0x10)/Raw(RandString(1400))
p[UDP].chksum = 0
sendp(p, iface=iface, count=5)
test_v4("ixgbe6", "00:1B:21:8E:B2:30")
test_v6("ixgbe6", "00:1B:21:8E:B2:30")
test_vxlan("ixgbe6", "00:1B:21:8E:B2:30")
Test 1: rxonly fwd engine
=========================
Check that the NIC is able to decode the packet header and the bad
checksum values. The test_vxlan does not work on ixgbe as it is not able
to recognize vxlan packets.
testpmd command lines:
set fwd rxonly
set verbose 1
start
Start test_v4() in scapy. Result is:
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=92 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=92 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=92 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=92 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=92 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_IP_CKSUM_BAD
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_IP_CKSUM_BAD
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_IP_CKSUM_BAD
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_IP_CKSUM_BAD
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_IP_CKSUM_BAD
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_L4_CKSUM_BAD
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_L4_CKSUM_BAD
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_L4_CKSUM_BAD
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_L4_CKSUM_BAD
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=104 - nb_segs=1 - Receive queue=0x0
PKT_RX_L4_CKSUM_BAD
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=1454 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=1454 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=1454 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=1454 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x0800 -
length=1454 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV4_HDR
test_v6
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=124 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=124 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=124 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=124 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=124 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=112 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=112 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=112 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=112 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=112 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=124 - nb_segs=1 - Receive queue=0x0
PKT_RX_L4_CKSUM_BAD
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=124 - nb_segs=1 - Receive queue=0x0
PKT_RX_L4_CKSUM_BAD
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=124 - nb_segs=1 - Receive queue=0x0
PKT_RX_L4_CKSUM_BAD
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=124 - nb_segs=1 - Receive queue=0x0
PKT_RX_L4_CKSUM_BAD
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=124 - nb_segs=1 - Receive queue=0x0
PKT_RX_L4_CKSUM_BAD
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=1474 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=1474 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=1474 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=1474 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
port 0/queue 0: received 1 packets
src=90:E2:BA:2B:0F:4C - dst=00:1B:21:8E:B2:30 - type=0x86dd -
length=1474 - nb_segs=1 - Receive queue=0x0
PKT_RX_IPV6_HDR
Test 2: csum fwd engine, use sw checksum
========================================
The goal of this test is to show that the csum forward engine is able
to process checksum in software.
# hw checksum and tso are disabled for port 0
tx_checksum set ip sw 0
tx_checksum set udp sw 0
tx_checksum set tcp sw 0
tx_checksum set sctp sw 0
tx_checksum set vxlan sw 0
tso set 0 0
# set the forward engine
set verbose 1
set fwd csum
start
Start test_v4() in scapy. Result is:
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: flags=
Start test_v6() in scapy, result is:
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: flags=
Start test_vxlan() in scapy, result is:
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: flags=
Check the capture file (test2-cap-sw-cksum.cap)
Test 3: csum fwd engine, use hw checksum
========================================
The goal of this test is to show that the csum forward engine is able to
process checksum in hardware.
# enable hw cksum in csumonly test, disable tso
tx_checksum set ip hw 0
tx_checksum set udp hw 0
tx_checksum set tcp hw 0
tx_checksum set sctp hw 0
# set the forward engine
set verbose 1
set fwd csum
start
Start test_v4() in scapy. Result is:
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=20 m->l4_len=0
tx: flags=PKT_TX_IP_CKSUM PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=20 m->l4_len=0
tx: flags=PKT_TX_IP_CKSUM PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=20 m->l4_len=0
tx: flags=PKT_TX_IP_CKSUM PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=20 m->l4_len=0
tx: flags=PKT_TX_IP_CKSUM PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=20 m->l4_len=0
tx: flags=PKT_TX_IP_CKSUM PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
Start test_v6() in scapy, result is:
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=40 m->l4_len=0
tx: flags=PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=40 m->l4_len=0
tx: flags=PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=40 m->l4_len=0
tx: flags=PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=40 m->l4_len=0
tx: flags=PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=40 m->l4_len=0
tx: flags=PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: flags=PKT_TX_TCP_CKSUM
Start test_vxlan() in scapy, result is:
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_CKSUM
Check the capture file (test3-cap-hw-cksum.cap)
Note that the outer UDP checksum is wrong when not 0. This is normal as
the software cannot calculate the checksum of the inner layer because
the checksum of the inner layer will be modified by hardware.
Test 4: csum fwd engine, use TSO
================================
The goal of this test is to verify that TSO is working properly.
# enable hw checksum
tx_checksum set ip hw 0
tx_checksum set udp hw 0
tx_checksum set tcp hw 0
tx_checksum set sctp hw 0
# enable TSO
tso set 800 0
# set fwd engine and start
set verbose 1
set fwd csum
start
Start test_v4() in scapy, result is:
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=20 m->l4_len=0
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=20 m->l4_len=0
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=20 m->l4_len=0
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=20 m->l4_len=0
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=20 m->l4_len=0
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
Start test_v6() in scapy, result is:
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=40 m->l4_len=0
tx: m->tso_segsz=800
tx: flags=PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=40 m->l4_len=0
tx: m->tso_segsz=800
tx: flags=PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=40 m->l4_len=0
tx: m->tso_segsz=800
tx: flags=PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=40 m->l4_len=0
tx: m->tso_segsz=800
tx: flags=PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=17 l4_len=0
tx: m->l2_len=14 m->l3_len=40 m->l4_len=0
tx: m->tso_segsz=800
tx: flags=PKT_TX_UDP_CKSUM
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=86dd l3_len=40 l4_proto=6 l4_len=20
tx: m->l2_len=14 m->l3_len=40 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_TCP_SEG
Start test_vxlan() in scapy, result is:
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
-----------------
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=6 l4_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=64 m->l3_len=20 m->l4_len=20
tx: m->tso_segsz=800
tx: flags=PKT_TX_IP_CKSUM PKT_TX_TCP_SEG
Check the capture file (test4-cap-tso.cap)
Note that the outer UDP checksum is wrong when not 0. This is normal as
the software cannot calculate the checksum of the inner layer because
the checksum of the inner layer will be modified by hardware.
next prev parent reply other threads:[~2014-11-11 9:11 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-10 15:59 Olivier Matz
2014-11-10 15:59 ` [dpdk-dev] [PATCH 01/12] igb/ixgbe: fix IP checksum calculation Olivier Matz
2014-11-10 15:59 ` [dpdk-dev] [PATCH 02/12] ixgbe: fix remaining pkt_flags variable size to 64 bits Olivier Matz
2014-11-10 16:59 ` Bruce Richardson
2014-11-10 15:59 ` [dpdk-dev] [PATCH 03/12] mbuf: move vxlan_cksum flag definition at the proper place Olivier Matz
2014-11-10 17:09 ` Bruce Richardson
2014-11-10 15:59 ` [dpdk-dev] [PATCH 04/12] mbuf: add help about TX checksum flags Olivier Matz
2014-11-10 17:10 ` Bruce Richardson
2014-11-10 15:59 ` [dpdk-dev] [PATCH 05/12] mbuf: remove too specific PKT_TX_OFFLOAD_MASK definition Olivier Matz
2014-11-10 17:14 ` Bruce Richardson
2014-11-10 20:59 ` Olivier MATZ
2014-11-10 15:59 ` [dpdk-dev] [PATCH 06/12] mbuf: add functions to get the name of an ol_flag Olivier Matz
2014-11-10 17:29 ` Bruce Richardson
2014-11-10 20:54 ` Olivier MATZ
2014-11-12 17:21 ` Ananyev, Konstantin
2014-11-12 17:44 ` Olivier MATZ
2014-11-10 15:59 ` [dpdk-dev] [PATCH 07/12] mbuf: generic support for TCP segmentation offload Olivier Matz
2014-11-11 3:17 ` Liu, Jijiang
2014-11-12 13:09 ` Ananyev, Konstantin
2014-11-10 15:59 ` [dpdk-dev] [PATCH 08/12] ixgbe: support " Olivier Matz
2014-11-10 15:59 ` [dpdk-dev] [PATCH 09/12] testpmd: fix use of offload flags in testpmd Olivier Matz
2014-11-10 15:59 ` [dpdk-dev] [PATCH 10/12] testpmd: rework csum forward engine Olivier Matz
2014-11-11 8:35 ` Liu, Jijiang
2014-11-11 9:55 ` Olivier MATZ
2014-11-10 15:59 ` [dpdk-dev] [PATCH 11/12] testpmd: support TSO in " Olivier Matz
2014-11-10 15:59 ` [dpdk-dev] [PATCH 12/12] testpmd: add a verbose mode " Olivier Matz
2014-11-11 9:21 ` Olivier MATZ [this message]
2014-11-11 9:48 ` [dpdk-dev] [PATCH 00/12] add TSO support Olivier MATZ
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 00/13] " Olivier Matz
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 01/13] igb/ixgbe: fix IP checksum calculation Olivier Matz
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 02/13] ixgbe: fix remaining pkt_flags variable size to 64 bits Olivier Matz
2014-11-17 16:47 ` Walukiewicz, Miroslaw
2014-11-17 17:03 ` Olivier MATZ
2014-11-17 17:40 ` Thomas Monjalon
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 03/13] mbuf: move vxlan_cksum flag definition at the proper place Olivier Matz
2014-11-17 22:05 ` Thomas Monjalon
2014-11-18 14:10 ` Olivier MATZ
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 04/13] mbuf: add help about TX checksum flags Olivier Matz
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 05/13] mbuf: remove too specific PKT_TX_OFFLOAD_MASK definition Olivier Matz
2014-11-17 10:35 ` Bruce Richardson
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 06/13] mbuf: add functions to get the name of an ol_flag Olivier Matz
2014-11-17 10:39 ` Bruce Richardson
2014-11-17 12:51 ` Olivier MATZ
2014-11-17 19:00 ` Ananyev, Konstantin
2014-11-18 9:29 ` Olivier MATZ
2014-11-19 11:06 ` Ananyev, Konstantin
2014-11-25 10:37 ` Ananyev, Konstantin
2014-11-25 12:15 ` Zhang, Helin
2014-11-25 12:37 ` Olivier MATZ
2014-11-25 13:31 ` Zhang, Helin
2014-11-25 13:49 ` Ananyev, Konstantin
2014-11-26 0:58 ` Zhang, Helin
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 07/13] testpmd: fix use of offload flags in testpmd Olivier Matz
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 08/13] testpmd: rework csum forward engine Olivier Matz
2014-11-17 8:11 ` Liu, Jijiang
2014-11-17 13:00 ` Olivier MATZ
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 09/13] mbuf: introduce new checksum API Olivier Matz
2014-11-17 18:15 ` Ananyev, Konstantin
2014-11-18 9:10 ` Olivier MATZ
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 10/13] mbuf: generic support for TCP segmentation offload Olivier Matz
2014-11-17 23:33 ` Ananyev, Konstantin
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 11/13] ixgbe: support " Olivier Matz
2014-11-17 18:26 ` Ananyev, Konstantin
2014-11-18 9:11 ` Olivier MATZ
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 12/13] testpmd: support TSO in csum forward engine Olivier Matz
2014-11-14 17:03 ` [dpdk-dev] [PATCH v2 13/13] testpmd: add a verbose mode " Olivier Matz
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 00/13] add TSO support Olivier Matz
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 01/13] igb/ixgbe: fix IP checksum calculation Olivier Matz
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 02/13] ixgbe: fix remaining pkt_flags variable size to 64 bits Olivier Matz
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 03/13] mbuf: reorder tx ol_flags Olivier Matz
2014-11-25 10:22 ` Thomas Monjalon
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 04/13] mbuf: add help about TX checksum flags Olivier Matz
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 05/13] mbuf: remove too specific PKT_TX_OFFLOAD_MASK definition Olivier Matz
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 06/13] mbuf: add functions to get the name of an ol_flag Olivier Matz
2014-11-25 10:23 ` Thomas Monjalon
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 07/13] testpmd: fix use of offload flags in testpmd Olivier Matz
2014-11-25 11:52 ` Ananyev, Konstantin
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 08/13] testpmd: rework csum forward engine Olivier Matz
2014-11-26 10:10 ` Ananyev, Konstantin
2014-11-26 11:14 ` Olivier MATZ
2014-11-26 12:25 ` Ananyev, Konstantin
2014-11-26 14:55 ` Olivier MATZ
2014-11-26 16:34 ` Ananyev, Konstantin
2014-11-27 8:34 ` Liu, Jijiang
2014-11-26 13:59 ` Liu, Jijiang
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 09/13] mbuf: introduce new checksum API Olivier Matz
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 10/13] mbuf: generic support for TCP segmentation offload Olivier Matz
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 11/13] ixgbe: support " Olivier Matz
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 12/13] testpmd: support TSO in csum forward engine Olivier Matz
2014-11-20 22:58 ` [dpdk-dev] [PATCH v3 13/13] testpmd: add a verbose mode " Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 00/13] add TSO support Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 01/13] igb/ixgbe: fix IP checksum calculation Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 02/13] ixgbe: fix remaining pkt_flags variable size to 64 bits Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 03/13] mbuf: reorder tx ol_flags Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 04/13] mbuf: add help about TX checksum flags Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 05/13] mbuf: remove too specific PKT_TX_OFFLOAD_MASK definition Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 06/13] mbuf: add functions to get the name of an ol_flag Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 07/13] testpmd: fix use of offload flags in testpmd Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 08/13] testpmd: rework csum forward engine Olivier Matz
2014-11-26 20:02 ` Ananyev, Konstantin
2014-11-27 8:26 ` Liu, Jijiang
2014-11-27 9:10 ` Olivier MATZ
2014-11-27 11:02 ` Ananyev, Konstantin
2014-11-28 8:54 ` Liu, Jijiang
2014-11-28 9:54 ` Olivier MATZ
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 09/13] mbuf: introduce new checksum API Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 10/13] mbuf: generic support for TCP segmentation offload Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 11/13] ixgbe: support " Olivier Matz
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 12/13] testpmd: support TSO in csum forward engine Olivier Matz
2014-11-26 21:23 ` Ananyev, Konstantin
2014-11-26 15:04 ` [dpdk-dev] [PATCH v4 13/13] testpmd: add a verbose mode " Olivier Matz
2014-11-26 18:30 ` [dpdk-dev] [PATCH v4 00/13] add TSO support Thomas Monjalon
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5461D50B.6050201@6wind.com \
--to=olivier.matz@6wind.com \
--cc=dev@dpdk.org \
--cc=jigsaw@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).