mbuf: rename Tx VLAN flags
[dpdk.git] / lib / librte_mbuf / rte_mbuf.h
index ce8a05d..4519fb3 100644 (file)
@@ -62,6 +62,7 @@
 
 #include <stdint.h>
 #include <rte_common.h>
+#include <rte_config.h>
 #include <rte_mempool.h>
 #include <rte_memory.h>
 #include <rte_atomic.h>
@@ -208,6 +209,13 @@ extern "C" {
 
 /* add new TX flags here */
 
+/**
+ * UDP Fragmentation Offload flag. This flag is used for enabling UDP
+ * fragmentation in SW or in HW. When use UFO, mbuf->tso_segsz is used
+ * to store the MSS of UDP fragments.
+ */
+#define PKT_TX_UDP_SEG (1ULL << 42)
+
 /**
  * Request security offload processing on the TX packet.
  */
@@ -236,7 +244,9 @@ extern "C" {
 /**
  * Second VLAN insertion (QinQ) flag.
  */
-#define PKT_TX_QINQ_PKT    (1ULL << 49)   /**< TX packet with double VLAN inserted. */
+#define PKT_TX_QINQ        (1ULL << 49)   /**< TX packet with double VLAN inserted. */
+/* this old name is deprecated */
+#define PKT_TX_QINQ_PKT    PKT_TX_QINQ
 
 /**
  * TCP segmentation offload. To enable this offload feature for a
@@ -297,7 +307,12 @@ extern "C" {
  */
 #define PKT_TX_IPV6          (1ULL << 56)
 
-#define PKT_TX_VLAN_PKT      (1ULL << 57) /**< TX packet is a 802.1q VLAN packet. */
+/**
+ * TX packet is a 802.1q VLAN packet.
+ */
+#define PKT_TX_VLAN          (1ULL << 57)
+/* this old name is deprecated */
+#define PKT_TX_VLAN_PKT      PKT_TX_VLAN
 
 /**
  * Offload the IP checksum of an external header in the hardware. The
@@ -502,7 +517,7 @@ struct rte_mbuf {
 
        uint32_t pkt_len;         /**< Total pkt len: sum of all segments. */
        uint16_t data_len;        /**< Amount of data in segment buffer. */
-       /** VLAN TCI (CPU order), valid if PKT_RX_VLAN_STRIPPED is set. */
+       /** VLAN TCI (CPU order), valid if PKT_RX_VLAN is set. */
        uint16_t vlan_tci;
 
        union {
@@ -528,7 +543,7 @@ struct rte_mbuf {
                uint32_t usr;     /**< User defined tags. See rte_distributor_process() */
        } hash;                   /**< hash information */
 
-       /** Outer VLAN TCI (CPU order), valid if PKT_RX_QINQ_STRIPPED is set. */
+       /** Outer VLAN TCI (CPU order), valid if PKT_RX_QINQ is set. */
        uint16_t vlan_tci_outer;
 
        uint16_t buf_len;         /**< Length of segment buffer. */
@@ -764,6 +779,13 @@ rte_mbuf_refcnt_set(struct rte_mbuf *m, uint16_t new_value)
        rte_atomic16_set(&m->refcnt_atomic, new_value);
 }
 
+/* internal */
+static inline uint16_t
+__rte_mbuf_refcnt_update(struct rte_mbuf *m, int16_t value)
+{
+       return (uint16_t)(rte_atomic16_add_return(&m->refcnt_atomic, value));
+}
+
 /**
  * Adds given value to an mbuf's refcnt and returns its new value.
  * @param m
@@ -788,19 +810,26 @@ rte_mbuf_refcnt_update(struct rte_mbuf *m, int16_t value)
                return 1 + value;
        }
 
-       return (uint16_t)(rte_atomic16_add_return(&m->refcnt_atomic, value));
+       return __rte_mbuf_refcnt_update(m, value);
 }
 
 #else /* ! RTE_MBUF_REFCNT_ATOMIC */
 
+/* internal */
+static inline uint16_t
+__rte_mbuf_refcnt_update(struct rte_mbuf *m, int16_t value)
+{
+       m->refcnt = (uint16_t)(m->refcnt + value);
+       return m->refcnt;
+}
+
 /**
  * Adds given value to an mbuf's refcnt and returns its new value.
  */
 static inline uint16_t
 rte_mbuf_refcnt_update(struct rte_mbuf *m, int16_t value)
 {
-       m->refcnt = (uint16_t)(m->refcnt + value);
-       return m->refcnt;
+       return __rte_mbuf_refcnt_update(m, value);
 }
 
 /**
@@ -874,11 +903,9 @@ rte_mbuf_sanity_check(const struct rte_mbuf *m, int is_header);
 static inline struct rte_mbuf *rte_mbuf_raw_alloc(struct rte_mempool *mp)
 {
        struct rte_mbuf *m;
-       void *mb = NULL;
 
-       if (rte_mempool_get(mp, &mb) < 0)
+       if (rte_mempool_get(mp, (void **)&m) < 0)
                return NULL;
-       m = (struct rte_mbuf *)mb;
        MBUF_RAW_ALLOC_CHECK(m);
        return m;
 }
@@ -1364,8 +1391,7 @@ rte_pktmbuf_prefree_seg(struct rte_mbuf *m)
 
                return m;
 
-       } else if (rte_atomic16_add_return(&m->refcnt_atomic, -1) == 0) {
-
+       } else if (__rte_mbuf_refcnt_update(m, -1) == 0) {
 
                if (RTE_MBUF_INDIRECT(m))
                        rte_pktmbuf_detach(m);
@@ -1541,12 +1567,10 @@ static inline uint16_t rte_pktmbuf_tailroom(const struct rte_mbuf *m)
  */
 static inline struct rte_mbuf *rte_pktmbuf_lastseg(struct rte_mbuf *m)
 {
-       struct rte_mbuf *m2 = (struct rte_mbuf *)m;
-
        __rte_mbuf_sanity_check(m, 1);
-       while (m2->next != NULL)
-               m2 = m2->next;
-       return m2;
+       while (m->next != NULL)
+               m = m->next;
+       return m;
 }
 
 /**