Hi Maxime, On 10/11/2016 03:25 PM, Maxime Coquelin wrote: >> /** >> + * Compute the raw (non complemented) checksum of a packet. >> + * >> + * @param m >> + * The pointer to the mbuf. >> + * @param off >> + * The offset in bytes to start the checksum. >> + * @param len >> + * The length in bytes of the data to ckecksum. >> + */ >> +static inline uint16_t >> +rte_raw_cksum_mbuf(const struct rte_mbuf *m, uint32_t off, uint32_t len) >> +{ >> + const struct rte_mbuf *seg; >> + const char *buf; >> + uint32_t sum, tmp; >> + uint32_t seglen, done; >> + >> + /* easy case: all data in the first segment */ >> + if (off + len <= rte_pktmbuf_data_len(m)) >> + return rte_raw_cksum(rte_pktmbuf_mtod_offset(m, >> + const char *, off), len); >> + >> + if (off + len > rte_pktmbuf_pkt_len(m)) > unlikely?
Yes, will add it. >> + return 0; /* invalid params, return a dummy value */ > Couldn't be better to return an error, so that the caller has a chance > to see it is passing wrong arguments? > The csum would be passed as an arg. Looks much better indeed. I'll change it for next revision. Thanks, Olivier