New upstream version 18.02
[deb_dpdk.git] / drivers / net / tap / tap_rss.h
diff --git a/drivers/net/tap/tap_rss.h b/drivers/net/tap/tap_rss.h
new file mode 100644 (file)
index 0000000..3bb0d14
--- /dev/null
@@ -0,0 +1,34 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright 2017 Mellanox Technologies, Ltd.
+ */
+
+#ifndef _TAP_RSS_H_
+#define _TAP_RSS_H_
+
+#ifndef TAP_MAX_QUEUES
+#define TAP_MAX_QUEUES 16
+#endif
+
+/* hashed fields for RSS */
+enum hash_field {
+       HASH_FIELD_IPV4_L3,     /* IPv4 src/dst addr */
+       HASH_FIELD_IPV4_L3_L4,  /* IPv4 src/dst addr + L4 src/dst ports */
+       HASH_FIELD_IPV6_L3,     /* IPv6 src/dst addr */
+       HASH_FIELD_IPV6_L3_L4,  /* IPv6 src/dst addr + L4 src/dst ports */
+       HASH_FIELD_L2_SRC,      /* Ethernet src addr */
+       HASH_FIELD_L2_DST,      /* Ethernet dst addr */
+       HASH_FIELD_L3_SRC,      /* L3 src addr */
+       HASH_FIELD_L3_DST,      /* L3 dst addr */
+       HASH_FIELD_L4_SRC,      /* TCP/UDP src ports */
+       HASH_FIELD_L4_DST,      /* TCP/UDP dst ports */
+};
+
+struct rss_key {
+        __u8 key[128];
+       __u32 hash_fields;
+       __u32 key_size;
+       __u32 queues[TAP_MAX_QUEUES];
+       __u32 nb_queues;
+} __attribute__((packed));
+
+#endif /* _TAP_RSS_H_ */