xref: /dpdk/drivers/net/nfb/nfb.h (revision 85cf6dc3)
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2019 Cesnet
3  * Copyright(c) 2019 Netcope Technologies, a.s. <[email protected]>
4  * All rights reserved.
5  */
6 
7 #ifndef _NFB_H_
8 #define _NFB_H_
9 
10 #include <nfb/nfb.h>
11 #include <nfb/ndp.h>
12 #include <netcope/rxmac.h>
13 #include <netcope/txmac.h>
14 
15 #include "nfb_rx.h"
16 #include "nfb_tx.h"
17 
18 /* PCI Vendor ID */
19 #define PCI_VENDOR_ID_NETCOPE 0x1b26
20 #define PCI_VENDOR_ID_SILICOM 0x1c2c
21 
22 /* PCI Device IDs */
23 #define PCI_DEVICE_ID_NFB_40G2  0xcb80
24 #define PCI_DEVICE_ID_NFB_100G2 0xc2c1
25 #define PCI_DEVICE_ID_NFB_200G2QL 0xc250
26 #define PCI_DEVICE_ID_FB2CGG3   0x00d0
27 #define PCI_DEVICE_ID_FB2CGG3D  0xc240
28 
29 /* Max index of ndp rx/tx queues */
30 #define RTE_ETH_NDP_MAX_RX_QUEUES 32
31 #define RTE_ETH_NDP_MAX_TX_QUEUES 32
32 
33 /* Max index of rx/tx dmas */
34 #define RTE_MAX_NC_RXMAC 256
35 #define RTE_MAX_NC_TXMAC 256
36 
37 #define RTE_NFB_DRIVER_NAME net_nfb
38 
39 struct pmd_internals {
40 	uint16_t         max_rxmac;
41 	uint16_t         max_txmac;
42 	struct nc_rxmac *rxmac[RTE_MAX_NC_RXMAC];
43 	struct nc_txmac *txmac[RTE_MAX_NC_TXMAC];
44 
45 	char             nfb_dev[PATH_MAX];
46 	struct nfb_device *nfb;
47 	/* Place to remember if filter was promiscuous or filtering by table,
48 	 * when disabling allmulticast
49 	 */
50 	enum nc_rxmac_mac_filter rx_filter_original;
51 };
52 
53 #endif /* _NFB_H_ */
54