From a906371d2758df7260640873d93f888724759448 Mon Sep 17 00:00:00 2001 From: Lance Richardson Date: Fri, 26 Mar 2021 12:37:32 -0400 Subject: [PATCH] app/test: fix IPv6 header initialization Fix two issues found when writing PMD unit tests for HW ptype and L4 checksum offload: - The version field in the IPv6 header was being set to zero, which prevented hardware from recognizing it as IPv6. The IP version field is now set to six. - The payload_len field was being initialized using host byte order, which (among other things) resulted in incorrect L4 checksum computation. The payload_len field is now set using network (big-endian) byte order. Fixes: 92073ef961ee ("bond: unit tests") Cc: stable@dpdk.org Signed-off-by: Lance Richardson Reviewed-by: David Marchand --- app/test/packet_burst_generator.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/test/packet_burst_generator.c b/app/test/packet_burst_generator.c index c05ea7ad51..0fd7290b0e 100644 --- a/app/test/packet_burst_generator.c +++ b/app/test/packet_burst_generator.c @@ -142,8 +142,8 @@ uint16_t initialize_ipv6_header(struct rte_ipv6_hdr *ip_hdr, uint8_t *src_addr, uint8_t *dst_addr, uint16_t pkt_data_len) { - ip_hdr->vtc_flow = 0; - ip_hdr->payload_len = pkt_data_len; + ip_hdr->vtc_flow = rte_cpu_to_be_32(0x60000000); /* Set version to 6. */ + ip_hdr->payload_len = rte_cpu_to_be_16(pkt_data_len); ip_hdr->proto = IPPROTO_UDP; ip_hdr->hop_limits = IP_DEFTTL; -- 2.20.1