net/txgbe: support ntuple filter add and delete
[dpdk.git] / drivers / net / dpaa2 / dpaa2_ethdev.c
index f9d9a93..ab68633 100644 (file)
@@ -65,6 +65,8 @@ static uint64_t dev_tx_offloads_nodis =
 
 /* enable timestamp in mbuf */
 bool dpaa2_enable_ts[RTE_MAX_ETHPORTS];
+uint64_t dpaa2_timestamp_rx_dynflag;
+int dpaa2_timestamp_dynfield_offset = -1;
 
 struct rte_dpaa2_xstats_name_off {
        char name[RTE_ETH_XSTATS_NAME_SIZE];
@@ -91,10 +93,6 @@ static const struct rte_dpaa2_xstats_name_off dpaa2_xstats_strings[] = {
 };
 
 static const enum rte_filter_op dpaa2_supported_filter_ops[] = {
-       RTE_ETH_FILTER_ADD,
-       RTE_ETH_FILTER_DELETE,
-       RTE_ETH_FILTER_UPDATE,
-       RTE_ETH_FILTER_FLUSH,
        RTE_ETH_FILTER_GET
 };
 
@@ -587,7 +585,16 @@ dpaa2_eth_dev_configure(struct rte_eth_dev *dev)
 #if !defined(RTE_LIBRTE_IEEE1588)
        if (rx_offloads & DEV_RX_OFFLOAD_TIMESTAMP)
 #endif
+       {
+               ret = rte_mbuf_dyn_rx_timestamp_register(
+                               &dpaa2_timestamp_dynfield_offset,
+                               &dpaa2_timestamp_rx_dynflag);
+               if (ret != 0) {
+                       DPAA2_PMD_ERR("Error to register timestamp field/flag");
+                       return -rte_errno;
+               }
                dpaa2_enable_ts[dev->data->port_id] = true;
+       }
 
        if (tx_offloads & DEV_TX_OFFLOAD_IPV4_CKSUM)
                tx_l3_csum_offload = true;
@@ -2794,6 +2801,8 @@ rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv,
        if (dpaa2_drv->drv_flags & RTE_DPAA2_DRV_INTR_LSC)
                eth_dev->data->dev_flags |= RTE_ETH_DEV_INTR_LSC;
 
+       eth_dev->data->dev_flags |= RTE_ETH_DEV_AUTOFILL_QUEUE_XSTATS;
+
        /* Invoke PMD device initialization function */
        diag = dpaa2_dev_init(eth_dev);
        if (diag == 0) {