diff mbox series

[10/14] net/dpaa2: add VLAN insert offload

Message ID 1512710487-32388-11-git-send-email-hemant.agrawal@nxp.com
State Accepted
Commit 5a307f50ba7e79f13fcb1b14bf41892835fe9c6d
Headers show
Series DPAA2 PMD fixes and enhancements | expand

Commit Message

Hemant Agrawal Dec. 8, 2017, 5:21 a.m. UTC
Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com>

---
 drivers/net/dpaa2/dpaa2_rxtx.c | 18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

-- 
2.7.4
diff mbox series

Patch

diff --git a/drivers/net/dpaa2/dpaa2_rxtx.c b/drivers/net/dpaa2/dpaa2_rxtx.c
index 8ecd238..93c2319 100644
--- a/drivers/net/dpaa2/dpaa2_rxtx.c
+++ b/drivers/net/dpaa2/dpaa2_rxtx.c
@@ -242,6 +242,12 @@  eth_mbuf_to_sg_fd(struct rte_mbuf *mbuf,
 	/* Resetting the buffer pool id and offset field*/
 	fd->simple.bpid_offset = 0;
 
+	if (unlikely(mbuf->ol_flags & PKT_TX_VLAN_PKT)) {
+		int ret = rte_vlan_insert(&mbuf);
+		if (ret)
+			return ret;
+	}
+
 	temp = rte_pktmbuf_alloc(mbuf->pool);
 	if (temp == NULL) {
 		PMD_TX_LOG(ERR, "No memory to allocate S/G table");
@@ -308,6 +314,12 @@  static void __attribute__ ((noinline)) __attribute__((hot))
 eth_mbuf_to_fd(struct rte_mbuf *mbuf,
 	       struct qbman_fd *fd, uint16_t bpid)
 {
+	if (unlikely(mbuf->ol_flags & PKT_TX_VLAN_PKT)) {
+		if (rte_vlan_insert(&mbuf)) {
+			rte_pktmbuf_free(mbuf);
+			return;
+		}
+	}
 	/*Resetting the buffer pool id and offset field*/
 	fd->simple.bpid_offset = 0;
 
@@ -347,6 +359,12 @@  eth_copy_mbuf_to_fd(struct rte_mbuf *mbuf,
 	struct rte_mbuf *m;
 	void *mb = NULL;
 
+	if (unlikely(mbuf->ol_flags & PKT_TX_VLAN_PKT)) {
+		int ret = rte_vlan_insert(&mbuf);
+		if (ret)
+			return ret;
+	}
+
 	if (rte_dpaa2_mbuf_alloc_bulk(
 		rte_dpaa2_bpid_info[bpid].bp_list->mp, &mb, 1)) {
 		PMD_TX_LOG(WARNING, "Unable to allocated DPAA2 buffer");