From: Abhijeet Baruah <abhijeet080808@gmail.com>
To: Stephen Hemminger <stephen@networkplumber.org>
Cc: users@dpdk.org
Subject: Re: [dpdk-users] IP Reassembly with more 4 packets crash
Date: Tue, 13 Aug 2019 10:29:00 +0530 [thread overview]
Message-ID: <CANDhLBbaykuAdUjm1LRR6QawOb7mCpzK+rDw5xt-dqfF+JGSJw@mail.gmail.com> (raw)
In-Reply-To: <20190812202909.00c1eba7@hermes.lan>
I had been making a mistake. My code was of format -
if (rte_ipv4_frag_pkt_is_fragmented(ipv4_header))
{
rte_mbuf* assembled_msg = rte_ipv4_frag_reassemble_packet();
if (assembled_msg != nullptr)
{
rte_ip_frag_free_death_row();
}
}
The rte_ip_frag_free_death_row was NOT getting called when reassembly was
failing, as it was in my case of > 4 IP fragments. The fix is to call
rte_ip_frag_free_death_row irrespective of reassembly status.
On Tue, Aug 13, 2019 at 8:59 AM Stephen Hemminger <
stephen@networkplumber.org> wrote:
> On Tue, 13 Aug 2019 08:37:09 +0530
> Abhijeet Baruah <abhijeet080808@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@entry=0x7fff7a32ce80, key=key@entry
> =0x7ffff6eeee10,
> > tms=tms@entry=2602613353715115, free=free@entry=0x7ffff6eeedb8,
> > stale=stale@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@entry=0x7fff7a32ce80,
> > dr=dr@entry=0x7fff7a32c900, key=key@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@entry=0x7fff7a32ce80, key=key@entry
> =0x7ffff6eeee10,
> > tms=tms@entry=2602613353715115, free=free@entry=0x7ffff6eeedb8,
> > stale=stale@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@entry=0x7fff7a32ce80,
> > dr=dr@entry=0x7fff7a32c900, key=key@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.
>
prev parent reply other threads:[~2019-08-13 4:59 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-13 3:07 Abhijeet Baruah
2019-08-13 3:29 ` Stephen Hemminger
2019-08-13 4:59 ` Abhijeet Baruah [this message]
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=CANDhLBbaykuAdUjm1LRR6QawOb7mCpzK+rDw5xt-dqfF+JGSJw@mail.gmail.com \
--to=abhijeet080808@gmail.com \
--cc=stephen@networkplumber.org \
--cc=users@dpdk.org \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).