Hi, > Currently PKT_TX_IP_CKSUM is being set into mbuf->ol_flags > during fragmentation and reassemble operation implicitly. > Because of this, application is forced to use checksum offload > whether it is supported by platform or not. > > Also documentation does not provide any expected value of ol_flags > in returned mbuf (reassembled or fragmented) so application will never > come to know that which offloads are enabled. So transmission may be failed > for the platforms which does not support checksum offload. > > Also, IPv6 does not contain any checksum field in header so setting > mbuf->ol_flags with PKT_TX_IP_CKSUM is itself invalid. > > So removing mentioned flag from the library.
As there is a change in public API behavior, I think it deserves update in release notes. Apart from that: Acked-by: Konstantin Ananyev <konstantin.anan...@intel.com> > > Signed-off-by: Sunil Kumar Kori <sk...@marvell.com> > --- > lib/librte_ip_frag/rte_ipv4_fragmentation.c | 1 - > lib/librte_ip_frag/rte_ipv4_reassembly.c | 3 --- > lib/librte_ip_frag/rte_ipv6_reassembly.c | 3 --- > 3 files changed, 7 deletions(-) > > diff --git a/lib/librte_ip_frag/rte_ipv4_fragmentation.c > b/lib/librte_ip_frag/rte_ipv4_fragmentation.c > index a96fb03..13e60fb 100644 > --- a/lib/librte_ip_frag/rte_ipv4_fragmentation.c > +++ b/lib/librte_ip_frag/rte_ipv4_fragmentation.c > @@ -173,7 +173,6 @@ static inline void __free_fragments(struct rte_mbuf > *mb[], uint32_t num) > fragment_offset = (uint16_t)(fragment_offset + > out_pkt->pkt_len - sizeof(struct ipv4_hdr)); > > - out_pkt->ol_flags |= PKT_TX_IP_CKSUM; > out_pkt->l3_len = sizeof(struct ipv4_hdr); > > /* Write the fragment to the output list */ > diff --git a/lib/librte_ip_frag/rte_ipv4_reassembly.c > b/lib/librte_ip_frag/rte_ipv4_reassembly.c > index 1029b7a..4e20431 100644 > --- a/lib/librte_ip_frag/rte_ipv4_reassembly.c > +++ b/lib/librte_ip_frag/rte_ipv4_reassembly.c > @@ -66,9 +66,6 @@ struct rte_mbuf * > m = fp->frags[IP_FIRST_FRAG_IDX].mb; > fp->frags[IP_FIRST_FRAG_IDX].mb = NULL; > > - /* update mbuf fields for reassembled packet. */ > - m->ol_flags |= PKT_TX_IP_CKSUM; > - > /* update ipv4 header for the reassembled packet */ > ip_hdr = rte_pktmbuf_mtod_offset(m, struct ipv4_hdr *, m->l2_len); > > diff --git a/lib/librte_ip_frag/rte_ipv6_reassembly.c > b/lib/librte_ip_frag/rte_ipv6_reassembly.c > index 855e3f7..eb8b849 100644 > --- a/lib/librte_ip_frag/rte_ipv6_reassembly.c > +++ b/lib/librte_ip_frag/rte_ipv6_reassembly.c > @@ -89,9 +89,6 @@ struct rte_mbuf * > m = fp->frags[IP_FIRST_FRAG_IDX].mb; > fp->frags[IP_FIRST_FRAG_IDX].mb = NULL; > > - /* update mbuf fields for reassembled packet. */ > - m->ol_flags |= PKT_TX_IP_CKSUM; > - > /* update ipv6 header for the reassembled datagram */ > ip_hdr = rte_pktmbuf_mtod_offset(m, struct ipv6_hdr *, m->l2_len); > > -- > 1.8.3.1