X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fcxgbe%2Fcxgbe.h;h=7c89a028bf16be77f181d54517d83816b7973f50;hb=dd4e429c95f90dfa049ad53cbd9e1142253f278c;hp=ed1be3559f2c828263592343b3e6fbbd5c0d2cb8;hpb=fa0334374f9f35ab2f697e2029d08ed7235cfa91;p=dpdk.git diff --git a/drivers/net/cxgbe/cxgbe.h b/drivers/net/cxgbe/cxgbe.h index ed1be3559f..7c89a028bf 100644 --- a/drivers/net/cxgbe/cxgbe.h +++ b/drivers/net/cxgbe/cxgbe.h @@ -19,6 +19,10 @@ #define CXGBE_MAX_RX_PKTLEN (9000 + RTE_ETHER_HDR_LEN + \ RTE_ETHER_CRC_LEN) /* max pkt */ +/* The max frame size with default MTU */ +#define CXGBE_ETH_MAX_LEN (RTE_ETHER_MTU + \ + RTE_ETHER_HDR_LEN + RTE_ETHER_CRC_LEN) + /* Max poll time is 100 * 100msec = 10 sec */ #define CXGBE_LINK_STATUS_POLL_MS 100 /* 100ms */ #define CXGBE_LINK_STATUS_POLL_CNT 100 /* Max number of times to poll */ @@ -40,15 +44,36 @@ DEV_TX_OFFLOAD_IPV4_CKSUM | \ DEV_TX_OFFLOAD_UDP_CKSUM | \ DEV_TX_OFFLOAD_TCP_CKSUM | \ - DEV_TX_OFFLOAD_TCP_TSO) + DEV_TX_OFFLOAD_TCP_TSO | \ + DEV_TX_OFFLOAD_MULTI_SEGS) #define CXGBE_RX_OFFLOADS (DEV_RX_OFFLOAD_VLAN_STRIP | \ DEV_RX_OFFLOAD_IPV4_CKSUM | \ DEV_RX_OFFLOAD_UDP_CKSUM | \ DEV_RX_OFFLOAD_TCP_CKSUM | \ DEV_RX_OFFLOAD_JUMBO_FRAME | \ - DEV_RX_OFFLOAD_SCATTER) + DEV_RX_OFFLOAD_SCATTER | \ + DEV_RX_OFFLOAD_RSS_HASH) + +/* Devargs filtermode and filtermask representation */ +enum cxgbe_devargs_filter_mode_flags { + CXGBE_DEVARGS_FILTER_MODE_PHYSICAL_PORT = (1 << 0), + CXGBE_DEVARGS_FILTER_MODE_PF_VF = (1 << 1), + CXGBE_DEVARGS_FILTER_MODE_ETHERNET_DSTMAC = (1 << 2), + CXGBE_DEVARGS_FILTER_MODE_ETHERNET_ETHTYPE = (1 << 3), + CXGBE_DEVARGS_FILTER_MODE_VLAN_INNER = (1 << 4), + CXGBE_DEVARGS_FILTER_MODE_VLAN_OUTER = (1 << 5), + CXGBE_DEVARGS_FILTER_MODE_IP_TOS = (1 << 6), + CXGBE_DEVARGS_FILTER_MODE_IP_PROTOCOL = (1 << 7), + CXGBE_DEVARGS_FILTER_MODE_MAX = (1 << 8), +}; + +enum cxgbe_filter_vnic_mode { + CXGBE_FILTER_VNIC_MODE_NONE, + CXGBE_FILTER_VNIC_MODE_PFVF, + CXGBE_FILTER_VNIC_MODE_OVLAN, +}; /* Common PF and VF devargs */ #define CXGBE_DEVARG_CMN_KEEP_OVLAN "keep_ovlan" @@ -57,6 +82,10 @@ /* VF only devargs */ #define CXGBE_DEVARG_VF_FORCE_LINK_UP "force_link_up" +/* Filter Mode/Mask devargs */ +#define CXGBE_DEVARG_PF_FILTER_MODE "filtermode" +#define CXGBE_DEVARG_PF_FILTER_MASK "filtermask" + bool cxgbe_force_linkup(struct adapter *adap); int cxgbe_probe(struct adapter *adapter); int cxgbevf_probe(struct adapter *adapter); @@ -73,7 +102,8 @@ int cxgbe_poll_for_completion(struct sge_rspq *q, unsigned int us, int cxgbe_link_start(struct port_info *pi); int cxgbe_setup_sge_fwevtq(struct adapter *adapter); int cxgbe_setup_sge_ctrl_txq(struct adapter *adapter); -void cxgbe_cfg_queues(struct rte_eth_dev *eth_dev); +int cxgbe_cfg_queues(struct rte_eth_dev *eth_dev); +void cxgbe_cfg_queues_free(struct adapter *adapter); int cxgbe_cfg_queue_count(struct rte_eth_dev *eth_dev); int cxgbe_init_rss(struct adapter *adap); int cxgbe_setup_rss(struct port_info *pi);