vnet: device flow offload infra
[vpp.git] / src / plugins / dpdk / device / init.c
index 9ed3efd..9d4c0fd 100755 (executable)
@@ -256,7 +256,6 @@ dpdk_lib_init (dpdk_main_t * dm)
     {
       u8 addr[6];
       u8 vlan_strip = 0;
-      int j;
       struct rte_eth_dev_info dev_info;
       struct rte_eth_link l;
       dpdk_device_config_t *devconf = 0;
@@ -386,6 +385,14 @@ dpdk_lib_init (dpdk_main_t * dm)
            case VNET_DPDK_PMD_IXGBE:
            case VNET_DPDK_PMD_I40E:
              xd->port_type = port_type_from_speed_capa (&dev_info);
+#if 0
+             xd->port_conf.fdir_conf.mode = RTE_FDIR_MODE_PERFECT;
+#endif
+             xd->supported_flow_actions = VNET_FLOW_ACTION_MARK |
+               VNET_FLOW_ACTION_REDIRECT_TO_NODE |
+               VNET_FLOW_ACTION_BUFFER_ADVANCE |
+               VNET_FLOW_ACTION_COUNT | VNET_FLOW_ACTION_DROP;
+
              if (dm->conf->no_tx_checksum_offload == 0)
                {
                  xd->tx_conf.txq_flags &= ~ETH_TXQ_FLAGS_NOXSUMS;
@@ -537,15 +544,6 @@ dpdk_lib_init (dpdk_main_t * dm)
          dq->queue_id = 0;
        }
 
-      vec_validate_aligned (xd->tx_vectors, tm->n_vlib_mains,
-                           CLIB_CACHE_LINE_BYTES);
-      for (j = 0; j < tm->n_vlib_mains; j++)
-       {
-         vec_validate_ha (xd->tx_vectors[j], xd->nb_tx_desc,
-                          sizeof (tx_ring_hdr_t), CLIB_CACHE_LINE_BYTES);
-         vec_reset_length (xd->tx_vectors[j]);
-       }
-
       /* count the number of descriptors used for this device */
       nb_desc += xd->nb_rx_desc + xd->nb_tx_desc * xd->tx_q_used;