mbuf: add security crypto flags and fields
[dpdk.git] / lib / librte_mbuf / rte_mbuf.c
index 72ad91e..6659261 100644 (file)
@@ -62,7 +62,7 @@
 
 /*
  * ctrlmbuf constructor, given as a callback function to
- * rte_mempool_create()
+ * rte_mempool_obj_iter() or rte_mempool_create()
  */
 void
 rte_ctrlmbuf_init(struct rte_mempool *mp,
@@ -77,7 +77,8 @@ rte_ctrlmbuf_init(struct rte_mempool *mp,
 
 /*
  * pktmbuf pool constructor, given as a callback function to
- * rte_mempool_create()
+ * rte_mempool_create(), or called directly if using
+ * rte_mempool_create_empty()/rte_mempool_populate()
  */
 void
 rte_pktmbuf_pool_init(struct rte_mempool *mp, void *opaque_arg)
@@ -110,7 +111,7 @@ rte_pktmbuf_pool_init(struct rte_mempool *mp, void *opaque_arg)
 
 /*
  * pktmbuf constructor, given as a callback function to
- * rte_mempool_create().
+ * rte_mempool_obj_iter() or rte_mempool_create().
  * Set the fields of a packet mbuf to their default values.
  */
 void
@@ -130,8 +131,7 @@ rte_pktmbuf_init(struct rte_mempool *mp,
        RTE_ASSERT(mp->elt_size >= mbuf_size);
        RTE_ASSERT(buf_len <= UINT16_MAX);
 
-       memset(m, 0, mp->elt_size);
-
+       memset(m, 0, mbuf_size);
        /* start of buffer is after mbuf structure and priv data */
        m->priv_size = priv_size;
        m->buf_addr = (char *)m + mbuf_size;
@@ -144,7 +144,9 @@ rte_pktmbuf_init(struct rte_mempool *mp,
        /* init some constant fields */
        m->pool = mp;
        m->nb_segs = 1;
-       m->port = 0xff;
+       m->port = MBUF_INVALID_PORT;
+       rte_mbuf_refcnt_set(m, 1);
+       m->next = NULL;
 }
 
 /* helper to create a mbuf pool */
@@ -155,6 +157,7 @@ rte_pktmbuf_pool_create(const char *name, unsigned n,
 {
        struct rte_mempool *mp;
        struct rte_pktmbuf_pool_private mbp_priv;
+       const char *mp_ops_name;
        unsigned elt_size;
        int ret;
 
@@ -174,8 +177,8 @@ rte_pktmbuf_pool_create(const char *name, unsigned n,
        if (mp == NULL)
                return NULL;
 
-       ret = rte_mempool_set_ops_byname(mp,
-               RTE_MBUF_DEFAULT_MEMPOOL_OPS, NULL);
+       mp_ops_name = rte_eal_mbuf_default_mempool_ops();
+       ret = rte_mempool_set_ops_byname(mp, mp_ops_name, NULL);
        if (ret != 0) {
                RTE_LOG(ERR, MBUF, "error setting mempool handler\n");
                rte_mempool_free(mp);
@@ -320,6 +323,9 @@ const char *rte_get_rx_ol_flag_name(uint64_t mask)
        case PKT_RX_IEEE1588_TMST: return "PKT_RX_IEEE1588_TMST";
        case PKT_RX_QINQ_STRIPPED: return "PKT_RX_QINQ_STRIPPED";
        case PKT_RX_LRO: return "PKT_RX_LRO";
+       case PKT_RX_TIMESTAMP: return "PKT_RX_TIMESTAMP";
+       case PKT_RX_SEC_OFFLOAD: return "PKT_RX_SEC_OFFLOAD";
+       case PKT_RX_SEC_OFFLOAD_FAILED: return "PKT_RX_SEC_OFFLOAD_FAILED";
        default: return NULL;
        }
 }
@@ -354,6 +360,9 @@ rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
                { PKT_RX_IEEE1588_TMST, PKT_RX_IEEE1588_TMST, NULL },
                { PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ_STRIPPED, NULL },
                { PKT_RX_LRO, PKT_RX_LRO, NULL },
+               { PKT_RX_TIMESTAMP, PKT_RX_TIMESTAMP, NULL },
+               { PKT_RX_SEC_OFFLOAD, PKT_RX_SEC_OFFLOAD, NULL },
+               { PKT_RX_SEC_OFFLOAD_FAILED, PKT_RX_SEC_OFFLOAD_FAILED, NULL },
        };
        const char *name;
        unsigned int i;
@@ -404,7 +413,9 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
        case PKT_TX_TUNNEL_GRE: return "PKT_TX_TUNNEL_GRE";
        case PKT_TX_TUNNEL_IPIP: return "PKT_TX_TUNNEL_IPIP";
        case PKT_TX_TUNNEL_GENEVE: return "PKT_TX_TUNNEL_GENEVE";
+       case PKT_TX_TUNNEL_MPLSINUDP: return "PKT_TX_TUNNEL_MPLSINUDP";
        case PKT_TX_MACSEC: return "PKT_TX_MACSEC";
+       case PKT_TX_SEC_OFFLOAD: return "PKT_TX_SEC_OFFLOAD";
        default: return NULL;
        }
 }
@@ -435,7 +446,10 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
                  "PKT_TX_TUNNEL_NONE" },
                { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK,
                  "PKT_TX_TUNNEL_NONE" },
+               { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK,
+                 "PKT_TX_TUNNEL_NONE" },
                { PKT_TX_MACSEC, PKT_TX_MACSEC, NULL },
+               { PKT_TX_SEC_OFFLOAD, PKT_TX_SEC_OFFLOAD, NULL },
        };
        const char *name;
        unsigned int i;