xref: /dpdk/drivers/net/tap/tap_rss.h (revision 2bb2f755b78d50687e0dd414a5f296bce6824c84)
1036d721aSOphir Munk /* SPDX-License-Identifier: BSD-3-Clause
25feecc57SShahaf Shuler  * Copyright 2017 Mellanox Technologies, Ltd
3036d721aSOphir Munk  */
4036d721aSOphir Munk 
5036d721aSOphir Munk #ifndef _TAP_RSS_H_
6036d721aSOphir Munk #define _TAP_RSS_H_
7036d721aSOphir Munk 
8*2bb2f755SStephen Hemminger /* Size of the map from BPF classid to queue table */
9*2bb2f755SStephen Hemminger #ifndef TAP_RSS_MAX
10*2bb2f755SStephen Hemminger #define TAP_RSS_MAX	32
11036d721aSOphir Munk #endif
12036d721aSOphir Munk 
13*2bb2f755SStephen Hemminger /* Standard Toeplitz hash key size */
148d54ede7SOphir Munk #define TAP_RSS_HASH_KEY_SIZE 40
158d54ede7SOphir Munk 
16036d721aSOphir Munk /* hashed fields for RSS */
17036d721aSOphir Munk enum hash_field {
18036d721aSOphir Munk 	HASH_FIELD_IPV4_L3,	/* IPv4 src/dst addr */
19036d721aSOphir Munk 	HASH_FIELD_IPV4_L3_L4,	/* IPv4 src/dst addr + L4 src/dst ports */
20036d721aSOphir Munk 	HASH_FIELD_IPV6_L3,	/* IPv6 src/dst addr */
21036d721aSOphir Munk 	HASH_FIELD_IPV6_L3_L4,	/* IPv6 src/dst addr + L4 src/dst ports */
22036d721aSOphir Munk };
23036d721aSOphir Munk 
24036d721aSOphir Munk struct rss_key {
25036d721aSOphir Munk 	__u32 hash_fields;
2636d4adfaSStephen Hemminger 	__u8 key[TAP_RSS_HASH_KEY_SIZE];
27036d721aSOphir Munk 	__u32 nb_queues;
2836d4adfaSStephen Hemminger 	__u32 queues[TAP_MAX_QUEUES];
294e679a5fSStephen Hemminger } __attribute__((packed));
30036d721aSOphir Munk 
31036d721aSOphir Munk #endif /* _TAP_RSS_H_ */
32