Increase maximum latency supported by Early Loss Detection
[samplevnf.git] / VNFs / DPPD-PROX / task_init.h
index e6261c2..82a5825 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.
@@ -49,6 +49,8 @@ struct lcore_cfg;
 #define        TASK_ARG_DO_NOT_SET_DST_MAC 0x400
 #define        TASK_ARG_HW_SRC_MAC     0x800
 #define TASK_ARG_L3            0x1000
+#define TASK_ARG_NDP           0x2000
+#define TASK_ARG_SEND_NA_AT_STARTUP            0x4000
 
 #define PROX_MODE_LEN  32
 
@@ -98,6 +100,14 @@ enum police_action {
        ACT_INVALID = 4
 };
 
+struct range {
+       uint32_t min;
+       uint32_t value;
+       uint32_t max;
+       uint32_t offset;
+       uint8_t range_len;
+};
+
 /* Configuration for task that is only used during startup. */
 struct task_args {
        struct task_base       *tbase;
@@ -126,13 +136,17 @@ struct task_args {
        uint8_t                tot_rxrings;
        uint8_t                nb_rxports;
        uint32_t               byte_offset;
+       uint32_t               ipv6_router;
        uint32_t               gateway_ipv4;
        uint32_t               local_ipv4;
        uint32_t               remote_ipv4;
        uint32_t               local_prefix;
-       uint32_t               arp_timeout;
-       uint32_t               arp_update_time;
+       uint32_t               reachable_timeout;
+       uint32_t               arp_ndp_retransmit_timeout;
        struct ipv6_addr       local_ipv6;    /* For IPv6 Tunnel, it's the local tunnel endpoint address */
+       struct ipv6_addr       global_ipv6;
+       struct ipv6_addr       gateway_ipv6;
+       struct ipv6_addr       router_prefix;
        struct rte_ring        *rx_rings[MAX_RINGS_PER_TASK];
        struct rte_ring        *tx_rings[MAX_RINGS_PER_TASK];
        struct rte_ring        *ctrl_plane_ring;
@@ -185,8 +199,10 @@ struct task_args {
        /* gen related*/
        uint64_t               rate_bps;
        uint32_t               n_rand_str;
-       char                   rand_str[64][64];
+       uint32_t               n_ranges;
        uint32_t               rand_offset[64];
+       char                   rand_str[64][64];
+       struct range           range[64];
        char                   pcap_file[256];
        uint32_t               accur_pos;
        uint32_t               sig_pos;
@@ -198,7 +214,9 @@ struct task_args {
        uint32_t               lat_enabled;
        uint32_t               pkt_size;
        uint8_t                pkt_inline[MAX_PKT_SIZE];
-       uint32_t               probability;
+       uint32_t               probability_no_drop;
+       uint32_t               probability_duplicate;
+       uint32_t               probability_delay;
        char                   nat_table[256];
        uint32_t               use_src;
        char                   route_table[256];
@@ -238,6 +256,10 @@ struct task_args {
        uint32_t               igmp_address;
        uint32_t                imix_nb_pkts;
        uint32_t                imix_pkt_sizes[MAX_IMIX_PKTS];
+       uint32_t        multiplier;
+       uint32_t        mirror_size;
+       uint32_t store_max;
+       uint32_t loss_buffer_size;
 };
 
 /* Return the first port that is reachable through the task. If the