X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=common%2FVIL%2Fconntrack%2Frte_ct_udp.c;h=6caa788fd6434c4a78f74592c85bb337718f615d;hb=cd7ce8f25a81fb390ed0cc66992fda8ab1b021cb;hp=88f3a9a4057344af95d0162ea869f771bb68edd8;hpb=51cd08d9a3f2826088d122e2a5683315c77a2786;p=samplevnf.git diff --git a/common/VIL/conntrack/rte_ct_udp.c b/common/VIL/conntrack/rte_ct_udp.c index 88f3a9a4..6caa788f 100644 --- a/common/VIL/conntrack/rte_ct_udp.c +++ b/common/VIL/conntrack/rte_ct_udp.c @@ -33,17 +33,17 @@ enum rte_ct_packet_action rte_ct_udp_packet(struct rte_ct_cnxn_tracker *ct, uint8_t key_was_flipped) { enum rte_ct_pkt_direction dir; - + enum rte_ct_udp_states ustate = RTE_CT_UDP_UNREPLIED; dir = (cd->key_is_client_order == !key_was_flipped); /* printf("packet received verify"); */ - if (dir == RTE_CT_DIR_REPLY && - cd->connstatus == RTE_INIT_CONN) { - rte_ct_set_cnxn_timer_for_udp(ct, cd, RTE_CT_UDP_REPLIED); + if (dir == RTE_CT_DIR_REPLY && ( + (cd->connstatus == RTE_INIT_CONN) || + (cd->connstatus == RTE_ASSURED_CONN))) + { + ustate = RTE_CT_UDP_REPLIED; cd->connstatus = RTE_ASSURED_CONN; - } else if (dir == RTE_CT_DIR_REPLY && - cd->connstatus == RTE_ASSURED_CONN) - rte_ct_set_cnxn_timer_for_udp(ct, cd, RTE_CT_UDP_REPLIED); - else - rte_ct_set_cnxn_timer_for_udp(ct, cd, RTE_CT_UDP_UNREPLIED); + } + rte_ct_set_cnxn_timer_for_udp(ct, cd, ustate); + return RTE_CT_FORWARD_PACKET; }