sfc: Generalise packet hash lookup to support EF10 RX prefix
EF10 uses an entirely different RX prefix format from Falcon-arch. Extend struct efx_nic_type to describe this. [bwh: Also replace the magic numbers used for the Falcon-arch RX prefix] Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
This commit is contained in:
parent
64a27752dc
commit
43a3739d55
6 changed files with 28 additions and 13 deletions
|
@ -663,6 +663,9 @@ struct vfdi_status;
|
|||
* @rx_buffer_order: Order (log2) of number of pages for each RX buffer
|
||||
* @rx_buffer_truesize: Amortised allocation size of an RX buffer,
|
||||
* for use in sk_buff::truesize
|
||||
* @rx_prefix_size: Size of RX prefix before packet data
|
||||
* @rx_packet_hash_offset: Offset of RX flow hash from start of packet data
|
||||
* (valid only if @rx_prefix_size != 0; always negative)
|
||||
* @rx_hash_key: Toeplitz hash key for RSS
|
||||
* @rx_indir_table: Indirection table for RSS
|
||||
* @rx_scatter: Scatter mode enabled for receives
|
||||
|
@ -793,6 +796,8 @@ struct efx_nic {
|
|||
unsigned int rx_page_buf_step;
|
||||
unsigned int rx_bufs_per_page;
|
||||
unsigned int rx_pages_per_batch;
|
||||
unsigned int rx_prefix_size;
|
||||
int rx_packet_hash_offset;
|
||||
u8 rx_hash_key[40];
|
||||
u32 rx_indir_table[128];
|
||||
bool rx_scatter;
|
||||
|
@ -1009,7 +1014,8 @@ struct efx_mtd_partition {
|
|||
* @evq_ptr_tbl_base: Event queue pointer table base address
|
||||
* @evq_rptr_tbl_base: Event queue read-pointer table base address
|
||||
* @max_dma_mask: Maximum possible DMA mask
|
||||
* @rx_buffer_hash_size: Size of hash at start of RX packet
|
||||
* @rx_prefix_size: Size of RX prefix before packet data
|
||||
* @rx_hash_offset: Offset of RX flow hash within prefix
|
||||
* @rx_buffer_padding: Size of padding at end of RX packet
|
||||
* @can_rx_scatter: NIC is able to scatter packet to multiple buffers
|
||||
* @max_interrupt_mode: Highest capability interrupt mode supported
|
||||
|
@ -1126,7 +1132,8 @@ struct efx_nic_type {
|
|||
unsigned int evq_ptr_tbl_base;
|
||||
unsigned int evq_rptr_tbl_base;
|
||||
u64 max_dma_mask;
|
||||
unsigned int rx_buffer_hash_size;
|
||||
unsigned int rx_prefix_size;
|
||||
unsigned int rx_hash_offset;
|
||||
unsigned int rx_buffer_padding;
|
||||
bool can_rx_scatter;
|
||||
unsigned int max_interrupt_mode;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue