dpdk: remove KNI support 73/3573/2
authorDamjan Marion <damarion@cisco.com>
Tue, 25 Oct 2016 16:27:29 +0000 (18:27 +0200)
committerFlorin Coras <florin.coras@gmail.com>
Wed, 26 Oct 2016 14:52:00 +0000 (14:52 +0000)
This code is outdated and without real use case

Change-Id: I30628cc4ca293e5249aea3891173507cbfad8b61
Signed-off-by: Damjan Marion <damarion@cisco.com>
vnet/vnet/devices/dpdk/device.c
vnet/vnet/devices/dpdk/dpdk.h
vnet/vnet/devices/dpdk/format.c
vnet/vnet/devices/dpdk/init.c
vnet/vnet/devices/dpdk/node.c

index cd22d8a..5f884a4 100644 (file)
@@ -522,38 +522,6 @@ static_always_inline
          if (xd->need_txlock)
            *xd->lockp[queue_id] = 0;
        }
-#endif
-#if RTE_LIBRTE_KNI
-      else if (xd->flags & DPDK_DEVICE_FLAG_KNI)
-       {
-         if (PREDICT_TRUE (tx_head > tx_tail))
-           {
-             /* no wrap, transmit in one burst */
-             rv = rte_kni_tx_burst (xd->kni,
-                                    &tx_vector[tx_tail],
-                                    (uint16_t) (tx_head - tx_tail));
-           }
-         else
-           {
-             /*
-              * This can only happen if there is a flowcontrol callback.
-              * We need to split the transmit into two calls: one for
-              * the packets up to the wrap point, and one to continue
-              * at the start of the ring.
-              * Transmit pkts up to the wrap point.
-              */
-             rv = rte_kni_tx_burst (xd->kni,
-                                    &tx_vector[tx_tail],
-                                    (uint16_t) (xd->nb_tx_desc - tx_tail));
-
-             /*
-              * If we transmitted everything we wanted, then allow 1 retry
-              * so we can try to transmit the rest. If we didn't transmit
-              * everything, stop now.
-              */
-             n_retry = (rv == xd->nb_tx_desc - tx_tail) ? 1 : 0;
-           }
-       }
 #endif
       else
        {
@@ -1001,59 +969,6 @@ dpdk_clear_hw_interface_counters (u32 instance)
 #endif
 }
 
-#ifdef RTE_LIBRTE_KNI
-static int
-kni_config_network_if (u8 port_id, u8 if_up)
-{
-  vnet_main_t *vnm = vnet_get_main ();
-  dpdk_main_t *dm = &dpdk_main;
-  dpdk_device_t *xd;
-  uword *p;
-
-  p = hash_get (dm->dpdk_device_by_kni_port_id, port_id);
-  if (p == 0)
-    {
-      clib_warning ("unknown interface");
-      return 0;
-    }
-  else
-    {
-      xd = vec_elt_at_index (dm->devices, p[0]);
-    }
-
-  vnet_hw_interface_set_flags (vnm, xd->vlib_hw_if_index,
-                              if_up ? VNET_HW_INTERFACE_FLAG_LINK_UP |
-                              ETH_LINK_FULL_DUPLEX : 0);
-  return 0;
-}
-
-static int
-kni_change_mtu (u8 port_id, unsigned new_mtu)
-{
-  vnet_main_t *vnm = vnet_get_main ();
-  dpdk_main_t *dm = &dpdk_main;
-  dpdk_device_t *xd;
-  uword *p;
-  vnet_hw_interface_t *hif;
-
-  p = hash_get (dm->dpdk_device_by_kni_port_id, port_id);
-  if (p == 0)
-    {
-      clib_warning ("unknown interface");
-      return 0;
-    }
-  else
-    {
-      xd = vec_elt_at_index (dm->devices, p[0]);
-    }
-  hif = vnet_get_hw_interface (vnm, xd->vlib_hw_if_index);
-
-  hif->max_packet_bytes = new_mtu;
-
-  return 0;
-}
-#endif
-
 static clib_error_t *
 dpdk_interface_admin_up_down (vnet_main_t * vnm, u32 hw_if_index, u32 flags)
 {
@@ -1063,47 +978,6 @@ dpdk_interface_admin_up_down (vnet_main_t * vnm, u32 hw_if_index, u32 flags)
   dpdk_device_t *xd = vec_elt_at_index (dm->devices, hif->dev_instance);
   int rv = 0;
 
-#ifdef RTE_LIBRTE_KNI
-  if (xd->flags & DPDK_DEVICE_FLAG_KNI)
-    {
-      if (is_up)
-       {
-         struct rte_kni_conf conf;
-         struct rte_kni_ops ops;
-         vlib_main_t *vm = vlib_get_main ();
-         vlib_buffer_main_t *bm = vm->buffer_main;
-         memset (&conf, 0, sizeof (conf));
-         snprintf (conf.name, RTE_KNI_NAMESIZE, "vpp%u", xd->kni_port_id);
-         conf.mbuf_size = VLIB_BUFFER_DATA_SIZE;
-         memset (&ops, 0, sizeof (ops));
-         ops.port_id = xd->kni_port_id;
-         ops.change_mtu = kni_change_mtu;
-         ops.config_network_if = kni_config_network_if;
-
-         xd->kni =
-           rte_kni_alloc (bm->pktmbuf_pools[rte_socket_id ()], &conf, &ops);
-         if (!xd->kni)
-           {
-             clib_warning ("failed to allocate kni interface");
-           }
-         else
-           {
-             hif->max_packet_bytes = 1500;     /* kni interface default value */
-             xd->flags |= DPDK_DEVICE_FLAG_ADMIN_UP;
-           }
-       }
-      else
-       {
-         xd->flags &= ~DPDK_DEVICE_FLAG_ADMIN_UP;
-         int kni_rv;
-
-         kni_rv = rte_kni_release (xd->kni);
-         if (kni_rv < 0)
-           clib_warning ("rte_kni_release returned %d", kni_rv);
-       }
-      return 0;
-    }
-#endif
 #if DPDK_VHOST_USER
   if (xd->flags & DPDK_DEVICE_FLAG_VHOST_USER)
     {
index 603a67d..f216a27 100644 (file)
@@ -44,9 +44,6 @@
 #include <rte_ring.h>
 #include <rte_mempool.h>
 #include <rte_mbuf.h>
-#ifdef RTE_LIBRTE_KNI
-#include <rte_kni.h>
-#endif
 #include <rte_virtio_net.h>
 #include <rte_version.h>
 #include <rte_eth_bond.h>
@@ -238,7 +235,7 @@ typedef struct
 #define DPDK_DEVICE_FLAG_ADMIN_UP       (1 << 0)
 #define DPDK_DEVICE_FLAG_PROMISC        (1 << 1)
 #define DPDK_DEVICE_FLAG_PMD            (1 << 2)
-#define DPDK_DEVICE_FLAG_KNI            (1 << 3)
+
 #define DPDK_DEVICE_FLAG_VHOST_USER     (1 << 4)
 #define DPDK_DEVICE_FLAG_HAVE_SUBIF     (1 << 5)
 #define DPDK_DEVICE_FLAG_HQOS           (1 << 6)
@@ -263,10 +260,6 @@ typedef struct
   dpdk_device_hqos_per_worker_thread_t *hqos_wt;
   dpdk_device_hqos_per_hqos_thread_t *hqos_ht;
 
-  /* KNI related */
-  struct rte_kni *kni;
-  u8 kni_port_id;
-
 #if DPDK_VHOST_USER
   /* vhost-user related */
   u32 vu_if_id;
index 1b3fb5e..5865174 100644 (file)
@@ -165,13 +165,6 @@ format_dpdk_device_name (u8 * s, va_list * args)
   else
     devname_format = "%s%x/%x/%x";
 
-#ifdef RTE_LIBRTE_KNI
-  if (dm->devices[i].flags & DPDK_DEVICE_FLAG_KNI)
-    {
-      return format (s, "kni%d", dm->devices[i].kni_port_id);
-    }
-  else
-#endif
 #if DPDK_VHOST_USER
   if (dm->devices[i].flags & DPDK_DEVICE_FLAG_VHOST_USER)
     {
@@ -226,11 +219,7 @@ format_dpdk_device_type (u8 * s, va_list * args)
   char *dev_type;
   u32 i = va_arg (*args, u32);
 
-  if (dm->devices[i].flags & DPDK_DEVICE_FLAG_KNI)
-    {
-      return format (s, "Kernel NIC Interface");
-    }
-  else if (dm->devices[i].flags & DPDK_DEVICE_FLAG_VHOST_USER)
+  if (dm->devices[i].flags & DPDK_DEVICE_FLAG_VHOST_USER)
     {
       return format (s, "vhost-user interface");
     }
index 73edc4a..64623c1 100644 (file)
@@ -810,80 +810,6 @@ dpdk_lib_init (dpdk_main_t * dm)
       rte_eth_dev_set_mtu (xd->device_index, hi->max_packet_bytes);
     }
 
-#ifdef RTE_LIBRTE_KNI
-  if (dm->conf->num_kni)
-    {
-      clib_warning ("Initializing KNI interfaces...");
-      rte_kni_init (dm->conf->num_kni);
-      for (i = 0; i < dm->conf->num_kni; i++)
-       {
-         u8 addr[6];
-         int j;
-
-         /* Create vnet interface */
-         vec_add2_aligned (dm->devices, xd, 1, CLIB_CACHE_LINE_BYTES);
-         xd->flags |= DPDK_DEVICE_FLAG_KNI;
-
-         xd->device_index = xd - dm->devices;
-         ASSERT (nports + i == xd->device_index);
-         xd->per_interface_next_index = ~0;
-         xd->kni_port_id = i;
-         xd->cpu_socket = -1;
-         hash_set (dm->dpdk_device_by_kni_port_id, i, xd - dm->devices);
-         xd->rx_q_used = 1;
-
-         /* assign interface to input thread */
-         dpdk_device_and_queue_t *dq;
-         vec_add2 (dm->devices_by_cpu[dm->input_cpu_first_index], dq, 1);
-         dq->device = xd->device_index;
-         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]);
-           }
-
-         vec_validate_aligned (xd->rx_vectors, xd->rx_q_used,
-                               CLIB_CACHE_LINE_BYTES);
-         for (j = 0; j < xd->rx_q_used; j++)
-           {
-             vec_validate_aligned (xd->rx_vectors[j], VLIB_FRAME_SIZE - 1,
-                                   CLIB_CACHE_LINE_BYTES);
-             vec_reset_length (xd->rx_vectors[j]);
-           }
-
-         /* FIXME Set up one TX-queue per worker thread */
-
-         {
-           f64 now = vlib_time_now (vm);
-           u32 rnd;
-           rnd = (u32) (now * 1e6);
-           rnd = random_u32 (&rnd);
-
-           clib_memcpy (addr + 2, &rnd, sizeof (rnd));
-           addr[0] = 2;
-           addr[1] = 0xfe;
-         }
-
-         error = ethernet_register_interface
-           (dm->vnet_main, dpdk_device_class.index, xd->device_index,
-            /* ethernet address */ addr,
-            &xd->vlib_hw_if_index, dpdk_flag_change);
-
-         if (error)
-           return error;
-
-         sw = vnet_get_hw_sw_interface (dm->vnet_main, xd->vlib_hw_if_index);
-         xd->vlib_sw_if_index = sw->sw_if_index;
-         hi = vnet_get_hw_interface (dm->vnet_main, xd->vlib_hw_if_index);
-       }
-    }
-#endif
-
   if (nb_desc > dm->conf->num_mbufs)
     clib_warning ("%d mbufs allocated but total rx/tx ring size is %d\n",
                  dm->conf->num_mbufs, nb_desc);
index 63e7e55..d1db5e2 100644 (file)
@@ -366,14 +366,6 @@ dpdk_rx_burst (dpdk_main_t * dm, dpdk_device_t * xd, u16 queue_id)
        }
 
     }
-#endif
-#ifdef RTE_LIBRTE_KNI
-  else if (xd->flags & DPDK_DEVICE_FLAG_KNI)
-    {
-      n_buffers =
-       rte_kni_rx_burst (xd->kni, xd->rx_vectors[queue_id], VLIB_FRAME_SIZE);
-      rte_kni_handle_request (xd->kni);
-    }
 #endif
   else
     {