conntrack: timer reset in reply traffic causes performance impact 19/36419/1
authorAnand B Jyoti <anand.b.jyoti@intel.com>
Fri, 23 Jun 2017 06:09:08 +0000 (11:39 +0530)
committerAnand B Jyoti <anand.b.jyoti@intel.com>
Fri, 23 Jun 2017 06:09:08 +0000 (11:39 +0530)
JIRA: SAMPLEVNF-44

The UDP connection timer was getting reset for every packets with
reply traffic due to connection state check.

This patch avoids resetting the timer instead uses the expected
timeout to reset avoiding frequent timer reset for every packet.

Change-Id: I6b5aac62bb709f403aeacee75f52d099b2d2397f
Signed-off-by: Anand B Jyoti <anand.b.jyoti@intel.com>
common/VIL/conntrack/rte_ct_udp.c

index 6caa788..9a50a59 100644 (file)
@@ -43,7 +43,10 @@ enum rte_ct_packet_action rte_ct_udp_packet(struct rte_ct_cnxn_tracker *ct,
                ustate = RTE_CT_UDP_REPLIED;
                cd->connstatus = RTE_ASSURED_CONN;
        }
-       rte_ct_set_cnxn_timer_for_udp(ct, cd, ustate);
+       /* Avoid timer resetting if connection is setup */
+       if(cd->connstatus != RTE_INIT_CONN)
+               cd->state_used_for_timer = ustate;
 
+       rte_ct_set_cnxn_timer_for_udp(ct, cd, ustate);
        return RTE_CT_FORWARD_PACKET;
 }