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()
166 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_overflow_bmp() local
170 XFRM_SKB_CB(skb)->seq.output.low = ++replay_esn->oseq; in xfrm_replay_overflow_bmp()
172 if (unlikely(replay_esn->oseq == 0) && in xfrm_replay_overflow_bmp()
174 replay_esn->oseq--; in xfrm_replay_overflow_bmp()
191 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_check_bmp() local
194 u32 diff = replay_esn->seq - seq; in xfrm_replay_check_bmp()
196 if (!replay_esn->replay_window) in xfrm_replay_check_bmp()
202 if (likely(seq > replay_esn->seq)) in xfrm_replay_check_bmp()
205 if (diff >= replay_esn->replay_window) { in xfrm_replay_check_bmp()
210 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_check_bmp()
213 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_check_bmp()
215 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_check_bmp()
219 if (replay_esn->bmp[nr] & (1U << bitnr)) in xfrm_replay_check_bmp()
235 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_advance_bmp() local
239 if (!replay_esn->replay_window) in xfrm_replay_advance_bmp()
242 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
244 if (seq > replay_esn->seq) { in xfrm_replay_advance_bmp()
245 diff = seq - replay_esn->seq; in xfrm_replay_advance_bmp()
247 if (diff < replay_esn->replay_window) { in xfrm_replay_advance_bmp()
249 bitnr = (pos + i) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
252 replay_esn->bmp[nr] &= ~(1U << bitnr); in xfrm_replay_advance_bmp()
255 nr = (replay_esn->replay_window - 1) >> 5; in xfrm_replay_advance_bmp()
257 replay_esn->bmp[i] = 0; in xfrm_replay_advance_bmp()
260 bitnr = (pos + diff) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
261 replay_esn->seq = seq; in xfrm_replay_advance_bmp()
263 diff = replay_esn->seq - seq; in xfrm_replay_advance_bmp()
266 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
268 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_advance_bmp()
273 replay_esn->bmp[nr] |= (1U << bitnr); in xfrm_replay_advance_bmp()
282 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_notify_bmp() local
298 ((replay_esn->seq - preplay_esn->seq < x->replay_maxdiff) && in xfrm_replay_notify_bmp()
299 (replay_esn->oseq - preplay_esn->oseq in xfrm_replay_notify_bmp()
310 if (memcmp(x->replay_esn, x->preplay_esn, in xfrm_replay_notify_bmp()
311 xfrm_replay_state_esn_len(replay_esn)) == 0) { in xfrm_replay_notify_bmp()
319 memcpy(x->preplay_esn, x->replay_esn, in xfrm_replay_notify_bmp()
320 xfrm_replay_state_esn_len(replay_esn)); in xfrm_replay_notify_bmp()
334 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_notify_esn() local
350 if (replay_esn->seq_hi == preplay_esn->seq_hi) in xfrm_replay_notify_esn()
351 seq_diff = replay_esn->seq - preplay_esn->seq; in xfrm_replay_notify_esn()
353 seq_diff = ~preplay_esn->seq + replay_esn->seq in xfrm_replay_notify_esn()
356 if (replay_esn->oseq_hi == preplay_esn->oseq_hi) in xfrm_replay_notify_esn()
357 oseq_diff = replay_esn->oseq in xfrm_replay_notify_esn()
361 + replay_esn->oseq + 1; in xfrm_replay_notify_esn()
376 if (memcmp(x->replay_esn, x->preplay_esn, in xfrm_replay_notify_esn()
377 xfrm_replay_state_esn_len(replay_esn)) == 0) { in xfrm_replay_notify_esn()
385 memcpy(x->preplay_esn, x->replay_esn, in xfrm_replay_notify_esn()
386 xfrm_replay_state_esn_len(replay_esn)); in xfrm_replay_notify_esn()
399 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_overflow_esn() local
403 XFRM_SKB_CB(skb)->seq.output.low = ++replay_esn->oseq; in xfrm_replay_overflow_esn()
404 XFRM_SKB_CB(skb)->seq.output.hi = replay_esn->oseq_hi; in xfrm_replay_overflow_esn()
406 if (unlikely(replay_esn->oseq == 0)) { in xfrm_replay_overflow_esn()
407 XFRM_SKB_CB(skb)->seq.output.hi = ++replay_esn->oseq_hi; in xfrm_replay_overflow_esn()
409 if (replay_esn->oseq_hi == 0) { in xfrm_replay_overflow_esn()
410 replay_esn->oseq--; in xfrm_replay_overflow_esn()
411 replay_esn->oseq_hi--; in xfrm_replay_overflow_esn()
430 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_check_esn() local
433 u32 wsize = replay_esn->replay_window; in xfrm_replay_check_esn()
434 u32 top = replay_esn->seq; in xfrm_replay_check_esn()
440 if (unlikely(seq == 0 && replay_esn->seq_hi == 0 && in xfrm_replay_check_esn()
441 (replay_esn->seq < replay_esn->replay_window - 1))) in xfrm_replay_check_esn()
458 if (diff >= replay_esn->replay_window) { in xfrm_replay_check_esn()
463 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_check_esn()
466 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_check_esn()
468 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_check_esn()
472 if (replay_esn->bmp[nr] & (1U << bitnr)) in xfrm_replay_check_esn()
501 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_advance_esn() local
503 if (!replay_esn->replay_window) in xfrm_replay_advance_esn()
507 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_advance_esn()
509 wrap = seq_hi - replay_esn->seq_hi; in xfrm_replay_advance_esn()
511 if ((!wrap && seq > replay_esn->seq) || wrap > 0) { in xfrm_replay_advance_esn()
513 diff = seq - replay_esn->seq; in xfrm_replay_advance_esn()
515 diff = ~replay_esn->seq + seq + 1; in xfrm_replay_advance_esn()
517 if (diff < replay_esn->replay_window) { in xfrm_replay_advance_esn()
519 bitnr = (pos + i) % replay_esn->replay_window; in xfrm_replay_advance_esn()
522 replay_esn->bmp[nr] &= ~(1U << bitnr); in xfrm_replay_advance_esn()
525 nr = (replay_esn->replay_window - 1) >> 5; in xfrm_replay_advance_esn()
527 replay_esn->bmp[i] = 0; in xfrm_replay_advance_esn()
530 bitnr = (pos + diff) % replay_esn->replay_window; in xfrm_replay_advance_esn()
531 replay_esn->seq = seq; in xfrm_replay_advance_esn()
534 replay_esn->seq_hi++; in xfrm_replay_advance_esn()
536 diff = replay_esn->seq - seq; in xfrm_replay_advance_esn()
539 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_advance_esn()
541 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_advance_esn()
548 replay_esn->bmp[nr] |= (1U << bitnr); in xfrm_replay_advance_esn()
598 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_overflow_offload_bmp() local
600 __u32 oseq = replay_esn->oseq; in xfrm_replay_overflow_offload_bmp()
617 if (unlikely(oseq < replay_esn->oseq) && in xfrm_replay_overflow_offload_bmp()
624 replay_esn->oseq = oseq; in xfrm_replay_overflow_offload_bmp()
638 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_overflow_offload_esn() local
640 __u32 oseq = replay_esn->oseq; in xfrm_replay_overflow_offload_esn()
641 __u32 oseq_hi = replay_esn->oseq_hi; in xfrm_replay_overflow_offload_esn()
660 if (unlikely(xo->seq.low < replay_esn->oseq)) { in xfrm_replay_overflow_offload_esn()
663 replay_esn->oseq_hi = oseq_hi; in xfrm_replay_overflow_offload_esn()
664 if (replay_esn->oseq_hi == 0) { in xfrm_replay_overflow_offload_esn()
665 replay_esn->oseq--; in xfrm_replay_overflow_offload_esn()
666 replay_esn->oseq_hi--; in xfrm_replay_overflow_offload_esn()
674 replay_esn->oseq = oseq; in xfrm_replay_overflow_offload_esn()
734 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_init_replay() local
736 if (replay_esn) { in xfrm_init_replay()
737 if (replay_esn->replay_window > in xfrm_init_replay()
738 replay_esn->bmp_len * sizeof(__u32) * 8) in xfrm_init_replay()
742 if (replay_esn->replay_window == 0) in xfrm_init_replay()