Allow latency thresholds for TST009 testing
[samplevnf.git] / VNFs / DPPD-PROX / run.c
index 2ad8aca..c05f0a9 100644 (file)
@@ -78,10 +78,7 @@ static void update_link_states(void)
 
                port_cfg  = &prox_port_cfg[portid];
                rte_eth_link_get_nowait(portid, &link);
-#if RTE_VERSION < RTE_VERSION_NUM(16,4,0,0)
-               // On more recent DPDK, we use the speed_capa of the port, and not the negotiated speed
                port_cfg->link_speed = link.link_speed;
-#endif
                if (port_cfg->link_up != link.link_status) {
                        port_cfg->link_up = link.link_status;
                        plog_info("port %d: Link speed now %d Mbps\n", portid, link.link_speed);
@@ -240,6 +237,13 @@ void __attribute__((noreturn)) run(uint32_t flags)
                        if (stop_tsc && rte_rdtsc() >= stop_tsc) {
                                stop_prox = 1;
                        }
+                       if ((prox_cfg.heartbeat_tsc) && (prox_cfg.heartbeat_timeout) && (rte_rdtsc() >= prox_cfg.heartbeat_tsc)) {
+                               plog_info("Stopping to handle client as heartbeat timed out\n");
+                               stop_core_all(-1);
+                               stop_handling_client();
+                               req_refresh();
+                               prox_cfg.heartbeat_tsc = 0;
+                       }
                }
        } else {
                while (stop_prox == 0) {
@@ -257,6 +261,13 @@ void __attribute__((noreturn)) run(uint32_t flags)
                        if (stop_tsc && rte_rdtsc() >= stop_tsc) {
                                stop_prox = 1;
                        }
+                       if ((prox_cfg.heartbeat_tsc) && (prox_cfg.heartbeat_timeout) && (rte_rdtsc() >= prox_cfg.heartbeat_tsc)) {
+                               plog_info("Stopping to handle client as heartbeat timed out\n");
+                               stop_core_all(-1);
+                               stop_handling_client();
+                               req_refresh();
+                               prox_cfg.heartbeat_tsc = 0;
+                       }
                }
        }