[dpdk-users] IP Reassembly with more 4 packets crash

Stephen Hemminger stephen at networkplumber.org
Tue Aug 13 05:29:09 CEST 2019


On Tue, 13 Aug 2019 08:37:09 +0530
Abhijeet Baruah <abhijeet080808 at gmail.com> wrote:

> Hi,
> 
> I have looked at previous mails on this mailing list and also elsewhere on
> Google and could not find any information related to this.
> 
> Whenever I have to reassemble a valid IP packet with more than 4 fragments,
> I see a crash. Stack trace below. I assume the number 4 comes
> from RTE_LIBRTE_IP_FRAG_MAX_FRAG.
> 
> (gdb) bt
> #0  ip_frag_lookup (tbl=tbl at entry=0x7fff7a32ce80, key=key at entry=0x7ffff6eeee10,
> tms=tms at entry=2602613353715115, free=free at entry=0x7ffff6eeedb8,
>     stale=stale at entry=0x7ffff6eeedc0) at
> /usr/src/debug/dpdk-17.11.2-6.fc30.x86_64/lib/librte_ip_frag/ip_frag_internal.c:379
> #1  0x00007ffff7c021f6 in ip_frag_find (tbl=tbl at entry=0x7fff7a32ce80,
> dr=dr at entry=0x7fff7a32c900, key=key at entry=0x7ffff6eeee10,
> tms=2602613353715115)
>     at
> /usr/src/debug/dpdk-17.11.2-6.fc30.x86_64/lib/librte_ip_frag/ip_frag_internal.c:286
> #2  0x00007ffff7c00280 in rte_ipv4_frag_reassemble_packet
> (tbl=0x7fff7a32ce80, dr=0x7fff7a32c900, mb=0x7fff8b71b480, tms=<optimized
> out>,  
>     ip_hdr=<optimized out>) at
> /usr/src/debug/dpdk-17.11.2-6.fc30.x86_64/lib/librte_ip_frag/rte_ipv4_reassembly.c:160
> 
> (gdb) f 0
> #0  ip_frag_lookup (tbl=tbl at entry=0x7fff7a32ce80, key=key at entry=0x7ffff6eeee10,
> tms=tms at entry=2602613353715115, free=free at entry=0x7ffff6eeedb8,
>     stale=stale at entry=0x7ffff6eeedc0) at
> /usr/src/debug/dpdk-17.11.2-6.fc30.x86_64/lib/librte_ip_frag/ip_frag_internal.c:379
> 379 if (ip_frag_key_cmp(key, &p1[i].key) == 0)
> 
> (gdb) f 1
> #1  0x00007ffff7c021f6 in ip_frag_find (tbl=tbl at entry=0x7fff7a32ce80,
> dr=dr at entry=0x7fff7a32c900, key=key at entry=0x7ffff6eeee10,
> tms=2602613353715115)
>     at
> /usr/src/debug/dpdk-17.11.2-6.fc30.x86_64/lib/librte_ip_frag/ip_frag_internal.c:286
> 286 if ((pkt = ip_frag_lookup(tbl, key, tms, &free, &stale)) == NULL) {
> 
> (gdb) f 2
> #2  0x00007ffff7c00280 in rte_ipv4_frag_reassemble_packet
> (tbl=0x7fff7a32ce80, dr=0x7fff7a32c900, mb=0x7fff8b71b480, tms=<optimized
> out>,  
>     ip_hdr=<optimized out>) at
> /usr/src/debug/dpdk-17.11.2-6.fc30.x86_64/lib/librte_ip_frag/rte_ipv4_reassembly.c:160
> 160 if ((fp = ip_frag_find(tbl, dr, &key, tms)) == NULL) {
> 
> Is this a known issue? Are there any workaround?
> 
> Regards,
> Abhijeet

Please try and reproduce with latest DPDK 19.08.


More information about the users mailing list