Improve ctrlplane performance 37/70037/4
authorXavier Simonart <xavier.simonart@intel.com>
Tue, 28 Apr 2020 23:22:10 +0000 (01:22 +0200)
committerXavier Simonart <xavier.simonart@intel.com>
Fri, 29 May 2020 21:28:44 +0000 (23:28 +0200)
commit9e0c77ef5b6569b8db31269916102f5219bffdc9
treef61fe61e20dbd0bfe255d62c5290088bb015c9f2
parentca250755c6ecad89fc30507a4c6707eedc658f5d
Improve ctrlplane performance

The crlplane performance has been improved. This is necessary when
handling many IP in L3 mode (i.e. many ARP Requests/Replies).

Before this change, arp timer was updated as soon as an
arp request was tentativaly sent to the master. This means that,
if the request failed to be sent (e.g. ring full) we had to wait
arp_update_time (default 1sec) before trying again.

Now arp_update_time is only used when an arp reply is received.
If a request has been successfully sent, then the arp timer
is updated by 1 second (i.e. we will not send any arp reuest for this
IP within this second)
If we failed to send the request, then the timer is updated by 100 msec
which means we will wait 100 msec before trying again.
A too high value here would have meant that we have to wait a long time
before trying again. A too short value overload the master ring with
request to transmit ARP requests, so that master is unable to handle
arp replies.

arp_update_time is now also partly randomized to avoid all IPs to request
arp request at the beginning of the test. So if arp_update_time is 10 sec
then the configuration sets it to 5 to 15 sec.

As a final note the following parameter (already implemented before)
can be changed to improve ctrlplane performance (at the cost of dataplane)

ctrl path polling frequency=10000

Change-Id: I9660458a22e7442eaa0c83aaa0c9893a15069f98
Signed-off-by: Xavier Simonart <xavier.simonart@intel.com>
VNFs/DPPD-PROX/packet_utils.c
VNFs/DPPD-PROX/packet_utils.h
VNFs/DPPD-PROX/tx_pkt.c
VNFs/DPPD-PROX/tx_pkt.h