Modify code according to new dpdk variable name
[samplevnf.git] / VNFs / DPPD-PROX / defaults.c
index 2724048..f5624b9 100644 (file)
@@ -1,5 +1,5 @@
 /*
-// Copyright (c) 2010-2017 Intel Corporation
+// Copyright (c) 2010-2020 Intel Corporation
 //
 // Licensed under the Apache License, Version 2.0 (the "License");
 // you may not use this file except in compliance with the License.
@@ -17,6 +17,7 @@
 #include <string.h>
 #include <libgen.h>
 #include <rte_sched.h>
+#include <rte_ether.h>
 #include <rte_version.h>
 
 #include "lconf.h"
@@ -28,6 +29,7 @@
 #include "toeplitz.h"
 #include "handle_master.h"
 #include "prox_compat.h"
+#include "prox_ipv6.h"
 
 #define TEN_GIGABIT     1250000000
 #define QUEUE_SIZES     128
 static const struct rte_eth_conf default_port_conf = {
        .rxmode = {
                .mq_mode        = 0,
-               .max_rx_pkt_len = PROX_MTU + PROX_RTE_ETHER_HDR_LEN + PROX_RTE_ETHER_CRC_LEN
+#if RTE_VERSION < RTE_VERSION_NUM(21,11,0,0)
+               .max_rx_pkt_len = PROX_MTU + PROX_RTE_ETHER_HDR_LEN + PROX_RTE_ETHER_CRC_LEN,
+#else
+               .mtu = PROX_MTU,
+#endif
        },
        .rx_adv_conf = {
                .rss_conf = {
@@ -74,6 +80,16 @@ static struct rte_eth_txconf default_tx_conf = {
        .tx_rs_thresh = 32, /* Use PMD default values */
 };
 
+#if RTE_VERSION >= RTE_VERSION_NUM(20,11,0,0)
+static struct rte_sched_subport_profile_params subport_profile_params_default = {
+       .tb_rate = TEN_GIGABIT / NB_PIPES,
+       .tb_size = 4000000,
+
+       .tc_rate = {TEN_GIGABIT / NB_PIPES, TEN_GIGABIT / NB_PIPES, TEN_GIGABIT / NB_PIPES, TEN_GIGABIT / NB_PIPES},
+       .tc_period = 40,
+};
+#endif
+
 static struct rte_sched_port_params port_params_default = {
        .name = "port_0",
        .socket = 0,
@@ -81,10 +97,15 @@ static struct rte_sched_port_params port_params_default = {
        .rate = 0,
        .frame_overhead = RTE_SCHED_FRAME_OVERHEAD_DEFAULT,
        .n_subports_per_port = 1,
+#if RTE_VERSION >= RTE_VERSION_NUM(20,11,0,0)
+       .subport_profiles = &subport_profile_params_default,
+#endif
        .n_pipes_per_subport = NB_PIPES,
+#if RTE_VERSION < RTE_VERSION_NUM(19,11,0,0)
        .qsize = {QUEUE_SIZES, QUEUE_SIZES, QUEUE_SIZES, QUEUE_SIZES},
        .pipe_profiles = NULL,
        .n_pipe_profiles = 1 /* only one profile */
+#endif
 };
 
 static struct rte_sched_pipe_params pipe_params_default = {
@@ -102,14 +123,29 @@ static struct rte_sched_pipe_params pipe_params_default = {
 };
 
 static struct rte_sched_subport_params subport_params_default = {
+#if RTE_VERSION < RTE_VERSION_NUM(20,11,0,0)
        .tb_rate = TEN_GIGABIT,
        .tb_size = 4000000,
        .tc_rate = {TEN_GIGABIT, TEN_GIGABIT, TEN_GIGABIT, TEN_GIGABIT},
        .tc_period = 40, /* default was 10 */
+#endif
+#if RTE_VERSION > RTE_VERSION_NUM(19,11,0,0)
+       .qsize = {QUEUE_SIZES, QUEUE_SIZES, QUEUE_SIZES, QUEUE_SIZES},
+       .pipe_profiles = NULL,
+       .n_pipe_profiles = 1 /* only one profile */
+#endif
 };
 
-void set_global_defaults(__attribute__((unused)) struct prox_cfg *prox_cfg)
+void set_global_defaults(struct prox_cfg *prox_cfg)
 {
+       if (parse_ip6(&prox_cfg->all_routers_ipv6_mcast_addr, ALL_ROUTERS_IPV6_MCAST_ADDR) != 0)
+               plog_err("Failed to parse %s\n", ALL_ROUTERS_IPV6_MCAST_ADDR);
+       if (parse_ip6(&prox_cfg->all_nodes_ipv6_mcast_addr, ALL_NODES_IPV6_MCAST_ADDR) != 0)
+               plog_err("Failed to parse %s\n", ALL_NODES_IPV6_MCAST_ADDR);
+       if (parse_ip6(&prox_cfg->random_ip, RANDOM_IPV6) != 0)
+               plog_err("Failed to parse %s\n", RANDOM_IPV6);
+       set_mcast_mac_from_ipv6(&prox_cfg->all_routers_mac_addr, &prox_cfg->all_routers_ipv6_mcast_addr);
+       set_mcast_mac_from_ipv6(&prox_cfg->all_nodes_mac_addr, &prox_cfg->all_nodes_ipv6_mcast_addr);
 }
 
 void set_task_defaults(struct prox_cfg* prox_cfg, struct lcore_cfg* lcore_cfg_init)
@@ -137,7 +173,11 @@ void set_task_defaults(struct prox_cfg* prox_cfg, struct lcore_cfg* lcore_cfg_in
                        targ->qos_conf.port_params = port_params_default;
                        targ->qos_conf.pipe_params[0] = pipe_params_default;
                        targ->qos_conf.subport_params[0] = subport_params_default;
+#if RTE_VERSION > RTE_VERSION_NUM(19,11,0,0)
+                       targ->qos_conf.subport_params[0].pipe_profiles = targ->qos_conf.pipe_params;
+#else
                        targ->qos_conf.port_params.pipe_profiles = targ->qos_conf.pipe_params;
+#endif
                        targ->qos_conf.port_params.rate = TEN_GIGABIT;
                        targ->qinq_tag = ETYPE_8021ad;
                        targ->n_concur_conn = 8192*2;
@@ -166,6 +206,8 @@ void set_task_defaults(struct prox_cfg* prox_cfg, struct lcore_cfg* lcore_cfg_in
 
                        targ->runtime_flags |= TASK_TX_CRC;
                        targ->accuracy_limit_nsec = 5000;
+                       targ->probability_delay = 1000000;
+                       targ->probability_no_drop = 1000000;
                }
        }
 }
@@ -183,12 +225,14 @@ void set_port_defaults(void)
                prox_port_cfg[i].rx_ring[0] = '\0';
                prox_port_cfg[i].tx_ring[0] = '\0';
                prox_port_cfg[i].mtu = PROX_MTU;
+               prox_port_cfg[i].dpdk_mapping = NO_VDEV_PORT;
+               prox_port_cfg[i].v6_mask_length = 8;
 
                // CRC_STRIP becoming the default behavior in DPDK 18.08, and
                // DEV_RX_OFFLOAD_CRC_STRIP define has been deleted
-#if defined (DEV_RX_OFFLOAD_CRC_STRIP)
-               prox_port_cfg[i].requested_rx_offload = DEV_RX_OFFLOAD_CRC_STRIP;
+#if defined (RTE_ETH_RX_OFFLOAD_CRC_STRIP)
+               prox_port_cfg[i].requested_rx_offload = RTE_ETH_RX_OFFLOAD_CRC_STRIP;
 #endif
-               prox_port_cfg[i].requested_tx_offload = DEV_TX_OFFLOAD_IPV4_CKSUM | DEV_TX_OFFLOAD_UDP_CKSUM;
+               prox_port_cfg[i].requested_tx_offload = RTE_ETH_TX_OFFLOAD_IPV4_CKSUM | RTE_ETH_TX_OFFLOAD_UDP_CKSUM;
        }
 }