[IPSEC]: Sync series - fast path
Fast path sequence updates that will generate ipsec async events Signed-off-by: Jamal Hadi Salim <hadi@cyberus.ca> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f8cd54884e
commit
9500e8a81f
4 changed files with 4 additions and 0 deletions
|
@ -97,6 +97,7 @@ static int ah_output(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
ah->reserved = 0;
|
ah->reserved = 0;
|
||||||
ah->spi = x->id.spi;
|
ah->spi = x->id.spi;
|
||||||
ah->seq_no = htonl(++x->replay.oseq);
|
ah->seq_no = htonl(++x->replay.oseq);
|
||||||
|
xfrm_aevent_doreplay(x);
|
||||||
ahp->icv(ahp, skb, ah->auth_data);
|
ahp->icv(ahp, skb, ah->auth_data);
|
||||||
|
|
||||||
top_iph->tos = iph->tos;
|
top_iph->tos = iph->tos;
|
||||||
|
|
|
@ -90,6 +90,7 @@ static int esp_output(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
|
|
||||||
esph->spi = x->id.spi;
|
esph->spi = x->id.spi;
|
||||||
esph->seq_no = htonl(++x->replay.oseq);
|
esph->seq_no = htonl(++x->replay.oseq);
|
||||||
|
xfrm_aevent_doreplay(x);
|
||||||
|
|
||||||
if (esp->conf.ivlen)
|
if (esp->conf.ivlen)
|
||||||
crypto_cipher_set_iv(tfm, esp->conf.ivec, crypto_tfm_alg_ivsize(tfm));
|
crypto_cipher_set_iv(tfm, esp->conf.ivec, crypto_tfm_alg_ivsize(tfm));
|
||||||
|
|
|
@ -213,6 +213,7 @@ static int ah6_output(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
ah->reserved = 0;
|
ah->reserved = 0;
|
||||||
ah->spi = x->id.spi;
|
ah->spi = x->id.spi;
|
||||||
ah->seq_no = htonl(++x->replay.oseq);
|
ah->seq_no = htonl(++x->replay.oseq);
|
||||||
|
xfrm_aevent_doreplay(x);
|
||||||
ahp->icv(ahp, skb, ah->auth_data);
|
ahp->icv(ahp, skb, ah->auth_data);
|
||||||
|
|
||||||
err = 0;
|
err = 0;
|
||||||
|
|
|
@ -94,6 +94,7 @@ static int esp6_output(struct xfrm_state *x, struct sk_buff *skb)
|
||||||
|
|
||||||
esph->spi = x->id.spi;
|
esph->spi = x->id.spi;
|
||||||
esph->seq_no = htonl(++x->replay.oseq);
|
esph->seq_no = htonl(++x->replay.oseq);
|
||||||
|
xfrm_aevent_doreplay(x);
|
||||||
|
|
||||||
if (esp->conf.ivlen)
|
if (esp->conf.ivlen)
|
||||||
crypto_cipher_set_iv(tfm, esp->conf.ivec, crypto_tfm_alg_ivsize(tfm));
|
crypto_cipher_set_iv(tfm, esp->conf.ivec, crypto_tfm_alg_ivsize(tfm));
|
||||||
|
|
Loading…
Reference in a new issue