>> From: Pavan Nikhilesh <pbhagavat...@marvell.com>
>>
>> Add reassembly perf autotest for both ipv4 and ipv6 reassembly.
>> Each test is performed with vairable number of fragments per flow,
>> either ordered or unorderd fragments and interleaved flows.
>>
>> Signed-off-by: Pavan Nikhilesh <pbhagavat...@marvell.com>
>> ---
>>  app/test/meson.build            |   2 +
>>  app/test/test_reassembly_perf.c | 989
>++++++++++++++++++++++++++++++++
>>  2 files changed, 991 insertions(+)
>>  create mode 100644 app/test/test_reassembly_perf.c
>>

<snip>

>> +            pkt_len = frag_len;
>> +            /*
>> +             * Initialize UDP header.
>> +             */
>> +            if (i == 0) {
>> +                    udp_hdr->src_port =
>rte_cpu_to_be_16(UDP_SRC_PORT);
>> +                    udp_hdr->dst_port =
>rte_cpu_to_be_16(UDP_DST_PORT);
>> +                    udp_hdr->dgram_len =
>rte_cpu_to_be_16(pkt_len);
>> +                    udp_hdr->dgram_cksum = 0; /* No UDP
>checksum. */
>
>                        ^^^ This is expressly forbidden in ipv6 (see
>                            RFC2460).  Is the fragment reassembly not
>                            caring about this?  I didn't check if ipv6
>                            fragmenting code actually generates a proper
>                            udp checksum, either.

Nope reassembly doesn't care about L4 header.
I just checked the v6 fragmentation code and it doesn't compute udp checksum.

>
>                            I don't think it should prevent us from
>                            adding this test case, but we should try to
>                            fix it in the library if it isn't already.
>
>> +            }
>> +
>> +            /*
>> +             * Initialize IP header.
>> +             */
>> +            pkt_len = (uint16_t)(pkt_len + sizeof(struct
>rte_ipv6_hdr) +
>> +                                 RTE_IPV6_FRAG_HDR_SIZE);
>> +            ip_hdr->vtc_flow = rte_cpu_to_be_32(IP6_VERSION <<

Reply via email to