MCPcopy Create free account
hub / github.com/F-Stack/f-stack / dpaa_checksum_offload

Function dpaa_checksum_offload

dpdk/drivers/net/dpaa/dpaa_rxtx.c:292–321  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

290}
291
292static inline void dpaa_checksum_offload(struct rte_mbuf *mbuf,
293 struct qm_fd *fd, char *prs_buf)
294{
295 struct dpaa_eth_parse_results_t *prs;
296
297 DPAA_DP_LOG(DEBUG, " Offloading checksum for mbuf: %p", mbuf);
298
299 prs = GET_TX_PRS(prs_buf);
300 prs->l3r = 0;
301 prs->l4r = 0;
302 if (((mbuf->packet_type & RTE_PTYPE_L3_MASK) == RTE_PTYPE_L3_IPV4) ||
303 ((mbuf->packet_type & RTE_PTYPE_L3_MASK) ==
304 RTE_PTYPE_L3_IPV4_EXT))
305 prs->l3r = DPAA_L3_PARSE_RESULT_IPV4;
306 else if (((mbuf->packet_type & RTE_PTYPE_L3_MASK) ==
307 RTE_PTYPE_L3_IPV6) ||
308 ((mbuf->packet_type & RTE_PTYPE_L3_MASK) ==
309 RTE_PTYPE_L3_IPV6_EXT))
310 prs->l3r = DPAA_L3_PARSE_RESULT_IPV6;
311
312 if ((mbuf->packet_type & RTE_PTYPE_L4_MASK) == RTE_PTYPE_L4_TCP)
313 prs->l4r = DPAA_L4_PARSE_RESULT_TCP;
314 else if ((mbuf->packet_type & RTE_PTYPE_L4_MASK) == RTE_PTYPE_L4_UDP)
315 prs->l4r = DPAA_L4_PARSE_RESULT_UDP;
316
317 prs->ip_off[0] = mbuf->l2_len;
318 prs->l4_off = mbuf->l3_len + mbuf->l2_len;
319 /* Enable L3 (and L4, if TCP or UDP) HW checksum*/
320 fd->cmd = DPAA_FD_CMD_RPD | DPAA_FD_CMD_DTC;
321}
322
323static inline void
324dpaa_unsegmented_checksum(struct rte_mbuf *mbuf, struct qm_fd *fd_arr)

Callers 2

dpaa_eth_mbuf_to_sg_fdFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected