net/nfb: support Silicom Mango card
[dpdk.git] / drivers / net / nfb / nfb.h
1 /* SPDX-License-Identifier: BSD-3-Clause
2  * Copyright(c) 2019 Cesnet
3  * Copyright(c) 2019 Netcope Technologies, a.s. <info@netcope.com>
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_ */