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