xref: /dpdk/drivers/net/tap/tap_rss.h (revision 89f0711f9ddfb5822da9d34f384b92f72a61c4dc)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright 2017 Mellanox Technologies, Ltd.
3  */
4 
5 #ifndef _TAP_RSS_H_
6 #define _TAP_RSS_H_
7 
8 #ifndef TAP_MAX_QUEUES
9 #define TAP_MAX_QUEUES 16
10 #endif
11 
12 /* hashed fields for RSS */
13 enum hash_field {
14 	HASH_FIELD_IPV4_L3,	/* IPv4 src/dst addr */
15 	HASH_FIELD_IPV4_L3_L4,	/* IPv4 src/dst addr + L4 src/dst ports */
16 	HASH_FIELD_IPV6_L3,	/* IPv6 src/dst addr */
17 	HASH_FIELD_IPV6_L3_L4,	/* IPv6 src/dst addr + L4 src/dst ports */
18 	HASH_FIELD_L2_SRC,	/* Ethernet src addr */
19 	HASH_FIELD_L2_DST,	/* Ethernet dst addr */
20 	HASH_FIELD_L3_SRC,	/* L3 src addr */
21 	HASH_FIELD_L3_DST,	/* L3 dst addr */
22 	HASH_FIELD_L4_SRC,	/* TCP/UDP src ports */
23 	HASH_FIELD_L4_DST,	/* TCP/UDP dst ports */
24 };
25 
26 struct rss_key {
27 	 __u8 key[128];
28 	__u32 hash_fields;
29 	__u32 key_size;
30 	__u32 queues[TAP_MAX_QUEUES];
31 	__u32 nb_queues;
32 } __attribute__((packed));
33 
34 #endif /* _TAP_RSS_H_ */
35