testpmd csum engine 测试 checksum hw offload

2023-05-16

dpdk版本:
网卡: intel E810
测试拓扑如下:

root@:/usr/share/jmnd_sy_admin2.0/bin# ./testpmd -l 3-5 -n 4 -a ec:01.1 -a ec:09.1 – -i --rxq=2 --txq=2 --rxd=1024 --txd=1024
EAL: Detected CPU lcores: 8
EAL: Detected NUMA nodes: 1
EAL: Detected static linkage of DPDK
EAL: Multi-process socket /var/run/dpdk/rte/mp_socket
EAL: Selected IOVA mode ‘VA’
EAL: No available 1048576 kB hugepages reported
EAL: VFIO support initialized
EAL: Using IOMMU type 1 (Type 1)
EAL: Probe PCI driver: net_iavf (8086:1889) device: 0000:ec:01.1 (socket 0)
EAL: Probe PCI driver: net_iavf (8086:1889) device: 0000:ec:09.1 (socket 0)
Interactive-mode selected
testpmd: create a new mbuf pool <mb_pool_0>: n=1389376, size=2176, socket=0
testpmd: preferred mempool ops selected: ring_mp_mc
Configuring Port 0 (socket 0)
iavf_configure_queues(): request RXDID[22] in Queue[0]
iavf_configure_queues(): request RXDID[22] in Queue[1]

Port 0: link state change event

Port 0: link state change event

Port 0: link state change event

Port 0: link state change event
Port 0: 4A:2B:EA:D7:A1:72
Configuring Port 1 (socket 0)
iavf_configure_queues(): request RXDID[22] in Queue[0]
iavf_configure_queues(): request RXDID[22] in Queue[1]

Port 1: link state change event

Port 1: link state change event

Port 1: link state change event

Port 1: link state change event
Port 1: 3A:09:87:9C:32:A7
Checking link statuses…
Done
testpmd>
testpmd>
testpmd>
testpmd>
testpmd> show port info all

********************* Infos for port 0 *********************
MAC address: 4A:2B:EA:D7:A1:72
Device name: ec:01.1
Driver name: net_iavf
Firmware-version: not available
Devargs:
Connect to socket: 0
memory allocation on the socket: 0
Link status: up
Link speed: 25 Gbps
Link duplex: full-duplex
Autoneg status: On
MTU: 1500
Promiscuous mode: enabled
Allmulticast mode: disabled
Maximum number of MAC addresses: 64
Maximum number of MAC addresses of hash filtering: 0
VLAN offload:
strip off, filter off, extend off, qinq strip off
Hash key size in bytes: 52
Redirection table size: 64
Supported RSS offload flow types:
ipv4
ipv4-frag
ipv4-tcp
ipv4-udp
ipv4-sctp
ipv4-other
ipv6
ipv6-frag
ipv6-tcp
ipv6-udp
ipv6-sctp
ipv6-other
Minimum size of RX buffer: 1024
Maximum configurable length of RX packet: 9728
Maximum configurable size of LRO aggregated packet: 0
Current number of RX queues: 2
Max possible RX queues: 256
Max possible number of RXDs per queue: 4096
Min possible number of RXDs per queue: 64
RXDs number alignment: 32
Current number of TX queues: 2
Max possible TX queues: 256
Max possible number of TXDs per queue: 4096
Min possible number of TXDs per queue: 64
TXDs number alignment: 32
Max segment number per packet: 0
Max segment number per MTU/TSO: 0
Device capabilities: 0x0( )

********************* Infos for port 1 *********************
MAC address: 3A:09:87:9C:32:A7
Device name: ec:09.1
Driver name: net_iavf
Firmware-version: not available
Devargs:
Connect to socket: 0
memory allocation on the socket: 0
Link status: up
Link speed: 25 Gbps
Link duplex: full-duplex
Autoneg status: On
MTU: 1500
Promiscuous mode: enabled
Allmulticast mode: disabled
Maximum number of MAC addresses: 64
Maximum number of MAC addresses of hash filtering: 0
VLAN offload:
strip off, filter off, extend off, qinq strip off
Hash key size in bytes: 52
Redirection table size: 64
Supported RSS offload flow types:
ipv4
ipv4-frag
ipv4-tcp
ipv4-udp
ipv4-sctp
ipv4-other
ipv6
ipv6-frag
ipv6-tcp
ipv6-udp
ipv6-sctp
ipv6-other
Minimum size of RX buffer: 1024
Maximum configurable length of RX packet: 9728
Maximum configurable size of LRO aggregated packet: 0
Current number of RX queues: 2
Max possible RX queues: 256
Max possible number of RXDs per queue: 4096
Min possible number of RXDs per queue: 64
RXDs number alignment: 32
Current number of TX queues: 2
Max possible TX queues: 256
Max possible number of TXDs per queue: 4096
Min possible number of TXDs per queue: 64
TXDs number alignment: 32
Max segment number per packet: 0
Max segment number per MTU/TSO: 0
Device capabilities: 0x0( )
testpmd>
testpmd>
testpmd>
testpmd>
testpmd>
testpmd>
testpmd>
testpmd> set verbose 1
Change verbose level from 0 to 1
testpmd>
testpmd>
testpmd>
testpmd>
testpmd> show config fwd
io packet forwarding - ports=2 - cores=1 - streams=4 - NUMA support enabled, MP allocation mode: native
Logical Core 4 (socket 0) forwards packets on 4 streams:
RX P=0/Q=0 (socket 0) -> TX P=1/Q=0 (socket 0) peer=02:00:00:00:00:01
RX P=1/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
RX P=0/Q=1 (socket 0) -> TX P=1/Q=1 (socket 0) peer=02:00:00:00:00:01
RX P=1/Q=1 (socket 0) -> TX P=0/Q=1 (socket 0) peer=02:00:00:00:00:00
testpmd> set fwd csum
Set csum packet forwarding mode
testpmd>
testpmd> set nbcore 2
Number of forwarding cores set to 2
testpmd> show config fwd
csum packet forwarding - ports=2 - cores=2 - streams=4 - NUMA support enabled, MP allocation mode: native
Logical Core 4 (socket 0) forwards packets on 2 streams:
RX P=0/Q=0 (socket 0) -> TX P=1/Q=0 (socket 0) peer=02:00:00:00:00:01
RX P=1/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
Logical Core 5 (socket 0) forwards packets on 2 streams:
RX P=0/Q=1 (socket 0) -> TX P=1/Q=1 (socket 0) peer=02:00:00:00:00:01
RX P=1/Q=1 (socket 0) -> TX P=0/Q=1 (socket 0) peer=02:00:00:00:00:00

testpmd> start
csum packet forwarding - ports=2 - cores=2 - streams=4 - NUMA support enabled, MP allocation mode: native
Logical Core 4 (socket 0) forwards packets on 2 streams:
RX P=0/Q=0 (socket 0) -> TX P=1/Q=0 (socket 0) peer=02:00:00:00:00:01
RX P=1/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
Logical Core 5 (socket 0) forwards packets on 2 streams:
RX P=0/Q=1 (socket 0) -> TX P=1/Q=1 (socket 0) peer=02:00:00:00:00:01
RX P=1/Q=1 (socket 0) -> TX P=0/Q=1 (socket 0) peer=02:00:00:00:00:00

port 0/queue 0: received 2 packets
src=00:00:00:12:30:10 - dst=4A:2B:EA:D7:A1:72 - type=0x0800 - length=124 - nb_segs=1 - RSS hash=0x535016d0 - RSS queue=0x0 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x0
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
src=00:00:00:12:30:10 - dst=4A:2B:EA:D7:A1:72 - type=0x0800 - length=124 - nb_segs=1 - RSS hash=0x535016d0 - RSS queue=0x0 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x0
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
port 0/queue 1: received 4 packets
src=A2:D7:57:2E:9B:4E - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=342 - nb_segs=1 - RSS hash=0x1db0ed37 - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x1
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
src=9E:75:08:E4:DE:A5 - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=342 - nb_segs=1 - RSS hash=0x1db0ed37 - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x1
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
src=A2:D7:57:2E:9B:4E - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=342 - nb_segs=1 - RSS hash=0x1db0ed37 - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x1
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
src=9E:75:08:E4:DE:A5 - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=342 - nb_segs=1 - RSS hash=0x1db0ed37 - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x1
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
port 1/queue 1: received 5 packets
src=02:9C:D6:84:61:7E - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=342 - nb_segs=1 - RSS hash=0x995baca7 - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x1
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
src=9E:98:EB:77:DC:AC - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=342 - nb_segs=1 - RSS hash=0x995baca7 - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x1
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
src=9E:98:EB:77:DC:AC - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=342 - nb_segs=1 - RSS hash=0x995baca7 - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x1
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
src=02:9C:D6:84:61:7E - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=342 - nb_segs=1 - RSS hash=0x995baca7 - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x1
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
src=9E:98:EB:77:DC:AC - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=342 - nb_segs=1 - RSS hash=0x995baca7 - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x1
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
csum packet forwarding packets/burst=32
nb forwarding cores=2 - nb forwarding ports=2
port 0: RX queue number: 2 Tx queue number: 2
Rx offloads=0x80000 Tx offloads=0x10000
RX queue: 0
RX desc=1024 - RX free threshold=32
RX threshold registers: pthresh=0 hthresh=0 wthresh=0
RX Offloads=0x0
TX queue: 0
TX desc=1024 - TX free threshold=32
TX threshold registers: pthresh=0 hthresh=0 wthresh=0
TX offloads=0x10000 - TX RS bit threshold=32
port 1: RX queue number: 2 Tx queue number: 2
Rx offloads=0x80000 Tx offloads=0x10000
RX queue: 0
RX desc=1024 - RX free threshold=32
RX threshold registers: pthresh=0 hthresh=0 wthresh=0
RX Offloads=0x0
TX queue: 0
TX desc=1024 - TX free threshold=32
TX threshold registers: pthresh=0 hthresh=0 wthresh=0
TX offloads=0x10000 - TX RS bit threshold=32
testpmd>
testpmd>
testpmd> stop
Telling cores to stop…
Waiting for lcores to finish…

------- Forward Stats for RX Port= 0/Queue= 0 -> TX Port= 1/Queue= 0 -------
RX-packets: 1 TX-packets: 1 TX-dropped: 0 RX- bad IP checksum: 0 Rx- bad L4 checksum: 0 Rx- bad outer L4 checksum: 0
RX- bad outer IP checksum: 0

------- Forward Stats for RX Port= 0/Queue= 1 -> TX Port= 1/Queue= 1 -------
RX-packets: 9 TX-packets: 9 TX-dropped: 0 RX- bad IP checksum: 0 Rx- bad L4 checksum: 0 Rx- bad outer L4 checksum: 0
RX- bad outer IP checksum: 0

------- Forward Stats for RX Port= 1/Queue= 1 -> TX Port= 0/Queue= 1 -------
RX-packets: 7 TX-packets: 7 TX-dropped: 0 RX- bad IP checksum: 0 Rx- bad L4 checksum: 0 Rx- bad outer L4 checksum: 0
RX- bad outer IP checksum: 0

---------------------- Forward statistics for port 0 ----------------------
RX-packets: 10 RX-dropped: 0 RX-total: 10
Bad-ipcsum: 0 Bad-l4csum: 0 Bad-outer-l4csum: 0
Bad-outer-ipcsum: 0
TX-packets: 7 TX-dropped: 0 TX-total: 7

---------------------- Forward statistics for port 1 ----------------------
RX-packets: 8 RX-dropped: 0 RX-total: 8
Bad-ipcsum: 0 Bad-l4csum: 0 Bad-outer-l4csum: 0
Bad-outer-ipcsum: 0
TX-packets: 10 TX-dropped: 0 TX-total: 10

+++++++++++++++ Accumulated forward statistics for all ports+++++++++++++++
RX-packets: 18 RX-dropped: 0 RX-total: 18
TX-packets: 17 TX-dropped: 0 TX-total: 17
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Done.
testpmd>
testpmd>
testpmd> port stop all
Stopping ports…
Checking link statuses…
Done
testpmd>
testpmd>
testpmd>
testpmd>
testpmd> csum set ip hw 0
Parse tunnel is off
IP checksum offload is hw
UDP checksum offload is sw
TCP checksum offload is sw
SCTP checksum offload is sw
Outer-Ip checksum offload is sw
Outer-Udp checksum offload is sw
testpmd> csum set tcp hw 0
Parse tunnel is off
IP checksum offload is hw
UDP checksum offload is sw
TCP checksum offload is hw
SCTP checksum offload is sw
Outer-Ip checksum offload is sw
Outer-Udp checksum offload is sw
testpmd> csum set udp hw 0
Parse tunnel is off
IP checksum offload is hw
UDP checksum offload is hw
TCP checksum offload is hw
SCTP checksum offload is sw
Outer-Ip checksum offload is sw
Outer-Udp checksum offload is sw
testpmd> csum set outer-udp hw 0
Outer UDP checksum offload is not supported by port 0
Parse tunnel is off
IP checksum offload is hw
UDP checksum offload is hw
TCP checksum offload is hw
SCTP checksum offload is sw
Outer-Ip checksum offload is sw
Outer-Udp checksum offload is sw
testpmd> csum set outer-ip hw 0
Parse tunnel is off
IP checksum offload is hw
UDP checksum offload is hw
TCP checksum offload is hw
SCTP checksum offload is sw
Outer-Ip checksum offload is hw
Outer-Udp checksum offload is sw
testpmd> csum set sctp hw 0
Parse tunnel is off
IP checksum offload is hw
UDP checksum offload is hw
TCP checksum offload is hw
SCTP checksum offload is hw
Outer-Ip checksum offload is hw
Outer-Udp checksum offload is sw
testpmd> csum parse-tunnel on 0
Parse tunnel is on
IP checksum offload is hw
UDP checksum offload is hw
TCP checksum offload is hw
SCTP checksum offload is hw
Outer-Ip checksum offload is hw
Outer-Udp checksum offload is sw
testpmd> port start all
Configuring Port 0 (socket 0)
iavf_configure_queues(): request RXDID[22] in Queue[0]
iavf_configure_queues(): request RXDID[22] in Queue[1]

Port 0: link state change event

Port 0: link state change event

Port 0: link state change event

Port 0: link state change event
Port 0: 4A:2B:EA:D7:A1:72
iavf_configure_queues(): request RXDID[22] in Queue[0]
iavf_configure_queues(): request RXDID[22] in Queue[1]

Port 1: link state change event

Port 1: link state change event

Port 1: link state change event

Port 1: link state change event
Port 1: 3A:09:87:9C:32:A7
Checking link statuses…
Done
testpmd>
testpmd>
testpmd>
testpmd>
testpmd> start
csum packet forwarding - ports=2 - cores=2 - streams=4 - NUMA support enabled, MP allocation mode: nati ve
Logical Core 4 (socket 0) forwards packets on 2 streams:
RX P=0/Q=0 (socket 0) -> TX P=1/Q=0 (socket 0) peer=02:00:00:00:00:01
RX P=1/Q=0 (socket 0) -> TX P=0/Q=0 (socket 0) peer=02:00:00:00:00:00
Logical Core 5 (socket 0) forwards packets on 2 streams:
RX P=0/Q=1 (socket 0) -> TX P=1/Q=1 (socket 0) peer=02:00:00:00:00:01
RX P=1/Q=1 (socket 0) -> TX P=0/Q=1 (socket 0) peer=02:00:00:00:00:00

csum packet forwarding packets/burst=32
nb forwarding cores=2 - nb forwarding ports=2
port 0: RX queue number: 2 Tx queue number: 2
Rx offloads=0x80000 Tx offloads=0x1009e
RX queue: 0
RX desc=1024 - RX free threshold=32
RX threshold registers: pthresh=0 hthresh=0 wthresh=0
RX Offloads=0x0
TX queue: 0
TX desc=1024 - TX free threshold=32
TX threshold registers: pthresh=0 hthresh=0 wthresh=0
TX offloads=0x1009e - TX RS bit threshold=32
port 1: RX queue number: 2 Tx queue number: 2
Rx offloads=0x80000 Tx offloads=0x10000
RX queue: 0
RX desc=1024 - RX free threshold=32
RX threshold registers: pthresh=0 hthresh=0 wthresh=0
RX Offloads=0x0
TX queue: 0
TX desc=1024 - TX free threshold=32
TX threshold registers: pthresh=0 hthresh=0 wthresh=0
TX offloads=0x10000 - TX RS bit threshold=32
testpmd>

发送的vxlan报文格式如下:
外层ip不带checksum
外层udp不带checksum

内层ip不带checksum
内层udp不带checksum
在这里插入图片描述

另外一个口接收到的报文:
在这里插入图片描述

src=00:00:00:12:30:10 - dst=4A:2B:EA:D7:A1:72 - type=0x0800 - length=124 - nb_segs=1 - RSS hash=0xe7de5cb - RSS queue=0x1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x1
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN

port=0, mbuf=0x1073fe800, pkt_len=124, nb_segs=1:
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=8 flags=RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
tx: flags=RTE_MBUF_F_TX_L4_NO_CKSUM RTE_MBUF_F_TX_IPV4

port=0, mbuf=0x1073fdec0, pkt_len=124, nb_segs=1:
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=8 flags=RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
tx: flags=RTE_MBUF_F_TX_L4_NO_CKSUM RTE_MBUF_F_TX_IPV4

port=0, mbuf=0x1073fd580, pkt_len=124, nb_segs=1:
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=8 flags=RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
tx: flags=RTE_MBUF_F_TX_L4_NO_CKSUM RTE_MBUF_F_TX_IPV4

port=0, mbuf=0x1073fcc40, pkt_len=124, nb_segs=1:
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=8 flags=RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
tx: flags=RTE_MBUF_F_TX_L4_NO_CKSUM RTE_MBUF_F_TX_IPV4

port=0, mbuf=0x1073fc300, pkt_len=124, nb_segs=1:
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=8 flags=RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
tx: flags=RTE_MBUF_F_TX_L4_NO_CKSUM RTE_MBUF_F_TX_IPV4
port 1/queue 0: received 1 packets
src=02:9C:D6:84:61:7E - dst=FF:FF:FF:FF:FF:FF - type=0x0800 - length=342 - nb_segs=1 - RSS hash=0x80b70466 - RSS queue=0x0 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x0
ol_flags: RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN

port=1, mbuf=0x1075dbd00, pkt_len=342, nb_segs=1:
rx: l2_len=14 ethertype=800 l3_len=20 l4_proto=17 l4_len=8 flags=RTE_MBUF_F_RX_RSS_HASH RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
tx: m->l2_len=14 m->l3_len=20 m->l4_len=8
tx: flags=RTE_MBUF_F_TX_IP_CKSUM RTE_MBUF_F_TX_UDP_CKSUM RTE_MBUF_F_TX_IPV4

#define IAVF_TX_OFFLOAD_MASK (
RTE_MBUF_F_TX_OUTER_IPV6 |
RTE_MBUF_F_TX_OUTER_IPV4 |
RTE_MBUF_F_TX_IPV6 |
RTE_MBUF_F_TX_IPV4 |
RTE_MBUF_F_TX_VLAN |
RTE_MBUF_F_TX_IP_CKSUM |
RTE_MBUF_F_TX_L4_MASK |
RTE_MBUF_F_TX_TCP_SEG |
RTE_ETH_TX_OFFLOAD_SECURITY)

testpmd> port 0/queue 0: received 1 packets
src=00:00:00:12:30:10 - dst=4A:2B:EA:D7:A1:72 - type=0x0800 - length=124 - nb_segs=1 - hw ptype: L2_ETHER L3_IPV4_EXT_UNKNOWN L4_UDP - sw ptype: L2_ETHER L3_IPV4 L4_UDP - l2_len=14 - l3_len=20 - l4_len=8 - Receive queue=0x0
ol_flags: RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
m->ol_flags = 0x180
m->pkt_len = 124
0x4a 2b ea d7 a1 72 00 00 00 12 30 10 08 00 45 00
0x00 6e 00 01 00 00 80 11 b4 ec c0 a8 02 0a c0 a8
0x02 37 04 00 12 b5 00 5a 00 00 08 00 00 00 00 00
0x64 00 52 54 00 00 21 29 00 00 00 12 30 10 08 00
0x45 00 00 3c 00 7b 00 00 80 11 b8 d9 c0 a8 00 02
0xc0 a8 00 0a 04 00 04 00 00 28 f3 76 00 00 00 00
0x00 00 00 00 00 00 00 00 00 00 a5 01 fe fc 01 00
0x00 02 00 00 00 01 00 00 00 76 dd 52
txp->parse_tunnel = 1
vxlan parse start
vxlan parse update_tunnel_outer last
info->is_tunnel = 1

port=0, mbuf=0x10c5d1680, pkt_len=124, nb_segs=1:
rx: l2_len=30 ethertype=800 l3_len=20 l4_proto=17 l4_len=8 flags=RTE_MBUF_F_RX_L4_CKSUM_GOOD RTE_MBUF_F_RX_IP_CKSUM_GOOD RTE_MBUF_F_RX_OUTER_L4_CKSUM_UNKNOWN
is_tunnel = 1, tx_offloads = 0x10086, tx_ol_flags = 0xcf0200000000000
tx: m->l2_len=30 m->l3_len=20 m->l4_len=8
tx: m->outer_l2_len=14 m->outer_l3_len=20
rx: outer_l2_len=14 outer_ethertype=800 outer_l3_len=20
tx: m->l2_len=30 m->l3_len=20 m->l4_len=8
tx: m->outer_l2_len=14 m->outer_l3_len=20
tx: flags=RTE_MBUF_F_TX_IP_CKSUM RTE_MBUF_F_TX_UDP_CKSUM RTE_MBUF_F_TX_IPV4 RTE_MBUF_F_TX_OUTER_IP_CKSUM RTE_MBUF_F_TX_OUTER_IPV4 RTE_MBUF_F_TX_TUNNEL_VXLAN
nb_pkts = 1
iavf_prep_pkts, nb_pkts = 1
333333nb_prep = 0
Preparing packet burst to transmit failed: Operation not supported

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

testpmd csum engine 测试 checksum hw offload 的相关文章

  • Docker Engine stopped

    windows11系统下 xff0c 有一天Docker突然无法启动 xff0c 打开Docker Desktop显示Docker Engine stopped xff0c 在powershell输入docker命令 xff0c 提示err
  • mysql checksum table golang

    package main import 34 bytes 34 34 database sql 34 34 fmt 34 34 github com go sql driver mysql 34 34 io ioutil 34 34 reg
  • testpmd csum engine 测试 checksum hw offload

    dpdk版本 xff1a 网卡 xff1a intel E810 测试拓扑如下 xff1a root 64 usr share jmnd sy admin2 0 bin testpmd l 3 5 n 4 a ec 01 1 a ec 09
  • Checksum 校验和

    一 校验数据的一般算法比较 都是通过对数据进行校验产生一个校验值 xff0c 用来校验数据完整性 不同点 xff1a 算法不同 CRC采用多项式除法 xff0c MD5和SHA1使用的是替换 轮转等方法 xff1b 校验值的长度不同 CRC
  • 数据校验之Checksum算法

    校验和 xff08 Checksum xff09 是网络协议使用的数据错误检测方法 xff0c 并且被认为比LRC xff08 纵向冗余校验 xff0c Longitudinal Redundancy Check xff0c LRC xff
  • checksum 算法

    说明 checksum xff1a 总和检验码 xff0c 校验和 xff0c 可以理解为check xff08 校验 xff09 xff0c sum xff08 和 xff09 在数据处理和通信领域 xff0c 通过一定算法对传输的数据进
  • 计算机网络学习笔记——IP Header Checksum(校验和)的计算方法

    从TCP IP协议看到IP数据报 xff0c 看到Checksum的算法描述 xff0c 不甚了了 The checksum field is the 16 bit one s complement of the one s complem
  • Wallpaper Engine特性仿制

    wallpaper master 起源 最近一直在折腾一下壁纸的东西 前段时间刚写了一个跨平台桌面 windows linux kde 的壁纸网络应用 个人使用效果还不错的样子 地址 前两天突然发现了wallpaper engine这个软件
  • 直接从文件系统获取文件校验和,而不是显式计算它

    我猜测典型的文件系统倾向于保留其管理的每个文件的某种校验和 CRC 哈希 因此它可以检测文件损坏 这个猜测正确吗 如果是的话 有没有办法访问它 我主要对 Windows 和 NTFS 感兴趣 但也欢迎对其他平台的评论 语言在这一点上并不重要
  • 大多数静态数据流的 CRC 计算

    背景 我有一段内存 1024字节 最后 1020 字节始终相同 前 4 个字节将发生变化 产品的序列号 我需要计算CRC 16 CCITT 0xFFFF 起始 0x1021 掩码 对于整个内存部分 CRC WHOLE 问题 是否可以仅计算前
  • 防止向记分板提交欺诈性信息

    我正在开发 Flash 游戏的后端 我需要secure数据进入记分板 该游戏将在许多网站上以横幅广告形式托管 用户将在广告中玩游戏 然后点击进入主网站以保存其详细信息 目前我正在思考这个问题 用户玩游戏并点击提交分数 在后台 横幅将分数和原
  • subversion 合并时校验和不匹配

    我在 SuSE 主机上使用 Subversion 1 6 17 来尝试将单个分支合并到本地更新的工作副本中 我正在获取合并的部分内容 然后每次尝试时它都会停止在同一个文件上 svn Checksum mismatch for path to
  • Android APK 文件的 MD5 校验和不同。为什么?

    我注意到 如果我编译一个 Android 应用程序两次 一次紧接另一次且没有任何更改 则两个 APK 文件具有两个不同的 MD5 校验和 未签名和签名的 APK 文件都会产生相同的结果 您可以将其作为 ZIP 文件打开 其中的内容在两个文件
  • 确定 .NET 程序集是否是从同一源构建的

    有谁知道如何比较两个 NET 程序集以确定它们是否是从 相同 源文件构建的 我知道有一些差异实用程序可用 例如 Reflector 插件 但我对查看 GUI 中的差异不感兴趣 我只是想要一种自动方法来比较二进制文件集合以查看它们是否是从相同
  • TCP校验和计算与wireshark计算不匹配

    我遇到一个问题 示例程序 复制如下 生成的 tcp 校验和与wireshark 计算的校验和不匹配 有人可以指出我哪里出错了吗 这里我尝试了两种方法 tcp 校验和 get ipv6 udptcp checksum 有了这两个值 就会得到两
  • 在 C# 中计算 Internet(又名 IP、又名 RFC791)校验和

    有趣的是 我可以在除 C 之外的几乎所有语言中找到 Internet 校验和的实现 有人有实现可以分享吗 请记住 互联网协议 http www faqs org rfcs rfc791 html规定 校验和字段是 16 位的 1 的补码 标
  • 校验和值与名为“isRecyclableGarden”的资源不匹配

    因此 我最近开始使用 AWS Lambda 并且从昨天下午开始我就一直在开发机器人 但现在突然发生了这种情况 每当我去构建机器人或保存意图时 我都会不断收到消息 校验和值与名为 isRecyclableGarden 的资源不匹配 isRec
  • 在 C# 中生成运行哈希(或校验和)?

    Preface 我正在执行具有验证提交阶段的数据导入 这个想法是 第一阶段允许从各种来源获取数据 然后在数据库上运行各种插入 更新 验证操作 提交被回滚 但会生成 验证哈希 校验和 提交阶段是相同的 但是 如果 验证哈希 校验和 相同 则将
  • 文件的 CRC 检查

    我正在使用一个小型 FAT16 文件系统 并且想要为存储配置信息的单个 XML 文件生成 CRC 值 如果数据发生更改或损坏 我希望能够检查 CRC 以确定文件仍处于原始状态 问题是 如何将CRC值放入文件中 而不改变文件本身的CRC值 我
  • 如何在 Maven 中创建校验和然后将其输出到文本文件?

    还在学习如何使用Maven 我想知道是否有办法做到checksum在生成的WAR file The Maven目标是package 我想要实现的是得到一个checksum价值 包装的WAR文件 与打包文件一起放入文本文件中 提前致谢 让它与

随机推荐

  • Unable to determine the device handle for GPU 0000:04:00.0: GPU is lost. Reboot the system to recov

    Original url https askubuntu com questions 235760 unity does not appear after installing proprietary nvidia drivers gpu
  • 【Maven】Maven报错:The packaging for this project did not assign a file to the build artifact

    Maven Maven报错 xff1a The packaging for this project did not assign a file to the build artifact 问题描述问题发生问题解决 问题描述 对写好的项目打
  • ubuntu系统安装clamav

    ubuntu系统安装clamav 添加用户 groupadd clamav useradd g clamav s bin false c 34 Clam AntiVirus 34 clamav 安装 sudo apt get install
  • SQLyog无法连接Linux下的MySQL问题

    SQLyog直接连接报错 xff1a 解决步骤 xff1a 一 测试网络 windows cmd上ping linux ip地址查看是否能ping通 二 关闭MySQL防火墙 systemctl stop firewalld xff08 开
  • 正则表达式边界符中的 ^, $, \A, \Z, \z

    转载自 http blog csdn net ggicci article details 8015087 Regex 本文介绍正则表达式中边界符 和 以及 A 和 Z z 的比较和用法 本文的正则表达式在 Java 中测试 本文的一些概念
  • vnc的默认端口更改

    vnc的默认端口是5901 xff0c 这个说法是不对的 vnc并不是只有一个端口 以前另一个文章介绍了nvcserver的配置用户的过程 xff0c 里面提到了桌面号 xff0c 这个桌面号就可以端口有密切关系 先看看这个配置 VNCSE
  • CentOS查看开启端口

    安装nmap yum span class hljs keyword install span nmap span class hljs comment 输入y安装 span 使用nmap span class hljs title nma
  • 使用stm32互补输出PWM波并且控制死区时间,带刹车功能

    使用stm32互补输出PWM波并且控制死区时间 xff0c 带刹车功能 项目背景 xff1a 需要20k带死区时间的互补pwm波连接IGBT驱动器 使用高级定时器1 xff0c CH1 PA8 CH1N PB13 BKIN PB12 如果是
  • tensorflow2安装教程

    本教程还未写完请不要看 参考网站 官网 https tensorflow google cn tutorials keras classification hl 61 zh cn 分析视频 https www bilibili com vi
  • 创建支持es6,vscode可调试的nodejs es6工程

    通常vscode调试es6工程时 xff0c 比如有import语句 xff0c 会有如下错误 xff1a SyntaxError Unexpected token import 网上有很多例子都是不可行的 xff0c 或者是老版本的vsc
  • Docker 镜像使用帮助

    注意 本镜像只提供 Debian Ubuntu Fedora CentOS RHEL 的 docker 软件包 xff0c 非 dockerhub Docker 官方在 2015 年 7 月启用新的仓库 xff0c 软件包名由 lxc do
  • Linux下安装VNC图形化远程桌面工具

    Linux 下安装 xff1a 1 下载 vncserver vncview vnc Linux 版 下载地址 http download csdn net detail jxmykl 7789529 vnc Windows 版 下载地址
  • 对抗攻击Adversarial Attack

    参考链接 xff1a xff08 1 xff09 对抗攻击常见方法汇总 https blog csdn net qq 43367558 article details 121694626 xff08 2 xff09 对抗性样本攻击方法汇总
  • docker 防火墙 设置不生效问题解决

    centos7 想把容器的端口8500禁止掉 方法1 firewall cmd zone 61 public remove port 61 8500 tcp permanent xff08 没有用 xff09 报错Warning NOT E
  • 【组成原理期末复习】06总线系统

    一 基本概念 定义 数字计算机是由若干系统功能部件构成的 xff0c 这些系统功能部件在一起工作才能形成一个完整的计算机系统 计算机的若干功能部件之间不可能采用全互联形式 需要有公共的信息通道 xff0c 即总线 总线是构成计算机系统的互联
  • Build ONIE SDK

    Linux ubuntu 4 15 0 29 generic 31 16 04 1 Ubuntu SMP Wed Jul 18 08 54 04 UTC 2018 x86 64 x86 64 x86 64 GNU Linux sudo ap
  • SUMO/检测器设置(E3)学习总结

    一 E3检测器简介 Multi Entry Exit Detectors xff08 E3 xff09 可以用来检测通过检测区域的平均速度 车辆通过检测区域的平均停车次数 车辆通过区域的平均延误 一段时间内进入检测区域车辆数 一段时间内进入
  • source insight4 行结束符 CRLF转化为LF

    options gt preferences gt files gt default line endings 改成Unix LF显示行结束符 options gt preferences gt syntax formatting gt f
  • linux内核的反向路由检查机制

    今天遇到一个问题 xff0c eth1 eth2 双网卡 xff0c 都配有IP 默认网关在eth1 上 尝试给另一个网卡加上同样的默认网关 插入之后 xff0c 发现ens161 无法访问 ens256 可以访问 删除此条路由 xff0c
  • testpmd csum engine 测试 checksum hw offload

    dpdk版本 xff1a 网卡 xff1a intel E810 测试拓扑如下 xff1a root 64 usr share jmnd sy admin2 0 bin testpmd l 3 5 n 4 a ec 01 1 a ec 09