summaryrefslogtreecommitdiffstats
path: root/lib/bcd.c
diff options
context:
space:
mode:
authorThomas Egerer <thomas.egerer@secunet.com>2013-09-19 13:19:19 +0200
committerSteffen Klassert <steffen.klassert@secunet.com>2013-09-25 07:32:48 +0200
commitcd808fc9a6c7cd3a4311d9d2cffc4adbeaef5f6c (patch)
tree82279120c03e0980a1da1f22beba85ee97a228f2 /lib/bcd.c
parent33fce60d6a6e137035f8e23a89d7fd55f3a24cda (diff)
downloadblackbird-op-linux-cd808fc9a6c7cd3a4311d9d2cffc4adbeaef5f6c.tar.gz
blackbird-op-linux-cd808fc9a6c7cd3a4311d9d2cffc4adbeaef5f6c.zip
xfrm: Fix aevent generation for each received packet
If asynchronous events are enabled for a particular netlink socket, the notify function is called by the advance function. The notify function creates and dispatches a km_event if a replay timeout occurred, or at least replay_maxdiff packets have been received since the last asynchronous event has been sent. The function is supposed to return if neither of the two events were detected for a state, or replay_maxdiff is equal to zero. Replay_maxdiff is initialized in xfrm_state_construct to the value of the xfrm.sysctl_aevent_rseqth (2 by default), and updated if for a state if the netlink attribute XFRMA_REPLAY_THRESH is set. If, however, replay_maxdiff is set to zero, then all of the three notify implementations perform a break from the switch statement instead of checking whether a timeout occurred, and -- if not -- return. As a result an asynchronous event is generated for every replay update of a state that has a zero replay_maxdiff value. This patch modifies the notify functions such that they immediately return if replay_maxdiff has the value zero, unless a timeout occurred. Signed-off-by: Thomas Egerer <thomas.egerer@secunet.com> Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'lib/bcd.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud