net: add rte prefix to IP defines
[dpdk.git] / drivers / net / tap / tap_bpf_program.c
index 848c50b..531569b 100644 (file)
@@ -1,5 +1,5 @@
 /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0
- * Copyright 2017 Mellanox Technologies, Ltd.
+ * Copyright 2017 Mellanox Technologies, Ltd
  */
 
 #include <stdint.h>
@@ -19,7 +19,7 @@
 #include "tap_rss.h"
 
 /** Create IPv4 address */
-#define IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
+#define RTE_IPv4(a, b, c, d) ((__u32)(((a) & 0xff) << 24) | \
                (((b) & 0xff) << 16) | \
                (((c) & 0xff) << 8)  | \
                ((d) & 0xff))
                ((b) & 0xff))
 
 /*
- * The queue number is offset by 1, to distinguish packets that have
- * gone through this rule (skb->cb[1] != 0) from others.
+ * The queue number is offset by a unique QUEUE_OFFSET, to distinguish
+ * packets that have gone through this rule (skb->cb[1] != 0) from others.
  */
-#define QUEUE_OFFSET           1
+#define QUEUE_OFFSET           0x7cafe800
 #define PIN_GLOBAL_NS          2
 
 #define KEY_IDX                        0
 #define BPF_MAP_ID_KEY 1
 
-struct vlan_hdr {
+struct rte_vlan_hdr {
        __be16 proto;
        __be16 tci;
 };
@@ -63,6 +63,9 @@ match_q(struct __sk_buff *skb)
 
        if (queue != match_queue)
                return TC_ACT_OK;
+
+       /* queue match */
+       skb->cb[1] = 0;
        return TC_ACT_UNSPEC;
 }
 
@@ -81,7 +84,7 @@ struct ipv6_l3_l4_tuple {
        __u16       sport;
 } __attribute__((packed));
 
-static const __u8 def_rss_key[] = {
+static const __u8 def_rss_key[TAP_RSS_HASH_KEY_SIZE] = {
        0xd1, 0x81, 0xc6, 0x2c,
        0xf7, 0xf4, 0xdb, 0x5b,
        0x19, 0x83, 0xa2, 0xfc,
@@ -103,7 +106,7 @@ rte_softrss_be(const __u32 *input_tuple, const uint8_t *rss_key,
        for (j = 0; j < input_len; j++) {
 #pragma unroll
                for (i = 0; i < 32; i++) {
-                       if (input_tuple[j] & (1 << (31 - i))) {
+                       if (input_tuple[j] & (1U << (31 - i))) {
                                hash ^= ((const __u32 *)def_rss_key)[j] << i |
                                (__u32)((uint64_t)
                                (((const __u32 *)def_rss_key)[j + 1])
@@ -138,12 +141,12 @@ rss_l3_l4(struct __sk_buff *skb)
 
        /* Get correct proto for 802.1ad */
        if (skb->vlan_present && skb->vlan_proto == htons(ETH_P_8021AD)) {
-               if (data + ETH_ALEN * 2 + sizeof(struct vlan_hdr) +
+               if (data + ETH_ALEN * 2 + sizeof(struct rte_vlan_hdr) +
                    sizeof(proto) > data_end)
                        return TC_ACT_OK;
                proto = *(__u16 *)(data + ETH_ALEN * 2 +
-                                  sizeof(struct vlan_hdr));
-               off += sizeof(struct vlan_hdr);
+                                  sizeof(struct rte_vlan_hdr));
+               off += sizeof(struct rte_vlan_hdr);
        }
 
        if (proto == htons(ETH_P_IP)) {
@@ -154,11 +157,11 @@ rss_l3_l4(struct __sk_buff *skb)
                __u8 *src_dst_addr = data + off + offsetof(struct iphdr, saddr);
                __u8 *src_dst_port = data + off + sizeof(struct iphdr);
                struct ipv4_l3_l4_tuple v4_tuple = {
-                       .src_addr = IPv4(*(src_dst_addr + 0),
+                       .src_addr = RTE_IPv4(*(src_dst_addr + 0),
                                        *(src_dst_addr + 1),
                                        *(src_dst_addr + 2),
                                        *(src_dst_addr + 3)),
-                       .dst_addr = IPv4(*(src_dst_addr + 4),
+                       .dst_addr = RTE_IPv4(*(src_dst_addr + 4),
                                        *(src_dst_addr + 5),
                                        *(src_dst_addr + 6),
                                        *(src_dst_addr + 7)),