Lines Matching refs:replay_esn

27 	struct xfrm_replay_state_esn *replay_esn = x->replay_esn;  in xfrm_replay_seqhi()  local
33 seq_hi = replay_esn->seq_hi; in xfrm_replay_seqhi()
34 bottom = replay_esn->seq - replay_esn->replay_window + 1; in xfrm_replay_seqhi()
36 if (likely(replay_esn->seq >= replay_esn->replay_window - 1)) { in xfrm_replay_seqhi()
176 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_overflow_bmp() local
180 XFRM_SKB_CB(skb)->seq.output.low = ++replay_esn->oseq; in xfrm_replay_overflow_bmp()
182 if (unlikely(replay_esn->oseq == 0)) { in xfrm_replay_overflow_bmp()
183 replay_esn->oseq--; in xfrm_replay_overflow_bmp()
200 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_check_bmp() local
203 u32 diff = replay_esn->seq - seq; in xfrm_replay_check_bmp()
205 if (!replay_esn->replay_window) in xfrm_replay_check_bmp()
211 if (likely(seq > replay_esn->seq)) in xfrm_replay_check_bmp()
214 if (diff >= replay_esn->replay_window) { in xfrm_replay_check_bmp()
219 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_check_bmp()
222 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_check_bmp()
224 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_check_bmp()
228 if (replay_esn->bmp[nr] & (1U << bitnr)) in xfrm_replay_check_bmp()
244 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_advance_bmp() local
248 if (!replay_esn->replay_window) in xfrm_replay_advance_bmp()
251 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
253 if (seq > replay_esn->seq) { in xfrm_replay_advance_bmp()
254 diff = seq - replay_esn->seq; in xfrm_replay_advance_bmp()
256 if (diff < replay_esn->replay_window) { in xfrm_replay_advance_bmp()
258 bitnr = (pos + i) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
261 replay_esn->bmp[nr] &= ~(1U << bitnr); in xfrm_replay_advance_bmp()
264 nr = (replay_esn->replay_window - 1) >> 5; in xfrm_replay_advance_bmp()
266 replay_esn->bmp[i] = 0; in xfrm_replay_advance_bmp()
269 bitnr = (pos + diff) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
270 replay_esn->seq = seq; in xfrm_replay_advance_bmp()
272 diff = replay_esn->seq - seq; in xfrm_replay_advance_bmp()
275 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_advance_bmp()
277 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_advance_bmp()
282 replay_esn->bmp[nr] |= (1U << bitnr); in xfrm_replay_advance_bmp()
291 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_notify_bmp() local
307 ((replay_esn->seq - preplay_esn->seq < x->replay_maxdiff) && in xfrm_replay_notify_bmp()
308 (replay_esn->oseq - preplay_esn->oseq in xfrm_replay_notify_bmp()
319 if (memcmp(x->replay_esn, x->preplay_esn, in xfrm_replay_notify_bmp()
320 xfrm_replay_state_esn_len(replay_esn)) == 0) { in xfrm_replay_notify_bmp()
328 memcpy(x->preplay_esn, x->replay_esn, in xfrm_replay_notify_bmp()
329 xfrm_replay_state_esn_len(replay_esn)); in xfrm_replay_notify_bmp()
343 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_notify_esn() local
359 if (replay_esn->seq_hi == preplay_esn->seq_hi) in xfrm_replay_notify_esn()
360 seq_diff = replay_esn->seq - preplay_esn->seq; in xfrm_replay_notify_esn()
362 seq_diff = ~preplay_esn->seq + replay_esn->seq in xfrm_replay_notify_esn()
365 if (replay_esn->oseq_hi == preplay_esn->oseq_hi) in xfrm_replay_notify_esn()
366 oseq_diff = replay_esn->oseq in xfrm_replay_notify_esn()
370 + replay_esn->oseq + 1; in xfrm_replay_notify_esn()
385 if (memcmp(x->replay_esn, x->preplay_esn, in xfrm_replay_notify_esn()
386 xfrm_replay_state_esn_len(replay_esn)) == 0) { in xfrm_replay_notify_esn()
394 memcpy(x->preplay_esn, x->replay_esn, in xfrm_replay_notify_esn()
395 xfrm_replay_state_esn_len(replay_esn)); in xfrm_replay_notify_esn()
408 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_overflow_esn() local
412 XFRM_SKB_CB(skb)->seq.output.low = ++replay_esn->oseq; in xfrm_replay_overflow_esn()
413 XFRM_SKB_CB(skb)->seq.output.hi = replay_esn->oseq_hi; in xfrm_replay_overflow_esn()
415 if (unlikely(replay_esn->oseq == 0)) { in xfrm_replay_overflow_esn()
416 XFRM_SKB_CB(skb)->seq.output.hi = ++replay_esn->oseq_hi; in xfrm_replay_overflow_esn()
418 if (replay_esn->oseq_hi == 0) { in xfrm_replay_overflow_esn()
419 replay_esn->oseq--; in xfrm_replay_overflow_esn()
420 replay_esn->oseq_hi--; in xfrm_replay_overflow_esn()
439 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_check_esn() local
442 u32 wsize = replay_esn->replay_window; in xfrm_replay_check_esn()
443 u32 top = replay_esn->seq; in xfrm_replay_check_esn()
449 if (unlikely(seq == 0 && replay_esn->seq_hi == 0 && in xfrm_replay_check_esn()
450 (replay_esn->seq < replay_esn->replay_window - 1))) in xfrm_replay_check_esn()
467 if (diff >= replay_esn->replay_window) { in xfrm_replay_check_esn()
472 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_check_esn()
475 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_check_esn()
477 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_check_esn()
481 if (replay_esn->bmp[nr] & (1U << bitnr)) in xfrm_replay_check_esn()
510 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_replay_advance_esn() local
512 if (!replay_esn->replay_window) in xfrm_replay_advance_esn()
516 pos = (replay_esn->seq - 1) % replay_esn->replay_window; in xfrm_replay_advance_esn()
518 wrap = seq_hi - replay_esn->seq_hi; in xfrm_replay_advance_esn()
520 if ((!wrap && seq > replay_esn->seq) || wrap > 0) { in xfrm_replay_advance_esn()
522 diff = seq - replay_esn->seq; in xfrm_replay_advance_esn()
524 diff = ~replay_esn->seq + seq + 1; in xfrm_replay_advance_esn()
526 if (diff < replay_esn->replay_window) { in xfrm_replay_advance_esn()
528 bitnr = (pos + i) % replay_esn->replay_window; in xfrm_replay_advance_esn()
531 replay_esn->bmp[nr] &= ~(1U << bitnr); in xfrm_replay_advance_esn()
534 nr = (replay_esn->replay_window - 1) >> 5; in xfrm_replay_advance_esn()
536 replay_esn->bmp[i] = 0; in xfrm_replay_advance_esn()
539 bitnr = (pos + diff) % replay_esn->replay_window; in xfrm_replay_advance_esn()
540 replay_esn->seq = seq; in xfrm_replay_advance_esn()
543 replay_esn->seq_hi++; in xfrm_replay_advance_esn()
545 diff = replay_esn->seq - seq; in xfrm_replay_advance_esn()
548 bitnr = (pos - diff) % replay_esn->replay_window; in xfrm_replay_advance_esn()
550 bitnr = replay_esn->replay_window - (diff - pos); in xfrm_replay_advance_esn()
555 replay_esn->bmp[nr] |= (1U << bitnr); in xfrm_replay_advance_esn()
587 struct xfrm_replay_state_esn *replay_esn = x->replay_esn; in xfrm_init_replay() local
589 if (replay_esn) { in xfrm_init_replay()
590 if (replay_esn->replay_window > in xfrm_init_replay()
591 replay_esn->bmp_len * sizeof(__u32) * 8) in xfrm_init_replay()
595 if (replay_esn->replay_window == 0) in xfrm_init_replay()