net: fix GTP PSC headers
authorGregory Etelson <getelson@nvidia.com>
Thu, 16 Jun 2022 18:01:03 +0000 (21:01 +0300)
committerAndrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Thu, 23 Jun 2022 11:38:09 +0000 (13:38 +0200)
Fix bitmap fields order in little endian section of GTP PSC headers.

Fixes: e8ca1479cdc4 ("net: add extension header for GTP PSC")
Cc: stable@dpdk.org
Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Reviewed-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
Acked-by: Aman Singh <aman.deep.singh@intel.com>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
lib/net/rte_gtp.h

index dca940c2c5ab89b271a7c8df1e898e8c71835d06..984987236698bf54be5d31fca12f85f24e1cc6c1 100644 (file)
@@ -75,11 +75,11 @@ struct rte_gtp_psc_generic_hdr {
        uint8_t spare:2;        /**< type specific spare bits */
        uint8_t qfi:6;          /**< Qos Flow Identifier */
 #else
-       uint8_t qfi:6;          /**< Qos Flow Identifier */
-       uint8_t spare:2;        /**< type specific spare bits */
        uint8_t pad:3;          /**< type specific pad bits */
        uint8_t qmp:1;          /**< Qos Monitoring Packet */
        uint8_t type:4;         /**< PDU type */
+       uint8_t qfi:6;          /**< Qos Flow Identifier */
+       uint8_t spare:2;        /**< type specific spare bits */
 #endif
        uint8_t data[0];        /**< variable length data fields */
 } __rte_packed;
@@ -100,12 +100,13 @@ struct rte_gtp_psc_type0_hdr {
        uint8_t rqi:1;          /**< Reflective Qos Indicator */
        uint8_t qfi:6;          /**< Qos Flow Identifier */
 #else
-       uint8_t qfi:6;          /**< Qos Flow Identifier */
-       uint8_t rqi:1;          /**< Reflective Qos Indicator */
-       uint8_t ppp:1;          /**< Paging policy presence */
        uint8_t spare_dl1:2;    /**< spare down link bits */
        uint8_t snp:1;          /**< Sequence number presence */
+       uint8_t qmp:1;          /**< Qos Monitoring Packet */
        uint8_t type:4;         /**< PDU type */
+       uint8_t qfi:6;          /**< Qos Flow Identifier */
+       uint8_t rqi:1;          /**< Reflective Qos Indicator */
+       uint8_t ppp:1;          /**< Paging policy presence */
 #endif
        uint8_t data[0];        /**< variable length data fields */
 } __rte_packed;
@@ -127,14 +128,14 @@ struct rte_gtp_psc_type1_hdr {
        uint8_t spare_ul2:1;    /**< spare up link bits */
        uint8_t qfi:6;          /**< Qos Flow Identifier */
 #else
-       uint8_t qfi:6;          /**< Qos Flow Identifier */
-       uint8_t spare_ul2:1;    /**< spare up link bits */
-       uint8_t n_delay_ind:1;  /**< N3/N9 delay result presence */
        uint8_t snp:1;          /**< Sequence number presence ul */
        uint8_t ul_delay_ind:1; /**< ul delay result presence */
        uint8_t dl_delay_ind:1; /**< dl delay result presence */
        uint8_t qmp:1;          /**< Qos Monitoring Packet */
        uint8_t type:4;         /**< PDU type */
+       uint8_t qfi:6;          /**< Qos Flow Identifier */
+       uint8_t spare_ul2:1;    /**< spare up link bits */
+       uint8_t n_delay_ind:1;  /**< N3/N9 delay result presence */
 #endif
        uint8_t data[0];        /**< variable length data fields */
 } __rte_packed;