git.droids-corp.org
/
dpdk.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
ethdev: add a missing sanity check for Tx queue setup
[dpdk.git]
/
lib
/
librte_ip_frag
/
rte_ipv6_reassembly.c
diff --git
a/lib/librte_ip_frag/rte_ipv6_reassembly.c
b/lib/librte_ip_frag/rte_ipv6_reassembly.c
index
8b4ef8a
..
d29cb1d
100644
(file)
--- a/
lib/librte_ip_frag/rte_ipv6_reassembly.c
+++ b/
lib/librte_ip_frag/rte_ipv6_reassembly.c
@@
-86,7
+86,9
@@
ipv6_frag_reassemble(const struct ip_frag_pkt *fp)
/* previous fragment found. */
if (fp->frags[i].ofs + fp->frags[i].len == ofs) {
/* previous fragment found. */
if (fp->frags[i].ofs + fp->frags[i].len == ofs) {
- ip_frag_chain(fp->frags[i].mb, m);
+ /* adjust start of the last fragment data. */
+ rte_pktmbuf_adj(m, (uint16_t)(m->l2_len + m->l3_len));
+ rte_pktmbuf_chain(fp->frags[i].mb, m);
/* update our last fragment and offset. */
m = fp->frags[i].mb;
/* update our last fragment and offset. */
m = fp->frags[i].mb;
@@
-101,7
+103,8
@@
ipv6_frag_reassemble(const struct ip_frag_pkt *fp)
}
/* chain with the first fragment. */
}
/* chain with the first fragment. */
- ip_frag_chain(fp->frags[IP_FIRST_FRAG_IDX].mb, m);
+ rte_pktmbuf_adj(m, (uint16_t)(m->l2_len + m->l3_len));
+ rte_pktmbuf_chain(fp->frags[IP_FIRST_FRAG_IDX].mb, m);
m = fp->frags[IP_FIRST_FRAG_IDX].mb;
/* update mbuf fields for reassembled packet. */
m = fp->frags[IP_FIRST_FRAG_IDX].mb;
/* update mbuf fields for reassembled packet. */