DPDK patches and discussions
 help / color / mirror / Atom feed
From: Paolo Valerio <pvalerio@redhat.com>
To: dev@dpdk.org
Cc: jia.guo@intel.com, haiyue.wang@intel.com,
	Aaron Conole <aconole@redhat.com>
Subject: [dpdk-dev] ixgbe and UDP with zero checksum
Date: Wed, 27 Jan 2021 14:49:31 +0100
Message-ID: <87zh0u1od0.fsf@fed.void> (raw)

Hi,

performing some tests, I noticed that on ixgbe when receiving UDP
packets with zero checksum (no checksum) over IPv4, the corresponding
ol_flag for the l4 checksum is set to PKT_RX_L4_CKSUM_BAD.

In particular, this apparently has an impact on OvS using ct() action
where UDP packets with zero checksum are not tracked because of that.

I also verified it using testpmd (on 20.11 and using the latest sources):

# lshw -businfo -c network
Bus info          Device     Class          Description
=======================================================
pci@0000:01:00.0  em1        network        82599ES 10-Gigabit SFI/SFP+ Network Connection
pci@0000:01:00.1  em2        network        82599ES 10-Gigabit SFI/SFP+ Network Connection

testpmd -l 2,4 -w 0000:01:00.0 -- -i --port-topology=chained --enable-rx-cksum
testpmd> show device info all

********************* Infos for device 0000:01:00.0 *********************
Bus name: pci
Driver name: net_ixgbe
Devargs: 
Connect to socket: 0

        Port id: 0 
        MAC address: EC:F4:BB:DB:FC:18
        Device name: 0000:01:00.0
        Device speed capability: 1 Gbps   10 Gbps


testpmd> set fwd rxonly
testpmd> set verbose 1
testpmd> start

and sending packets from a tester machine using scapy (w/ non zero and zero checksum):

sendp(Ether(src="ec:f4:bb:dc:09:d0",dst="ec:f4:bb:db:fc:18")/IP(src="192.168.30.200", dst="192.168.30.100")/UDP()/Raw("a"*100), iface="em1")

sendp(Ether(src="ec:f4:bb:dc:09:d0",dst="ec:f4:bb:db:fc:18")/IP(src="192.168.30.200", dst="192.168.30.100")/UDP(chksum=0)/Raw("a"*100), iface="em1")

the results are respectively:

port 0/queue 0: received 1 packets
  src=EC:F4:BB:DC:09:D0 - dst=EC:F4:BB:DB:FC:18 - type=0x0800 - length=142 - nb_segs=1 - 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=0x0
  ol_flags: PKT_RX_L4_CKSUM_GOOD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN

port 0/queue 0: received 1 packets
  src=EC:F4:BB:DC:09:D0 - dst=EC:F4:BB:DB:FC:18 - type=0x0800 - length=142 - nb_segs=1 - 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=0x0
  ol_flags: PKT_RX_L4_CKSUM_BAD PKT_RX_IP_CKSUM_GOOD PKT_RX_OUTER_L4_CKSUM_UNKNOWN

Considering that the checksum for UDP over IPv4 can be optionally
disabled by the sender (although usually computed and transmitted),
is this behavior expected?

For completeness sake, I found an old patch [1] in the ixgbe linux
driver that seems to be related to what I'm seeing. The code changed a
little, but it's still there.

[1] https://patchwork.ozlabs.org/project/netdev/patch/20090724040031.30202.1531.stgit@localhost.localdomain/

Regards,
Paolo


             reply	other threads:[~2021-01-27 13:49 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-01-27 13:49 Paolo Valerio [this message]
2021-01-27 17:26 ` Wang, Haiyue
2021-01-27 18:21   ` Aaron Conole
2021-01-27 21:35   ` Paolo Valerio
2021-01-29  2:02     ` Wang, Haiyue
2021-01-29  2:59       ` Wang, Haiyue
2021-01-29 14:19         ` Paolo Valerio
2021-02-02  7:41           ` Wang, Haiyue
2021-02-02  9:33             ` [dpdk-dev] 回复: " Feifei Wang

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=87zh0u1od0.fsf@fed.void \
    --to=pvalerio@redhat.com \
    --cc=aconole@redhat.com \
    --cc=dev@dpdk.org \
    --cc=haiyue.wang@intel.com \
    --cc=jia.guo@intel.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

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git