| /* SPDX-License-Identifier: GPL-2.0 */ |
| /* Copyright (c) 2019 - 2022 Beijing WangXun Technology Co., Ltd. */ |
| |
| #ifndef _NGBE_H_ |
| #define _NGBE_H_ |
| |
| #include "ngbe_type.h" |
| |
| #define NGBE_MAX_FDIR_INDICES 7 |
| |
| #define NGBE_MAX_RX_QUEUES (NGBE_MAX_FDIR_INDICES + 1) |
| #define NGBE_MAX_TX_QUEUES (NGBE_MAX_FDIR_INDICES + 1) |
| |
| #define NGBE_ETH_LENGTH_OF_ADDRESS 6 |
| #define NGBE_MAX_MSIX_VECTORS 0x09 |
| #define NGBE_RAR_ENTRIES 32 |
| |
| /* TX/RX descriptor defines */ |
| #define NGBE_DEFAULT_TXD 512 /* default ring size */ |
| #define NGBE_DEFAULT_TX_WORK 256 |
| #define NGBE_MAX_TXD 8192 |
| #define NGBE_MIN_TXD 128 |
| |
| #define NGBE_DEFAULT_RXD 512 /* default ring size */ |
| #define NGBE_DEFAULT_RX_WORK 256 |
| #define NGBE_MAX_RXD 8192 |
| #define NGBE_MIN_RXD 128 |
| |
| #define NGBE_MAC_STATE_DEFAULT 0x1 |
| #define NGBE_MAC_STATE_MODIFIED 0x2 |
| #define NGBE_MAC_STATE_IN_USE 0x4 |
| |
| struct ngbe_mac_addr { |
| u8 addr[ETH_ALEN]; |
| u16 state; /* bitmask */ |
| u64 pools; |
| }; |
| |
| /* board specific private data structure */ |
| struct ngbe_adapter { |
| u8 __iomem *io_addr; /* Mainly for iounmap use */ |
| /* OS defined structs */ |
| struct net_device *netdev; |
| struct pci_dev *pdev; |
| |
| /* structs defined in ngbe_hw.h */ |
| struct ngbe_hw hw; |
| struct ngbe_mac_addr *mac_table; |
| u16 msg_enable; |
| |
| /* Tx fast path data */ |
| int num_tx_queues; |
| u16 tx_itr_setting; |
| u16 tx_work_limit; |
| |
| /* Rx fast path data */ |
| int num_rx_queues; |
| u16 rx_itr_setting; |
| u16 rx_work_limit; |
| |
| int num_q_vectors; /* current number of q_vectors for device */ |
| int max_q_vectors; /* upper limit of q_vectors for device */ |
| |
| u32 tx_ring_count; |
| u32 rx_ring_count; |
| |
| #define NGBE_MAX_RETA_ENTRIES 128 |
| u8 rss_indir_tbl[NGBE_MAX_RETA_ENTRIES]; |
| |
| #define NGBE_RSS_KEY_SIZE 40 /* size of RSS Hash Key in bytes */ |
| u32 *rss_key; |
| u32 wol; |
| |
| u16 bd_number; |
| }; |
| |
| extern char ngbe_driver_name[]; |
| |
| #endif /* _NGBE_H_ */ |