test: add a testcase for dynamic logs
[dpdk.git] / examples / tep_termination / main.c
index 8097dcd..a14d2e3 100644 (file)
@@ -49,7 +49,8 @@
 #include <rte_log.h>
 #include <rte_string_fns.h>
 #include <rte_malloc.h>
-#include <rte_virtio_net.h>
+#include <rte_vhost.h>
+#include <rte_pause.h>
 
 #include "main.h"
 #include "vxlan.h"
@@ -97,7 +98,7 @@
 #define MBUF_HEADROOM_UINT32(mbuf) (*(uint32_t *)((uint8_t *)(mbuf) \
                + sizeof(struct rte_mbuf)))
 
-#define INVALID_PORT_ID 0xFF
+#define INVALID_PORT_ID 0xFFFF
 
 /* Size of buffers used for snprintfs. */
 #define MAX_PRINT_BUFF 6072
@@ -183,7 +184,7 @@ static uint32_t burst_rx_retry_num = BURST_RX_RETRIES;
 static char dev_basename[MAX_BASENAME_SZ] = "vhost-net";
 
 static unsigned lcore_ids[RTE_MAX_LCORE];
-uint8_t ports[RTE_MAX_ETHPORTS];
+uint16_t ports[RTE_MAX_ETHPORTS];
 
 static unsigned nb_ports; /**< The number of ports specified in command line */
 
@@ -559,7 +560,7 @@ check_ports_num(unsigned max_nb_ports)
  * This function routes the TX packet to the correct interface. This may be a local device
  * or the physical port.
  */
-static inline void __attribute__((always_inline))
+static __rte_always_inline void
 virtio_tx_route(struct vhost_dev *vdev, struct rte_mbuf *m)
 {
        struct mbuf_table *tx_q;
@@ -1081,7 +1082,7 @@ new_device(int vid)
  * These callback allow devices to be added to the data core when configuration
  * has been fully complete.
  */
-static const struct virtio_net_device_ops virtio_net_device_ops = {
+static const struct vhost_device_ops virtio_net_device_ops = {
        .new_device =  new_device,
        .destroy_device = destroy_device,
 };
@@ -1160,7 +1161,7 @@ main(int argc, char *argv[])
        unsigned lcore_id, core_id = 0;
        unsigned nb_ports, valid_nb_ports;
        int ret;
-       uint8_t portid;
+       uint16_t portid;
        uint16_t queue_id;
        static pthread_t tid;
        char thread_name[RTE_MAX_THREAD_NAME_LEN];
@@ -1256,9 +1257,20 @@ main(int argc, char *argv[])
        rte_vhost_driver_disable_features(dev_basename,
                1ULL << VIRTIO_NET_F_MRG_RXBUF);
 
-       rte_vhost_driver_callback_register(&virtio_net_device_ops);
+       ret = rte_vhost_driver_callback_register(dev_basename,
+               &virtio_net_device_ops);
+       if (ret != 0) {
+               rte_exit(EXIT_FAILURE,
+                       "failed to register vhost driver callbacks.\n");
+       }
+
+       if (rte_vhost_driver_start(dev_basename) < 0) {
+               rte_exit(EXIT_FAILURE,
+                       "failed to start vhost driver.\n");
+       }
 
-       rte_vhost_driver_session_start();
+       RTE_LCORE_FOREACH_SLAVE(lcore_id)
+               rte_eal_wait_lcore(lcore_id);
 
        return 0;
 }