[dpdk-dev] [PATCH 04/12] pmd/enic: add dev_ptype_info_get implementation
Jianfeng Tan
jianfeng.tan at intel.com
Thu Dec 31 07:53:11 CET 2015
Signed-off-by: Jianfeng Tan <jianfeng.tan at intel.com>
---
drivers/net/enic/enic_ethdev.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
index 2a88043..112480e 100644
--- a/drivers/net/enic/enic_ethdev.c
+++ b/drivers/net/enic/enic_ethdev.c
@@ -54,6 +54,9 @@
#define ENICPMD_FUNC_TRACE() (void)0
#endif
+static uint16_t enicpmd_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+ uint16_t nb_pkts);
+
/*
* The set of PCI devices this driver supports
*/
@@ -431,6 +434,22 @@ static void enicpmd_dev_info_get(struct rte_eth_dev *eth_dev,
DEV_TX_OFFLOAD_TCP_CKSUM;
}
+static int enicpmd_dev_ptype_info_get(struct rte_eth_dev *dev,
+ uint32_t ptype_mask, uint32_t ptypes[])
+{
+ int num = 0;
+
+ if (dev->rx_pkt_burst == enicpmd_recv_pkts) {
+ if ((ptype_mask & RTE_PTYPE_L3_MASK) == RTE_PTYPE_L3_MASK) {
+ ptypes[num++] = RTE_PTYPE_L3_IPV4;
+ ptypes[num++] = RTE_PTYPE_L3_IPV6;
+ }
+ } else
+ num = -ENOTSUP;
+
+ return num;
+}
+
static void enicpmd_dev_promiscuous_enable(struct rte_eth_dev *eth_dev)
{
struct enic *enic = pmd_priv(eth_dev);
@@ -566,6 +585,7 @@ static const struct eth_dev_ops enicpmd_eth_dev_ops = {
.stats_reset = enicpmd_dev_stats_reset,
.queue_stats_mapping_set = NULL,
.dev_infos_get = enicpmd_dev_info_get,
+ .dev_ptype_info_get = enicpmd_dev_ptype_info_get,
.mtu_set = NULL,
.vlan_filter_set = enicpmd_vlan_filter_set,
.vlan_tpid_set = NULL,
--
2.1.4
More information about the dev
mailing list