DPAA_DP_LOG(DEBUG, " Parsing mbuf: %p with annotations: %p", m, annot);
+ m->ol_flags = PKT_RX_RSS_HASH | PKT_RX_IP_CKSUM_GOOD |
+ PKT_RX_L4_CKSUM_GOOD;
+
switch (prs) {
case DPAA_PKT_TYPE_IPV4:
m->packet_type = RTE_PTYPE_L2_ETHER |
m->packet_type = RTE_PTYPE_L2_ETHER |
RTE_PTYPE_L3_IPV6 | RTE_PTYPE_L4_SCTP;
break;
+ case DPAA_PKT_TYPE_IPV4_CSUM_ERR:
+ case DPAA_PKT_TYPE_IPV6_CSUM_ERR:
+ m->ol_flags = PKT_RX_RSS_HASH | PKT_RX_IP_CKSUM_BAD;
+ break;
+ case DPAA_PKT_TYPE_IPV4_TCP_CSUM_ERR:
+ case DPAA_PKT_TYPE_IPV6_TCP_CSUM_ERR:
+ case DPAA_PKT_TYPE_IPV4_UDP_CSUM_ERR:
+ case DPAA_PKT_TYPE_IPV6_UDP_CSUM_ERR:
+ m->ol_flags = PKT_RX_RSS_HASH | PKT_RX_L4_CKSUM_BAD;
+ break;
case DPAA_PKT_TYPE_NONE:
m->packet_type = 0;
break;
/* Set the hash values */
m->hash.rss = (uint32_t)(annot->hash);
- /* All packets with Bad checksum are dropped by interface (and
- * corresponding notification issued to RX error queues).
- */
- m->ol_flags = PKT_RX_RSS_HASH | PKT_RX_IP_CKSUM_GOOD;
/* Check if Vlan is present */
if (prs & DPAA_PARSE_VLAN_MASK)
ev->queue_id = fq->ev.queue_id;
ev->priority = fq->ev.priority;
ev->impl_opaque = (uint8_t)DPAA_INVALID_MBUF_SEQN;
- mbuf->seqn = DPAA_INVALID_MBUF_SEQN;
+ *dpaa_seqn(mbuf) = DPAA_INVALID_MBUF_SEQN;
*bufs = mbuf;
return qman_cb_dqrr_consume;
DPAA_PER_LCORE_DQRR_HELD |= 1 << index;
DPAA_PER_LCORE_DQRR_MBUF(index) = mbuf;
ev->impl_opaque = index + 1;
- mbuf->seqn = (uint32_t)index + 1;
+ *dpaa_seqn(mbuf) = (uint32_t)index + 1;
*bufs = mbuf;
return qman_cb_dqrr_defer;
if (dpaa_svr_family == SVR_LS1043A_FAMILY &&
(mbuf->data_off & 0x7F) != 0x0)
realloc_mbuf = 1;
- seqn = mbuf->seqn;
+ seqn = *dpaa_seqn(mbuf);
if (seqn != DPAA_INVALID_MBUF_SEQN) {
index = seqn - 1;
if (DPAA_PER_LCORE_DQRR_HELD & (1 << index)) {