Lines Matching refs:replay_esn

15 	struct xfrm_replay_state_esn *replay_esn = x->replay_esn;  in xfrm_replay_seqhi()  local
21 seq_hi = replay_esn->seq_hi; in xfrm_replay_seqhi()
22 bottom = replay_esn->seq - replay_esn->replay_window + 1; in xfrm_replay_seqhi()
24 if (likely(replay_esn->seq >= replay_esn->replay_window - 1)) { in xfrm_replay_seqhi()
192 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_overflow_bmp() local
196 XFRM_SKB_CB(skb)->seq.output.low = ++replay_esn->oseq; in xfrm_replay_overflow_bmp()
198 if (unlikely(replay_esn->oseq == 0) && in xfrm_replay_overflow_bmp()
200 replay_esn->oseq--; in xfrm_replay_overflow_bmp()
217 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_check_bmp() local
220 u32 diff = replay_esn->seq - seq; in xfrm_replay_check_bmp()
222 if (!replay_esn->replay_window) in xfrm_replay_check_bmp()
228 if (likely(seq > replay_esn->seq)) in xfrm_replay_check_bmp()
231 if (diff >= replay_esn->replay_window) { in xfrm_replay_check_bmp()
236 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_check_bmp()
239 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_check_bmp()
241 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_check_bmp()
245 if (replay_esn->bmp[nr] & (1U << bitnr)) in xfrm_replay_check_bmp()
261 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_advance_bmp() local
265 if (!replay_esn->replay_window) in xfrm_replay_advance_bmp()
268 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
270 if (seq > replay_esn->seq) { in xfrm_replay_advance_bmp()
271 diff = seq - replay_esn->seq; in xfrm_replay_advance_bmp()
273 if (diff < replay_esn->replay_window) { in xfrm_replay_advance_bmp()
275 bitnr = (pos + i) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
278 replay_esn->bmp[nr] &= ~(1U << bitnr); in xfrm_replay_advance_bmp()
281 nr = (replay_esn->replay_window - 1) >> 5; in xfrm_replay_advance_bmp()
283 replay_esn->bmp[i] = 0; in xfrm_replay_advance_bmp()
286 bitnr = (pos + diff) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
287 replay_esn->seq = seq; in xfrm_replay_advance_bmp()
289 diff = replay_esn->seq - seq; in xfrm_replay_advance_bmp()
292 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
294 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_advance_bmp()
299 replay_esn->bmp[nr] |= (1U << bitnr); in xfrm_replay_advance_bmp()
308 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_notify_bmp() local
324 ((replay_esn->seq - preplay_esn->seq < x->replay_maxdiff) && in xfrm_replay_notify_bmp()
325 (replay_esn->oseq - preplay_esn->oseq in xfrm_replay_notify_bmp()
336 if (memcmp(x->replay_esn, x->preplay_esn, in xfrm_replay_notify_bmp()
337 xfrm_replay_state_esn_len(replay_esn)) == 0) { in xfrm_replay_notify_bmp()
345 memcpy(x->preplay_esn, x->replay_esn, in xfrm_replay_notify_bmp()
346 xfrm_replay_state_esn_len(replay_esn)); in xfrm_replay_notify_bmp()
360 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_notify_esn() local
376 if (replay_esn->seq_hi == preplay_esn->seq_hi) in xfrm_replay_notify_esn()
377 seq_diff = replay_esn->seq - preplay_esn->seq; in xfrm_replay_notify_esn()
379 seq_diff = ~preplay_esn->seq + replay_esn->seq in xfrm_replay_notify_esn()
382 if (replay_esn->oseq_hi == preplay_esn->oseq_hi) in xfrm_replay_notify_esn()
383 oseq_diff = replay_esn->oseq in xfrm_replay_notify_esn()
387 + replay_esn->oseq + 1; in xfrm_replay_notify_esn()
402 if (memcmp(x->replay_esn, x->preplay_esn, in xfrm_replay_notify_esn()
403 xfrm_replay_state_esn_len(replay_esn)) == 0) { in xfrm_replay_notify_esn()
411 memcpy(x->preplay_esn, x->replay_esn, in xfrm_replay_notify_esn()
412 xfrm_replay_state_esn_len(replay_esn)); in xfrm_replay_notify_esn()
425 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_overflow_esn() local
429 XFRM_SKB_CB(skb)->seq.output.low = ++replay_esn->oseq; in xfrm_replay_overflow_esn()
430 XFRM_SKB_CB(skb)->seq.output.hi = replay_esn->oseq_hi; in xfrm_replay_overflow_esn()
432 if (unlikely(replay_esn->oseq == 0)) { in xfrm_replay_overflow_esn()
433 XFRM_SKB_CB(skb)->seq.output.hi = ++replay_esn->oseq_hi; in xfrm_replay_overflow_esn()
435 if (replay_esn->oseq_hi == 0) { in xfrm_replay_overflow_esn()
436 replay_esn->oseq--; in xfrm_replay_overflow_esn()
437 replay_esn->oseq_hi--; in xfrm_replay_overflow_esn()
456 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_check_esn() local
459 u32 wsize = replay_esn->replay_window; in xfrm_replay_check_esn()
460 u32 top = replay_esn->seq; in xfrm_replay_check_esn()
466 if (unlikely(seq == 0 && replay_esn->seq_hi == 0 && in xfrm_replay_check_esn()
467 (replay_esn->seq < replay_esn->replay_window - 1))) in xfrm_replay_check_esn()
484 if (diff >= replay_esn->replay_window) { in xfrm_replay_check_esn()
489 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_check_esn()
492 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_check_esn()
494 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_check_esn()
498 if (replay_esn->bmp[nr] & (1U << bitnr)) in xfrm_replay_check_esn()
558 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_advance_esn() local
560 if (!replay_esn->replay_window) in xfrm_replay_advance_esn()
564 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_advance_esn()
566 wrap = seq_hi - replay_esn->seq_hi; in xfrm_replay_advance_esn()
568 if ((!wrap && seq > replay_esn->seq) || wrap > 0) { in xfrm_replay_advance_esn()
570 diff = seq - replay_esn->seq; in xfrm_replay_advance_esn()
572 diff = ~replay_esn->seq + seq + 1; in xfrm_replay_advance_esn()
574 if (diff < replay_esn->replay_window) { in xfrm_replay_advance_esn()
576 bitnr = (pos + i) % replay_esn->replay_window; in xfrm_replay_advance_esn()
579 replay_esn->bmp[nr] &= ~(1U << bitnr); in xfrm_replay_advance_esn()
582 nr = (replay_esn->replay_window - 1) >> 5; in xfrm_replay_advance_esn()
584 replay_esn->bmp[i] = 0; in xfrm_replay_advance_esn()
587 bitnr = (pos + diff) % replay_esn->replay_window; in xfrm_replay_advance_esn()
588 replay_esn->seq = seq; in xfrm_replay_advance_esn()
591 replay_esn->seq_hi++; in xfrm_replay_advance_esn()
593 diff = replay_esn->seq - seq; in xfrm_replay_advance_esn()
596 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_advance_esn()
598 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_advance_esn()
605 replay_esn->bmp[nr] |= (1U << bitnr); in xfrm_replay_advance_esn()
655 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_overflow_offload_bmp() local
657 __u32 oseq = replay_esn->oseq; in xfrm_replay_overflow_offload_bmp()
674 if (unlikely(oseq < replay_esn->oseq) && in xfrm_replay_overflow_offload_bmp()
681 replay_esn->oseq = oseq; in xfrm_replay_overflow_offload_bmp()
695 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_overflow_offload_esn() local
697 __u32 oseq = replay_esn->oseq; in xfrm_replay_overflow_offload_esn()
698 __u32 oseq_hi = replay_esn->oseq_hi; in xfrm_replay_overflow_offload_esn()
717 if (unlikely(xo->seq.low < replay_esn->oseq)) { in xfrm_replay_overflow_offload_esn()
720 replay_esn->oseq_hi = oseq_hi; in xfrm_replay_overflow_offload_esn()
721 if (replay_esn->oseq_hi == 0) { in xfrm_replay_overflow_offload_esn()
722 replay_esn->oseq--; in xfrm_replay_overflow_offload_esn()
723 replay_esn->oseq_hi--; in xfrm_replay_overflow_offload_esn()
731 replay_esn->oseq = oseq; in xfrm_replay_overflow_offload_esn()
771 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_init_replay() local
773 if (replay_esn) { in xfrm_init_replay()
774 if (replay_esn->replay_window > in xfrm_init_replay()
775 replay_esn->bmp_len * sizeof(__u32) * 8) { in xfrm_init_replay()
781 if (replay_esn->replay_window == 0) { in xfrm_init_replay()