X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fnfp%2Fnfp_net_pmd.h;h=b1303b13f57fda69243f6cef9191fd4cbbccd7b9;hb=2fced8a1c1f3b88d7f4d7cc59423110ef8ae6063;hp=1295c5959eb0ceb6df027031b12a4a9d1e47777c;hpb=69a0f8750aa349ed27fa7b635e2b47f74f11431a;p=dpdk.git diff --git a/drivers/net/nfp/nfp_net_pmd.h b/drivers/net/nfp/nfp_net_pmd.h index 1295c5959e..b1303b13f5 100644 --- a/drivers/net/nfp/nfp_net_pmd.h +++ b/drivers/net/nfp/nfp_net_pmd.h @@ -102,6 +102,9 @@ struct nfp_net_adapter; #define NFD_CFG_MINOR_VERSION(x) (((x) & 0xff) << 0) #define NFD_CFG_MINOR_VERSION_of(x) (((x) >> 0) & 0xff) +/* Number of supported physical ports */ +#define NFP_MAX_PHYPORTS 12 + #include #include @@ -382,7 +385,60 @@ struct nfp_net_rxq { int rx_qcidx; } __rte_aligned(64); +struct nfp_pf_dev { + /* Backpointer to associated pci device */ + struct rte_pci_device *pci_dev; + + /* First physical port's eth device */ + struct rte_eth_dev *eth_dev; + + /* Array of physical ports belonging to this PF */ + struct nfp_net_hw *ports[NFP_MAX_PHYPORTS]; + + /* Current values for control */ + uint32_t ctrl; + + uint8_t *ctrl_bar; + uint8_t *tx_bar; + uint8_t *rx_bar; + + uint8_t *qcp_cfg; + rte_spinlock_t reconfig_lock; + + uint16_t flbufsz; + uint16_t device_id; + uint16_t vendor_id; + uint16_t subsystem_device_id; + uint16_t subsystem_vendor_id; +#if defined(DSTQ_SELECTION) +#if DSTQ_SELECTION + uint16_t device_function; +#endif +#endif + + struct nfp_cpp *cpp; + struct nfp_cpp_area *ctrl_area; + struct nfp_cpp_area *hwqueues_area; + struct nfp_cpp_area *msix_area; + + uint8_t *hw_queues; + uint8_t total_phyports; + bool multiport; + + union eth_table_entry *eth_table; + + struct nfp_hwinfo *hwinfo; + struct nfp_rtsym_table *sym_tbl; + uint32_t nfp_cpp_service_id; +}; + struct nfp_net_hw { + /* Backpointer to the PF this port belongs to */ + struct nfp_pf_dev *pf_dev; + + /* Backpointer to the eth_dev of this port*/ + struct rte_eth_dev *eth_dev; + /* Info from the firmware */ uint32_t ver; uint32_t cap; @@ -427,15 +483,14 @@ struct nfp_net_hw { struct nfp_cpp_area *msix_area; uint8_t *hw_queues; - uint8_t is_pf; - uint8_t pf_port_idx; - uint8_t pf_multiport_enabled; - uint8_t total_ports; + /* Sequential physical port number */ + uint8_t idx; + /* Internal port number as seen from NFP */ + uint8_t nfp_idx; + bool is_phyport; union eth_table_entry *eth_table; - struct nfp_hwinfo *hwinfo; - struct nfp_rtsym_table *sym_tbl; uint32_t nfp_cpp_service_id; }; @@ -446,6 +501,9 @@ struct nfp_net_adapter { #define NFP_NET_DEV_PRIVATE_TO_HW(adapter)\ (&((struct nfp_net_adapter *)adapter)->hw) +#define NFP_NET_DEV_PRIVATE_TO_PF(dev_priv)\ + (((struct nfp_net_hw *)dev_priv)->pf_dev) + #endif /* _NFP_NET_PMD_H_ */ /* * Local variables: