numam-dpdk/drivers/net/tap/tap_rss.h

41 lines
1.0 KiB
C
Raw Normal View History

/* 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
/* Fixed RSS hash key size in bytes. */
#define TAP_RSS_HASH_KEY_SIZE 40
/* Supported RSS */
#define TAP_RSS_HF_MASK (~(ETH_RSS_IP | ETH_RSS_UDP | ETH_RSS_TCP))
/* 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_ */