raw/octeontx2_ep: add device uninitialization
[dpdk.git] / lib / librte_net / rte_ip.h
index 4465073..1ceb7b7 100644 (file)
@@ -33,14 +33,14 @@ extern "C" {
 struct rte_ipv4_hdr {
        uint8_t  version_ihl;           /**< version and header length */
        uint8_t  type_of_service;       /**< type of service */
-       uint16_t total_length;          /**< length of packet */
-       uint16_t packet_id;             /**< packet ID */
-       uint16_t fragment_offset;       /**< fragmentation offset */
+       rte_be16_t total_length;        /**< length of packet */
+       rte_be16_t packet_id;           /**< packet ID */
+       rte_be16_t fragment_offset;     /**< fragmentation offset */
        uint8_t  time_to_live;          /**< time to live */
        uint8_t  next_proto_id;         /**< protocol ID */
-       uint16_t hdr_checksum;          /**< header checksum */
-       uint32_t src_addr;              /**< source address */
-       uint32_t dst_addr;              /**< destination address */
+       rte_be16_t hdr_checksum;        /**< header checksum */
+       rte_be32_t src_addr;            /**< source address */
+       rte_be32_t dst_addr;            /**< destination address */
 } __attribute__((__packed__));
 
 /** Create IPv4 address */
@@ -63,6 +63,7 @@ struct rte_ipv4_hdr {
 /* Type of Service fields */
 #define RTE_IPV4_HDR_DSCP_MASK (0xfc)
 #define RTE_IPV4_HDR_ECN_MASK  (0x03)
+#define RTE_IPV4_HDR_ECN_CE    RTE_IPV4_HDR_ECN_MASK
 
 /* Fragment Offset * Flags. */
 #define        RTE_IPV4_HDR_DF_SHIFT   14
@@ -100,7 +101,7 @@ struct rte_ipv4_hdr {
 
 /* IPv4 default fields values */
 #define RTE_IPV4_MIN_IHL    (0x5)
-#define RTE_IPV4_VHL_DEF    (IPVERSION | RTE_IPV4_MIN_IHL)
+#define RTE_IPV4_VHL_DEF    ((IPVERSION << 4) | RTE_IPV4_MIN_IHL)
 
 /**
  * @internal Calculate a sum of all words in the buffer.
@@ -353,12 +354,12 @@ rte_ipv4_udptcp_cksum(const struct rte_ipv4_hdr *ipv4_hdr, const void *l4_hdr)
  * IPv6 Header
  */
 struct rte_ipv6_hdr {
-       uint32_t vtc_flow;     /**< IP version, traffic class & flow label. */
-       uint16_t payload_len;  /**< IP packet length - includes sizeof(ip_header). */
-       uint8_t  proto;        /**< Protocol, next header. */
-       uint8_t  hop_limits;   /**< Hop limits. */
-       uint8_t  src_addr[16]; /**< IP address of source host. */
-       uint8_t  dst_addr[16]; /**< IP address of destination host(s). */
+       rte_be32_t vtc_flow;    /**< IP version, traffic class & flow label. */
+       rte_be16_t payload_len; /**< IP packet length - includes header size */
+       uint8_t  proto;         /**< Protocol, next header. */
+       uint8_t  hop_limits;    /**< Hop limits. */
+       uint8_t  src_addr[16];  /**< IP address of source host. */
+       uint8_t  dst_addr[16];  /**< IP address of destination host(s). */
 } __attribute__((__packed__));
 
 /* IPv6 vtc_flow: IPv / TC / flow_label */
@@ -368,6 +369,7 @@ struct rte_ipv6_hdr {
 #define RTE_IPV6_HDR_TC_MASK   (0xff << RTE_IPV6_HDR_TC_SHIFT)
 #define RTE_IPV6_HDR_DSCP_MASK (0xfc << RTE_IPV6_HDR_TC_SHIFT)
 #define RTE_IPV6_HDR_ECN_MASK  (0x03 << RTE_IPV6_HDR_TC_SHIFT)
+#define RTE_IPV6_HDR_ECN_CE    RTE_IPV6_HDR_ECN_MASK
 
 /**
  * Process the pseudo-header checksum of an IPv6 header.
@@ -390,8 +392,8 @@ rte_ipv6_phdr_cksum(const struct rte_ipv6_hdr *ipv6_hdr, uint64_t ol_flags)
 {
        uint32_t sum;
        struct {
-               uint32_t len;   /* L4 length. */
-               uint32_t proto; /* L4 protocol - top 3 bytes must be zero */
+               rte_be32_t len;   /* L4 length. */
+               rte_be32_t proto; /* L4 protocol - top 3 bytes must be zero */
        } psd_hdr;
 
        psd_hdr.proto = (uint32_t)(ipv6_hdr->proto << 24);
@@ -461,7 +463,7 @@ rte_ipv6_udptcp_cksum(const struct rte_ipv6_hdr *ipv6_hdr, const void *l4_hdr)
  */
 __rte_experimental
 static inline int
-rte_ipv6_get_next_ext(uint8_t *p, int proto, size_t *ext_len)
+rte_ipv6_get_next_ext(const uint8_t *p, int proto, size_t *ext_len)
 {
        int next_proto;