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