]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
staging: fsl-dpaa2/eth: Use BIT() macro
authorIoana Radulescu <ruxandra.radulescu@nxp.com>
Wed, 1 Aug 2018 16:09:50 +0000 (11:09 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 2 Aug 2018 07:43:42 +0000 (09:43 +0200)
File net.h has several bitmask defines that could be implemented
more clearly using the BIT() macro.

Signed-off-by: Ioana Radulescu <ruxandra.radulescu@nxp.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/staging/fsl-dpaa2/ethernet/net.h

index 2461d6ee7aac7481abb6c9927eb050e7ea6d0657..81f5a91f4a93b3f10c205bd8d8649a2ee5de466e 100644 (file)
 /* Protocol fields */
 
 /* Ethernet fields */
-#define NH_FLD_ETH_DA                         (1)
-#define NH_FLD_ETH_SA                         (NH_FLD_ETH_DA << 1)
-#define NH_FLD_ETH_LENGTH                     (NH_FLD_ETH_DA << 2)
-#define NH_FLD_ETH_TYPE                       (NH_FLD_ETH_DA << 3)
-#define NH_FLD_ETH_FINAL_CKSUM                (NH_FLD_ETH_DA << 4)
-#define NH_FLD_ETH_PADDING                    (NH_FLD_ETH_DA << 5)
-#define NH_FLD_ETH_ALL_FIELDS                 ((NH_FLD_ETH_DA << 6) - 1)
+#define NH_FLD_ETH_DA                          BIT(0)
+#define NH_FLD_ETH_SA                          BIT(1)
+#define NH_FLD_ETH_LENGTH                      BIT(2)
+#define NH_FLD_ETH_TYPE                                BIT(3)
+#define NH_FLD_ETH_FINAL_CKSUM                 BIT(4)
+#define NH_FLD_ETH_PADDING                     BIT(5)
+#define NH_FLD_ETH_ALL_FIELDS                  (BIT(6) - 1)
 
 /* VLAN fields */
-#define NH_FLD_VLAN_VPRI                      (1)
-#define NH_FLD_VLAN_CFI                       (NH_FLD_VLAN_VPRI << 1)
-#define NH_FLD_VLAN_VID                       (NH_FLD_VLAN_VPRI << 2)
-#define NH_FLD_VLAN_LENGTH                    (NH_FLD_VLAN_VPRI << 3)
-#define NH_FLD_VLAN_TYPE                      (NH_FLD_VLAN_VPRI << 4)
-#define NH_FLD_VLAN_ALL_FIELDS                ((NH_FLD_VLAN_VPRI << 5) - 1)
+#define NH_FLD_VLAN_VPRI                       BIT(0)
+#define NH_FLD_VLAN_CFI                                BIT(1)
+#define NH_FLD_VLAN_VID                                BIT(2)
+#define NH_FLD_VLAN_LENGTH                     BIT(3)
+#define NH_FLD_VLAN_TYPE                       BIT(4)
+#define NH_FLD_VLAN_ALL_FIELDS                 (BIT(5) - 1)
 
-#define NH_FLD_VLAN_TCI                       (NH_FLD_VLAN_VPRI | \
-                                              NH_FLD_VLAN_CFI | \
-                                              NH_FLD_VLAN_VID)
+#define NH_FLD_VLAN_TCI                                (NH_FLD_VLAN_VPRI | \
+                                                NH_FLD_VLAN_CFI | \
+                                                NH_FLD_VLAN_VID)
 
 /* IP (generic) fields */
-#define NH_FLD_IP_VER                         (1)
-#define NH_FLD_IP_DSCP                        (NH_FLD_IP_VER << 2)
-#define NH_FLD_IP_ECN                         (NH_FLD_IP_VER << 3)
-#define NH_FLD_IP_PROTO                       (NH_FLD_IP_VER << 4)
-#define NH_FLD_IP_SRC                         (NH_FLD_IP_VER << 5)
-#define NH_FLD_IP_DST                         (NH_FLD_IP_VER << 6)
-#define NH_FLD_IP_TOS_TC                      (NH_FLD_IP_VER << 7)
-#define NH_FLD_IP_ID                          (NH_FLD_IP_VER << 8)
-#define NH_FLD_IP_ALL_FIELDS                  ((NH_FLD_IP_VER << 9) - 1)
+#define NH_FLD_IP_VER                          BIT(0)
+#define NH_FLD_IP_DSCP                         BIT(2)
+#define NH_FLD_IP_ECN                          BIT(3)
+#define NH_FLD_IP_PROTO                                BIT(4)
+#define NH_FLD_IP_SRC                          BIT(5)
+#define NH_FLD_IP_DST                          BIT(6)
+#define NH_FLD_IP_TOS_TC                       BIT(7)
+#define NH_FLD_IP_ID                           BIT(8)
+#define NH_FLD_IP_ALL_FIELDS                   (BIT(9) - 1)
 
 /* IPV4 fields */
-#define NH_FLD_IPV4_VER                       (1)
-#define NH_FLD_IPV4_HDR_LEN                   (NH_FLD_IPV4_VER << 1)
-#define NH_FLD_IPV4_TOS                       (NH_FLD_IPV4_VER << 2)
-#define NH_FLD_IPV4_TOTAL_LEN                 (NH_FLD_IPV4_VER << 3)
-#define NH_FLD_IPV4_ID                        (NH_FLD_IPV4_VER << 4)
-#define NH_FLD_IPV4_FLAG_D                    (NH_FLD_IPV4_VER << 5)
-#define NH_FLD_IPV4_FLAG_M                    (NH_FLD_IPV4_VER << 6)
-#define NH_FLD_IPV4_OFFSET                    (NH_FLD_IPV4_VER << 7)
-#define NH_FLD_IPV4_TTL                       (NH_FLD_IPV4_VER << 8)
-#define NH_FLD_IPV4_PROTO                     (NH_FLD_IPV4_VER << 9)
-#define NH_FLD_IPV4_CKSUM                     (NH_FLD_IPV4_VER << 10)
-#define NH_FLD_IPV4_SRC_IP                    (NH_FLD_IPV4_VER << 11)
-#define NH_FLD_IPV4_DST_IP                    (NH_FLD_IPV4_VER << 12)
-#define NH_FLD_IPV4_OPTS                      (NH_FLD_IPV4_VER << 13)
-#define NH_FLD_IPV4_OPTS_COUNT                (NH_FLD_IPV4_VER << 14)
-#define NH_FLD_IPV4_ALL_FIELDS                ((NH_FLD_IPV4_VER << 15) - 1)
+#define NH_FLD_IPV4_VER                                BIT(0)
+#define NH_FLD_IPV4_HDR_LEN                    BIT(1)
+#define NH_FLD_IPV4_TOS                                BIT(2)
+#define NH_FLD_IPV4_TOTAL_LEN                  BIT(3)
+#define NH_FLD_IPV4_ID                         BIT(4)
+#define NH_FLD_IPV4_FLAG_D                     BIT(5)
+#define NH_FLD_IPV4_FLAG_M                     BIT(6)
+#define NH_FLD_IPV4_OFFSET                     BIT(7)
+#define NH_FLD_IPV4_TTL                                BIT(8)
+#define NH_FLD_IPV4_PROTO                      BIT(9)
+#define NH_FLD_IPV4_CKSUM                      BIT(10)
+#define NH_FLD_IPV4_SRC_IP                     BIT(11)
+#define NH_FLD_IPV4_DST_IP                     BIT(12)
+#define NH_FLD_IPV4_OPTS                       BIT(13)
+#define NH_FLD_IPV4_OPTS_COUNT                 BIT(14)
+#define NH_FLD_IPV4_ALL_FIELDS                 (BIT(15) - 1)
 
 /* IPV6 fields */
-#define NH_FLD_IPV6_VER                       (1)
-#define NH_FLD_IPV6_TC                        (NH_FLD_IPV6_VER << 1)
-#define NH_FLD_IPV6_SRC_IP                    (NH_FLD_IPV6_VER << 2)
-#define NH_FLD_IPV6_DST_IP                    (NH_FLD_IPV6_VER << 3)
-#define NH_FLD_IPV6_NEXT_HDR                  (NH_FLD_IPV6_VER << 4)
-#define NH_FLD_IPV6_FL                        (NH_FLD_IPV6_VER << 5)
-#define NH_FLD_IPV6_HOP_LIMIT                 (NH_FLD_IPV6_VER << 6)
-#define NH_FLD_IPV6_ID                       (NH_FLD_IPV6_VER << 7)
-#define NH_FLD_IPV6_ALL_FIELDS                ((NH_FLD_IPV6_VER << 8) - 1)
+#define NH_FLD_IPV6_VER                                BIT(0)
+#define NH_FLD_IPV6_TC                         BIT(1)
+#define NH_FLD_IPV6_SRC_IP                     BIT(2)
+#define NH_FLD_IPV6_DST_IP                     BIT(3)
+#define NH_FLD_IPV6_NEXT_HDR                   BIT(4)
+#define NH_FLD_IPV6_FL                         BIT(5)
+#define NH_FLD_IPV6_HOP_LIMIT                  BIT(6)
+#define NH_FLD_IPV6_ID                         BIT(7)
+#define NH_FLD_IPV6_ALL_FIELDS                 (BIT(8) - 1)
 
 /* ICMP fields */
-#define NH_FLD_ICMP_TYPE                      (1)
-#define NH_FLD_ICMP_CODE                      (NH_FLD_ICMP_TYPE << 1)
-#define NH_FLD_ICMP_CKSUM                     (NH_FLD_ICMP_TYPE << 2)
-#define NH_FLD_ICMP_ID                        (NH_FLD_ICMP_TYPE << 3)
-#define NH_FLD_ICMP_SQ_NUM                    (NH_FLD_ICMP_TYPE << 4)
-#define NH_FLD_ICMP_ALL_FIELDS                ((NH_FLD_ICMP_TYPE << 5) - 1)
+#define NH_FLD_ICMP_TYPE                       BIT(0)
+#define NH_FLD_ICMP_CODE                       BIT(1)
+#define NH_FLD_ICMP_CKSUM                      BIT(2)
+#define NH_FLD_ICMP_ID                         BIT(3)
+#define NH_FLD_ICMP_SQ_NUM                     BIT(4)
+#define NH_FLD_ICMP_ALL_FIELDS                 (BIT(5) - 1)
 
 /* IGMP fields */
-#define NH_FLD_IGMP_VERSION                   (1)
-#define NH_FLD_IGMP_TYPE                      (NH_FLD_IGMP_VERSION << 1)
-#define NH_FLD_IGMP_CKSUM                     (NH_FLD_IGMP_VERSION << 2)
-#define NH_FLD_IGMP_DATA                      (NH_FLD_IGMP_VERSION << 3)
-#define NH_FLD_IGMP_ALL_FIELDS                ((NH_FLD_IGMP_VERSION << 4) - 1)
+#define NH_FLD_IGMP_VERSION                    BIT(0)
+#define NH_FLD_IGMP_TYPE                       BIT(1)
+#define NH_FLD_IGMP_CKSUM                      BIT(2)
+#define NH_FLD_IGMP_DATA                       BIT(3)
+#define NH_FLD_IGMP_ALL_FIELDS                 (BIT(4) - 1)
 
 /* TCP fields */
-#define NH_FLD_TCP_PORT_SRC                   (1)
-#define NH_FLD_TCP_PORT_DST                   (NH_FLD_TCP_PORT_SRC << 1)
-#define NH_FLD_TCP_SEQ                        (NH_FLD_TCP_PORT_SRC << 2)
-#define NH_FLD_TCP_ACK                        (NH_FLD_TCP_PORT_SRC << 3)
-#define NH_FLD_TCP_OFFSET                     (NH_FLD_TCP_PORT_SRC << 4)
-#define NH_FLD_TCP_FLAGS                      (NH_FLD_TCP_PORT_SRC << 5)
-#define NH_FLD_TCP_WINDOW                     (NH_FLD_TCP_PORT_SRC << 6)
-#define NH_FLD_TCP_CKSUM                      (NH_FLD_TCP_PORT_SRC << 7)
-#define NH_FLD_TCP_URGPTR                     (NH_FLD_TCP_PORT_SRC << 8)
-#define NH_FLD_TCP_OPTS                       (NH_FLD_TCP_PORT_SRC << 9)
-#define NH_FLD_TCP_OPTS_COUNT                 (NH_FLD_TCP_PORT_SRC << 10)
-#define NH_FLD_TCP_ALL_FIELDS                 ((NH_FLD_TCP_PORT_SRC << 11) - 1)
+#define NH_FLD_TCP_PORT_SRC                    BIT(0)
+#define NH_FLD_TCP_PORT_DST                    BIT(1)
+#define NH_FLD_TCP_SEQ                         BIT(2)
+#define NH_FLD_TCP_ACK                         BIT(3)
+#define NH_FLD_TCP_OFFSET                      BIT(4)
+#define NH_FLD_TCP_FLAGS                       BIT(5)
+#define NH_FLD_TCP_WINDOW                      BIT(6)
+#define NH_FLD_TCP_CKSUM                       BIT(7)
+#define NH_FLD_TCP_URGPTR                      BIT(8)
+#define NH_FLD_TCP_OPTS                                BIT(9)
+#define NH_FLD_TCP_OPTS_COUNT                  BIT(10)
+#define NH_FLD_TCP_ALL_FIELDS                  (BIT(11) - 1)
 
 /* UDP fields */
-#define NH_FLD_UDP_PORT_SRC                   (1)
-#define NH_FLD_UDP_PORT_DST                   (NH_FLD_UDP_PORT_SRC << 1)
-#define NH_FLD_UDP_LEN                        (NH_FLD_UDP_PORT_SRC << 2)
-#define NH_FLD_UDP_CKSUM                      (NH_FLD_UDP_PORT_SRC << 3)
-#define NH_FLD_UDP_ALL_FIELDS                 ((NH_FLD_UDP_PORT_SRC << 4) - 1)
+#define NH_FLD_UDP_PORT_SRC                    BIT(0)
+#define NH_FLD_UDP_PORT_DST                    BIT(1)
+#define NH_FLD_UDP_LEN                         BIT(2)
+#define NH_FLD_UDP_CKSUM                       BIT(3)
+#define NH_FLD_UDP_ALL_FIELDS                  (BIT(4) - 1)
 
 /* UDP-lite fields */
-#define NH_FLD_UDP_LITE_PORT_SRC              (1)
-#define NH_FLD_UDP_LITE_PORT_DST              (NH_FLD_UDP_LITE_PORT_SRC << 1)
-#define NH_FLD_UDP_LITE_ALL_FIELDS \
-       ((NH_FLD_UDP_LITE_PORT_SRC << 2) - 1)
+#define NH_FLD_UDP_LITE_PORT_SRC               BIT(0)
+#define NH_FLD_UDP_LITE_PORT_DST               BIT(1)
+#define NH_FLD_UDP_LITE_ALL_FIELDS             (BIT(2) - 1)
 
 /* UDP-encap-ESP fields */
-#define NH_FLD_UDP_ENC_ESP_PORT_SRC         (1)
-#define NH_FLD_UDP_ENC_ESP_PORT_DST         (NH_FLD_UDP_ENC_ESP_PORT_SRC << 1)
-#define NH_FLD_UDP_ENC_ESP_LEN              (NH_FLD_UDP_ENC_ESP_PORT_SRC << 2)
-#define NH_FLD_UDP_ENC_ESP_CKSUM            (NH_FLD_UDP_ENC_ESP_PORT_SRC << 3)
-#define NH_FLD_UDP_ENC_ESP_SPI              (NH_FLD_UDP_ENC_ESP_PORT_SRC << 4)
-#define NH_FLD_UDP_ENC_ESP_SEQUENCE_NUM     (NH_FLD_UDP_ENC_ESP_PORT_SRC << 5)
-#define NH_FLD_UDP_ENC_ESP_ALL_FIELDS \
-       ((NH_FLD_UDP_ENC_ESP_PORT_SRC << 6) - 1)
+#define NH_FLD_UDP_ENC_ESP_PORT_SRC            BIT(0)
+#define NH_FLD_UDP_ENC_ESP_PORT_DST            BIT(1)
+#define NH_FLD_UDP_ENC_ESP_LEN                 BIT(2)
+#define NH_FLD_UDP_ENC_ESP_CKSUM               BIT(3)
+#define NH_FLD_UDP_ENC_ESP_SPI                 BIT(4)
+#define NH_FLD_UDP_ENC_ESP_SEQUENCE_NUM                BIT(5)
+#define NH_FLD_UDP_ENC_ESP_ALL_FIELDS          (BIT(6) - 1)
 
 /* SCTP fields */
-#define NH_FLD_SCTP_PORT_SRC                  (1)
-#define NH_FLD_SCTP_PORT_DST                  (NH_FLD_SCTP_PORT_SRC << 1)
-#define NH_FLD_SCTP_VER_TAG                   (NH_FLD_SCTP_PORT_SRC << 2)
-#define NH_FLD_SCTP_CKSUM                     (NH_FLD_SCTP_PORT_SRC << 3)
-#define NH_FLD_SCTP_ALL_FIELDS                ((NH_FLD_SCTP_PORT_SRC << 4) - 1)
+#define NH_FLD_SCTP_PORT_SRC                   BIT(0)
+#define NH_FLD_SCTP_PORT_DST                   BIT(1)
+#define NH_FLD_SCTP_VER_TAG                    BIT(2)
+#define NH_FLD_SCTP_CKSUM                      BIT(3)
+#define NH_FLD_SCTP_ALL_FIELDS                 (BIT(4) - 1)
 
 /* DCCP fields */
-#define NH_FLD_DCCP_PORT_SRC                  (1)
-#define NH_FLD_DCCP_PORT_DST                  (NH_FLD_DCCP_PORT_SRC << 1)
-#define NH_FLD_DCCP_ALL_FIELDS                ((NH_FLD_DCCP_PORT_SRC << 2) - 1)
+#define NH_FLD_DCCP_PORT_SRC                   BIT(0)
+#define NH_FLD_DCCP_PORT_DST                   BIT(1)
+#define NH_FLD_DCCP_ALL_FIELDS                 (BIT(2) - 1)
 
 /* IPHC fields */
-#define NH_FLD_IPHC_CID                       (1)
-#define NH_FLD_IPHC_CID_TYPE                  (NH_FLD_IPHC_CID << 1)
-#define NH_FLD_IPHC_HCINDEX                   (NH_FLD_IPHC_CID << 2)
-#define NH_FLD_IPHC_GEN                       (NH_FLD_IPHC_CID << 3)
-#define NH_FLD_IPHC_D_BIT                     (NH_FLD_IPHC_CID << 4)
-#define NH_FLD_IPHC_ALL_FIELDS                ((NH_FLD_IPHC_CID << 5) - 1)
+#define NH_FLD_IPHC_CID                                BIT(0)
+#define NH_FLD_IPHC_CID_TYPE                   BIT(1)
+#define NH_FLD_IPHC_HCINDEX                    BIT(2)
+#define NH_FLD_IPHC_GEN                                BIT(3)
+#define NH_FLD_IPHC_D_BIT                      BIT(4)
+#define NH_FLD_IPHC_ALL_FIELDS                 (BIT(5) - 1)
 
 /* SCTP fields */
-#define NH_FLD_SCTP_CHUNK_DATA_TYPE           (1)
-#define NH_FLD_SCTP_CHUNK_DATA_FLAGS          (NH_FLD_SCTP_CHUNK_DATA_TYPE << 1)
-#define NH_FLD_SCTP_CHUNK_DATA_LENGTH         (NH_FLD_SCTP_CHUNK_DATA_TYPE << 2)
-#define NH_FLD_SCTP_CHUNK_DATA_TSN            (NH_FLD_SCTP_CHUNK_DATA_TYPE << 3)
-#define NH_FLD_SCTP_CHUNK_DATA_STREAM_ID      (NH_FLD_SCTP_CHUNK_DATA_TYPE << 4)
-#define NH_FLD_SCTP_CHUNK_DATA_STREAM_SQN     (NH_FLD_SCTP_CHUNK_DATA_TYPE << 5)
-#define NH_FLD_SCTP_CHUNK_DATA_PAYLOAD_PID    (NH_FLD_SCTP_CHUNK_DATA_TYPE << 6)
-#define NH_FLD_SCTP_CHUNK_DATA_UNORDERED      (NH_FLD_SCTP_CHUNK_DATA_TYPE << 7)
-#define NH_FLD_SCTP_CHUNK_DATA_BEGGINING      (NH_FLD_SCTP_CHUNK_DATA_TYPE << 8)
-#define NH_FLD_SCTP_CHUNK_DATA_END            (NH_FLD_SCTP_CHUNK_DATA_TYPE << 9)
-#define NH_FLD_SCTP_CHUNK_DATA_ALL_FIELDS \
-       ((NH_FLD_SCTP_CHUNK_DATA_TYPE << 10) - 1)
+#define NH_FLD_SCTP_CHUNK_DATA_TYPE            BIT(0)
+#define NH_FLD_SCTP_CHUNK_DATA_FLAGS           BIT(1)
+#define NH_FLD_SCTP_CHUNK_DATA_LENGTH          BIT(2)
+#define NH_FLD_SCTP_CHUNK_DATA_TSN             BIT(3)
+#define NH_FLD_SCTP_CHUNK_DATA_STREAM_ID       BIT(4)
+#define NH_FLD_SCTP_CHUNK_DATA_STREAM_SQN      BIT(5)
+#define NH_FLD_SCTP_CHUNK_DATA_PAYLOAD_PID     BIT(6)
+#define NH_FLD_SCTP_CHUNK_DATA_UNORDERED       BIT(7)
+#define NH_FLD_SCTP_CHUNK_DATA_BEGGINING       BIT(8)
+#define NH_FLD_SCTP_CHUNK_DATA_END             BIT(9)
+#define NH_FLD_SCTP_CHUNK_DATA_ALL_FIELDS      (BIT(10) - 1)
 
 /* L2TPV2 fields */
-#define NH_FLD_L2TPV2_TYPE_BIT                (1)
-#define NH_FLD_L2TPV2_LENGTH_BIT              (NH_FLD_L2TPV2_TYPE_BIT << 1)
-#define NH_FLD_L2TPV2_SEQUENCE_BIT            (NH_FLD_L2TPV2_TYPE_BIT << 2)
-#define NH_FLD_L2TPV2_OFFSET_BIT              (NH_FLD_L2TPV2_TYPE_BIT << 3)
-#define NH_FLD_L2TPV2_PRIORITY_BIT            (NH_FLD_L2TPV2_TYPE_BIT << 4)
-#define NH_FLD_L2TPV2_VERSION                 (NH_FLD_L2TPV2_TYPE_BIT << 5)
-#define NH_FLD_L2TPV2_LEN                     (NH_FLD_L2TPV2_TYPE_BIT << 6)
-#define NH_FLD_L2TPV2_TUNNEL_ID               (NH_FLD_L2TPV2_TYPE_BIT << 7)
-#define NH_FLD_L2TPV2_SESSION_ID              (NH_FLD_L2TPV2_TYPE_BIT << 8)
-#define NH_FLD_L2TPV2_NS                      (NH_FLD_L2TPV2_TYPE_BIT << 9)
-#define NH_FLD_L2TPV2_NR                      (NH_FLD_L2TPV2_TYPE_BIT << 10)
-#define NH_FLD_L2TPV2_OFFSET_SIZE             (NH_FLD_L2TPV2_TYPE_BIT << 11)
-#define NH_FLD_L2TPV2_FIRST_BYTE              (NH_FLD_L2TPV2_TYPE_BIT << 12)
-#define NH_FLD_L2TPV2_ALL_FIELDS \
-       ((NH_FLD_L2TPV2_TYPE_BIT << 13) - 1)
+#define NH_FLD_L2TPV2_TYPE_BIT                 BIT(0)
+#define NH_FLD_L2TPV2_LENGTH_BIT               BIT(1)
+#define NH_FLD_L2TPV2_SEQUENCE_BIT             BIT(2)
+#define NH_FLD_L2TPV2_OFFSET_BIT               BIT(3)
+#define NH_FLD_L2TPV2_PRIORITY_BIT             BIT(4)
+#define NH_FLD_L2TPV2_VERSION                  BIT(5)
+#define NH_FLD_L2TPV2_LEN                      BIT(6)
+#define NH_FLD_L2TPV2_TUNNEL_ID                        BIT(7)
+#define NH_FLD_L2TPV2_SESSION_ID               BIT(8)
+#define NH_FLD_L2TPV2_NS                       BIT(9)
+#define NH_FLD_L2TPV2_NR                       BIT(10)
+#define NH_FLD_L2TPV2_OFFSET_SIZE              BIT(11)
+#define NH_FLD_L2TPV2_FIRST_BYTE               BIT(12)
+#define NH_FLD_L2TPV2_ALL_FIELDS               (BIT(13) - 1)
 
 /* L2TPV3 fields */
-#define NH_FLD_L2TPV3_CTRL_TYPE_BIT           (1)
-#define NH_FLD_L2TPV3_CTRL_LENGTH_BIT         (NH_FLD_L2TPV3_CTRL_TYPE_BIT << 1)
-#define NH_FLD_L2TPV3_CTRL_SEQUENCE_BIT       (NH_FLD_L2TPV3_CTRL_TYPE_BIT << 2)
-#define NH_FLD_L2TPV3_CTRL_VERSION            (NH_FLD_L2TPV3_CTRL_TYPE_BIT << 3)
-#define NH_FLD_L2TPV3_CTRL_LENGTH             (NH_FLD_L2TPV3_CTRL_TYPE_BIT << 4)
-#define NH_FLD_L2TPV3_CTRL_CONTROL            (NH_FLD_L2TPV3_CTRL_TYPE_BIT << 5)
-#define NH_FLD_L2TPV3_CTRL_SENT               (NH_FLD_L2TPV3_CTRL_TYPE_BIT << 6)
-#define NH_FLD_L2TPV3_CTRL_RECV               (NH_FLD_L2TPV3_CTRL_TYPE_BIT << 7)
-#define NH_FLD_L2TPV3_CTRL_FIRST_BYTE         (NH_FLD_L2TPV3_CTRL_TYPE_BIT << 8)
-#define NH_FLD_L2TPV3_CTRL_ALL_FIELDS \
-       ((NH_FLD_L2TPV3_CTRL_TYPE_BIT << 9) - 1)
-
-#define NH_FLD_L2TPV3_SESS_TYPE_BIT           (1)
-#define NH_FLD_L2TPV3_SESS_VERSION            (NH_FLD_L2TPV3_SESS_TYPE_BIT << 1)
-#define NH_FLD_L2TPV3_SESS_ID                 (NH_FLD_L2TPV3_SESS_TYPE_BIT << 2)
-#define NH_FLD_L2TPV3_SESS_COOKIE             (NH_FLD_L2TPV3_SESS_TYPE_BIT << 3)
-#define NH_FLD_L2TPV3_SESS_ALL_FIELDS \
-       ((NH_FLD_L2TPV3_SESS_TYPE_BIT << 4) - 1)
+#define NH_FLD_L2TPV3_CTRL_TYPE_BIT            BIT(0)
+#define NH_FLD_L2TPV3_CTRL_LENGTH_BIT          BIT(1)
+#define NH_FLD_L2TPV3_CTRL_SEQUENCE_BIT                BIT(2)
+#define NH_FLD_L2TPV3_CTRL_VERSION             BIT(3)
+#define NH_FLD_L2TPV3_CTRL_LENGTH              BIT(4)
+#define NH_FLD_L2TPV3_CTRL_CONTROL             BIT(5)
+#define NH_FLD_L2TPV3_CTRL_SENT                        BIT(6)
+#define NH_FLD_L2TPV3_CTRL_RECV                        BIT(7)
+#define NH_FLD_L2TPV3_CTRL_FIRST_BYTE          BIT(8)
+#define NH_FLD_L2TPV3_CTRL_ALL_FIELDS          (BIT(9) - 1)
+
+#define NH_FLD_L2TPV3_SESS_TYPE_BIT            BIT(0)
+#define NH_FLD_L2TPV3_SESS_VERSION             BIT(1)
+#define NH_FLD_L2TPV3_SESS_ID                  BIT(2)
+#define NH_FLD_L2TPV3_SESS_COOKIE              BIT(3)
+#define NH_FLD_L2TPV3_SESS_ALL_FIELDS          (BIT(4) - 1)
 
 /* PPP fields */
-#define NH_FLD_PPP_PID                        (1)
-#define NH_FLD_PPP_COMPRESSED                 (NH_FLD_PPP_PID << 1)
-#define NH_FLD_PPP_ALL_FIELDS                 ((NH_FLD_PPP_PID << 2) - 1)
+#define NH_FLD_PPP_PID                         BIT(0)
+#define NH_FLD_PPP_COMPRESSED                  BIT(1)
+#define NH_FLD_PPP_ALL_FIELDS                  (BIT(2) - 1)
 
 /* PPPoE fields */
-#define NH_FLD_PPPOE_VER                      (1)
-#define NH_FLD_PPPOE_TYPE                     (NH_FLD_PPPOE_VER << 1)
-#define NH_FLD_PPPOE_CODE                     (NH_FLD_PPPOE_VER << 2)
-#define NH_FLD_PPPOE_SID                      (NH_FLD_PPPOE_VER << 3)
-#define NH_FLD_PPPOE_LEN                      (NH_FLD_PPPOE_VER << 4)
-#define NH_FLD_PPPOE_SESSION                  (NH_FLD_PPPOE_VER << 5)
-#define NH_FLD_PPPOE_PID                      (NH_FLD_PPPOE_VER << 6)
-#define NH_FLD_PPPOE_ALL_FIELDS               ((NH_FLD_PPPOE_VER << 7) - 1)
+#define NH_FLD_PPPOE_VER                       BIT(0)
+#define NH_FLD_PPPOE_TYPE                      BIT(1)
+#define NH_FLD_PPPOE_CODE                      BIT(2)
+#define NH_FLD_PPPOE_SID                       BIT(3)
+#define NH_FLD_PPPOE_LEN                       BIT(4)
+#define NH_FLD_PPPOE_SESSION                   BIT(5)
+#define NH_FLD_PPPOE_PID                       BIT(6)
+#define NH_FLD_PPPOE_ALL_FIELDS                        (BIT(7) - 1)
 
 /* PPP-Mux fields */
-#define NH_FLD_PPPMUX_PID                     (1)
-#define NH_FLD_PPPMUX_CKSUM                   (NH_FLD_PPPMUX_PID << 1)
-#define NH_FLD_PPPMUX_COMPRESSED              (NH_FLD_PPPMUX_PID << 2)
-#define NH_FLD_PPPMUX_ALL_FIELDS              ((NH_FLD_PPPMUX_PID << 3) - 1)
+#define NH_FLD_PPPMUX_PID                      BIT(0)
+#define NH_FLD_PPPMUX_CKSUM                    BIT(1)
+#define NH_FLD_PPPMUX_COMPRESSED               BIT(2)
+#define NH_FLD_PPPMUX_ALL_FIELDS               (BIT(3) - 1)
 
 /* PPP-Mux sub-frame fields */
-#define NH_FLD_PPPMUX_SUBFRM_PFF            (1)
-#define NH_FLD_PPPMUX_SUBFRM_LXT            (NH_FLD_PPPMUX_SUBFRM_PFF << 1)
-#define NH_FLD_PPPMUX_SUBFRM_LEN            (NH_FLD_PPPMUX_SUBFRM_PFF << 2)
-#define NH_FLD_PPPMUX_SUBFRM_PID            (NH_FLD_PPPMUX_SUBFRM_PFF << 3)
-#define NH_FLD_PPPMUX_SUBFRM_USE_PID        (NH_FLD_PPPMUX_SUBFRM_PFF << 4)
-#define NH_FLD_PPPMUX_SUBFRM_ALL_FIELDS \
-       ((NH_FLD_PPPMUX_SUBFRM_PFF << 5) - 1)
+#define NH_FLD_PPPMUX_SUBFRM_PFF               BIT(0)
+#define NH_FLD_PPPMUX_SUBFRM_LXT               BIT(1)
+#define NH_FLD_PPPMUX_SUBFRM_LEN               BIT(2)
+#define NH_FLD_PPPMUX_SUBFRM_PID               BIT(3)
+#define NH_FLD_PPPMUX_SUBFRM_USE_PID           BIT(4)
+#define NH_FLD_PPPMUX_SUBFRM_ALL_FIELDS                (BIT(5) - 1)
 
 /* LLC fields */
-#define NH_FLD_LLC_DSAP                       (1)
-#define NH_FLD_LLC_SSAP                       (NH_FLD_LLC_DSAP << 1)
-#define NH_FLD_LLC_CTRL                       (NH_FLD_LLC_DSAP << 2)
-#define NH_FLD_LLC_ALL_FIELDS                 ((NH_FLD_LLC_DSAP << 3) - 1)
+#define NH_FLD_LLC_DSAP                                BIT(0)
+#define NH_FLD_LLC_SSAP                                BIT(1)
+#define NH_FLD_LLC_CTRL                                BIT(2)
+#define NH_FLD_LLC_ALL_FIELDS                  (BIT(3) - 1)
 
 /* NLPID fields */
-#define NH_FLD_NLPID_NLPID                    (1)
-#define NH_FLD_NLPID_ALL_FIELDS               ((NH_FLD_NLPID_NLPID << 1) - 1)
+#define NH_FLD_NLPID_NLPID                     BIT(0)
+#define NH_FLD_NLPID_ALL_FIELDS                        (BIT(1) - 1)
 
 /* SNAP fields */
-#define NH_FLD_SNAP_OUI                       (1)
-#define NH_FLD_SNAP_PID                       (NH_FLD_SNAP_OUI << 1)
-#define NH_FLD_SNAP_ALL_FIELDS                ((NH_FLD_SNAP_OUI << 2) - 1)
+#define NH_FLD_SNAP_OUI                                BIT(0)
+#define NH_FLD_SNAP_PID                                BIT(1)
+#define NH_FLD_SNAP_ALL_FIELDS                 (BIT(2) - 1)
 
 /* LLC SNAP fields */
-#define NH_FLD_LLC_SNAP_TYPE                  (1)
-#define NH_FLD_LLC_SNAP_ALL_FIELDS            ((NH_FLD_LLC_SNAP_TYPE << 1) - 1)
+#define NH_FLD_LLC_SNAP_TYPE                   BIT(0)
+#define NH_FLD_LLC_SNAP_ALL_FIELDS             (BIT(1) - 1)
 
 /* ARP fields */
-#define NH_FLD_ARP_HTYPE                      (1)
-#define NH_FLD_ARP_PTYPE                      (NH_FLD_ARP_HTYPE << 1)
-#define NH_FLD_ARP_HLEN                       (NH_FLD_ARP_HTYPE << 2)
-#define NH_FLD_ARP_PLEN                       (NH_FLD_ARP_HTYPE << 3)
-#define NH_FLD_ARP_OPER                       (NH_FLD_ARP_HTYPE << 4)
-#define NH_FLD_ARP_SHA                        (NH_FLD_ARP_HTYPE << 5)
-#define NH_FLD_ARP_SPA                        (NH_FLD_ARP_HTYPE << 6)
-#define NH_FLD_ARP_THA                        (NH_FLD_ARP_HTYPE << 7)
-#define NH_FLD_ARP_TPA                        (NH_FLD_ARP_HTYPE << 8)
-#define NH_FLD_ARP_ALL_FIELDS                 ((NH_FLD_ARP_HTYPE << 9) - 1)
+#define NH_FLD_ARP_HTYPE                       BIT(0)
+#define NH_FLD_ARP_PTYPE                       BIT(1)
+#define NH_FLD_ARP_HLEN                                BIT(2)
+#define NH_FLD_ARP_PLEN                                BIT(3)
+#define NH_FLD_ARP_OPER                                BIT(4)
+#define NH_FLD_ARP_SHA                         BIT(5)
+#define NH_FLD_ARP_SPA                         BIT(6)
+#define NH_FLD_ARP_THA                         BIT(7)
+#define NH_FLD_ARP_TPA                         BIT(8)
+#define NH_FLD_ARP_ALL_FIELDS                  (BIT(9) - 1)
 
 /* RFC2684 fields */
-#define NH_FLD_RFC2684_LLC                    (1)
-#define NH_FLD_RFC2684_NLPID                  (NH_FLD_RFC2684_LLC << 1)
-#define NH_FLD_RFC2684_OUI                    (NH_FLD_RFC2684_LLC << 2)
-#define NH_FLD_RFC2684_PID                    (NH_FLD_RFC2684_LLC << 3)
-#define NH_FLD_RFC2684_VPN_OUI                (NH_FLD_RFC2684_LLC << 4)
-#define NH_FLD_RFC2684_VPN_IDX                (NH_FLD_RFC2684_LLC << 5)
-#define NH_FLD_RFC2684_ALL_FIELDS             ((NH_FLD_RFC2684_LLC << 6) - 1)
+#define NH_FLD_RFC2684_LLC                     BIT(0)
+#define NH_FLD_RFC2684_NLPID                   BIT(1)
+#define NH_FLD_RFC2684_OUI                     BIT(2)
+#define NH_FLD_RFC2684_PID                     BIT(3)
+#define NH_FLD_RFC2684_VPN_OUI                 BIT(4)
+#define NH_FLD_RFC2684_VPN_IDX                 BIT(5)
+#define NH_FLD_RFC2684_ALL_FIELDS              (BIT(6) - 1)
 
 /* User defined fields */
-#define NH_FLD_USER_DEFINED_SRCPORT           (1)
-#define NH_FLD_USER_DEFINED_PCDID             (NH_FLD_USER_DEFINED_SRCPORT << 1)
-#define NH_FLD_USER_DEFINED_ALL_FIELDS \
-       ((NH_FLD_USER_DEFINED_SRCPORT << 2) - 1)
+#define NH_FLD_USER_DEFINED_SRCPORT            BIT(0)
+#define NH_FLD_USER_DEFINED_PCDID              BIT(1)
+#define NH_FLD_USER_DEFINED_ALL_FIELDS         (BIT(2) - 1)
 
 /* Payload fields */
-#define NH_FLD_PAYLOAD_BUFFER                 (1)
-#define NH_FLD_PAYLOAD_SIZE                   (NH_FLD_PAYLOAD_BUFFER << 1)
-#define NH_FLD_MAX_FRM_SIZE                   (NH_FLD_PAYLOAD_BUFFER << 2)
-#define NH_FLD_MIN_FRM_SIZE                   (NH_FLD_PAYLOAD_BUFFER << 3)
-#define NH_FLD_PAYLOAD_TYPE                   (NH_FLD_PAYLOAD_BUFFER << 4)
-#define NH_FLD_FRAME_SIZE                     (NH_FLD_PAYLOAD_BUFFER << 5)
-#define NH_FLD_PAYLOAD_ALL_FIELDS             ((NH_FLD_PAYLOAD_BUFFER << 6) - 1)
+#define NH_FLD_PAYLOAD_BUFFER                  BIT(0)
+#define NH_FLD_PAYLOAD_SIZE                    BIT(1)
+#define NH_FLD_MAX_FRM_SIZE                    BIT(2)
+#define NH_FLD_MIN_FRM_SIZE                    BIT(3)
+#define NH_FLD_PAYLOAD_TYPE                    BIT(4)
+#define NH_FLD_FRAME_SIZE                      BIT(5)
+#define NH_FLD_PAYLOAD_ALL_FIELDS              (BIT(6) - 1)
 
 /* GRE fields */
-#define NH_FLD_GRE_TYPE                       (1)
-#define NH_FLD_GRE_ALL_FIELDS                 ((NH_FLD_GRE_TYPE << 1) - 1)
+#define NH_FLD_GRE_TYPE                                BIT(0)
+#define NH_FLD_GRE_ALL_FIELDS                  (BIT(1) - 1)
 
 /* MINENCAP fields */
-#define NH_FLD_MINENCAP_SRC_IP                (1)
-#define NH_FLD_MINENCAP_DST_IP                (NH_FLD_MINENCAP_SRC_IP << 1)
-#define NH_FLD_MINENCAP_TYPE                  (NH_FLD_MINENCAP_SRC_IP << 2)
-#define NH_FLD_MINENCAP_ALL_FIELDS \
-       ((NH_FLD_MINENCAP_SRC_IP << 3) - 1)
+#define NH_FLD_MINENCAP_SRC_IP                 BIT(0)
+#define NH_FLD_MINENCAP_DST_IP                 BIT(1)
+#define NH_FLD_MINENCAP_TYPE                   BIT(2)
+#define NH_FLD_MINENCAP_ALL_FIELDS             (BIT(3) - 1)
 
 /* IPSEC AH fields */
-#define NH_FLD_IPSEC_AH_SPI                   (1)
-#define NH_FLD_IPSEC_AH_NH                    (NH_FLD_IPSEC_AH_SPI << 1)
-#define NH_FLD_IPSEC_AH_ALL_FIELDS            ((NH_FLD_IPSEC_AH_SPI << 2) - 1)
+#define NH_FLD_IPSEC_AH_SPI                    BIT(0)
+#define NH_FLD_IPSEC_AH_NH                     BIT(1)
+#define NH_FLD_IPSEC_AH_ALL_FIELDS             (BIT(2) - 1)
 
 /* IPSEC ESP fields */
-#define NH_FLD_IPSEC_ESP_SPI                  (1)
-#define NH_FLD_IPSEC_ESP_SEQUENCE_NUM         (NH_FLD_IPSEC_ESP_SPI << 1)
-#define NH_FLD_IPSEC_ESP_ALL_FIELDS           ((NH_FLD_IPSEC_ESP_SPI << 2) - 1)
+#define NH_FLD_IPSEC_ESP_SPI                   BIT(0)
+#define NH_FLD_IPSEC_ESP_SEQUENCE_NUM          BIT(1)
+#define NH_FLD_IPSEC_ESP_ALL_FIELDS            (BIT(2) - 1)
 
 
 /* MPLS fields */
-#define NH_FLD_MPLS_LABEL_STACK               (1)
-#define NH_FLD_MPLS_LABEL_STACK_ALL_FIELDS \
-       ((NH_FLD_MPLS_LABEL_STACK << 1) - 1)
+#define NH_FLD_MPLS_LABEL_STACK                        BIT(0)
+#define NH_FLD_MPLS_LABEL_STACK_ALL_FIELDS     (BIT(1) - 1)
 
 /* MACSEC fields */
-#define NH_FLD_MACSEC_SECTAG                  (1)
-#define NH_FLD_MACSEC_ALL_FIELDS              ((NH_FLD_MACSEC_SECTAG << 1) - 1)
+#define NH_FLD_MACSEC_SECTAG                   BIT(0)
+#define NH_FLD_MACSEC_ALL_FIELDS               (BIT(1) - 1)
 
 /* GTP fields */
-#define NH_FLD_GTP_TEID                       (1)
+#define NH_FLD_GTP_TEID                                BIT(0)
 
 /* Supported protocols */
 enum net_prot {