diff options
author | Steffen Klassert <steffen.klassert@secunet.com> | 2018-02-28 09:23:19 +0100 |
---|---|---|
committer | Steffen Klassert <steffen.klassert@secunet.com> | 2018-03-01 08:14:50 +0100 |
commit | b8b549eec8187ac1b12075d69a2d84d89b5e811a (patch) | |
tree | c5acf45f7b62b6504b87f2332e2639f7fb678b49 /net/xfrm | |
parent | 013cb81e89f8a70deef086ca29a923faf5585ab0 (diff) | |
download | op-kernel-dev-b8b549eec8187ac1b12075d69a2d84d89b5e811a.zip op-kernel-dev-b8b549eec8187ac1b12075d69a2d84d89b5e811a.tar.gz |
xfrm: Fix ESN sequence number handling for IPsec GSO packets.
When IPsec offloading was introduced, we accidentally incremented
the sequence number counter on the xfrm_state by one packet
too much in the ESN case. This leads to a sequence number gap of
one packet after each GSO packet. Fix this by setting the sequence
number to the correct value.
Fixes: d7dbefc45cf5 ("xfrm: Add xfrm_replay_overflow functions for offloading")
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
Diffstat (limited to 'net/xfrm')
-rw-r--r-- | net/xfrm/xfrm_replay.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/xfrm/xfrm_replay.c b/net/xfrm/xfrm_replay.c index 1d38c6a..9e3a5e85 100644 --- a/net/xfrm/xfrm_replay.c +++ b/net/xfrm/xfrm_replay.c @@ -660,7 +660,7 @@ static int xfrm_replay_overflow_offload_esn(struct xfrm_state *x, struct sk_buff } else { XFRM_SKB_CB(skb)->seq.output.low = oseq + 1; XFRM_SKB_CB(skb)->seq.output.hi = oseq_hi; - xo->seq.low = oseq = oseq + 1; + xo->seq.low = oseq + 1; xo->seq.hi = oseq_hi; oseq += skb_shinfo(skb)->gso_segs; } |