@@ -519,6 +519,22 @@ static int xfrm_replay_recheck_esn(struct xfrm_state *x,
519
519
return xfrm_replay_check_esn (x , skb , net_seq );
520
520
}
521
521
522
+ int xfrm_replay_recheck (struct xfrm_state * x ,
523
+ struct sk_buff * skb , __be32 net_seq )
524
+ {
525
+ switch (x -> repl_mode ) {
526
+ case XFRM_REPLAY_MODE_LEGACY :
527
+ break ;
528
+ case XFRM_REPLAY_MODE_BMP :
529
+ /* no special recheck treatment */
530
+ return xfrm_replay_check_bmp (x , skb , net_seq );
531
+ case XFRM_REPLAY_MODE_ESN :
532
+ return xfrm_replay_recheck_esn (x , skb , net_seq );
533
+ }
534
+
535
+ return xfrm_replay_check (x , skb , net_seq );
536
+ }
537
+
522
538
static void xfrm_replay_advance_esn (struct xfrm_state * x , __be32 net_seq )
523
539
{
524
540
unsigned int bitnr , nr , i ;
@@ -708,37 +724,31 @@ static int xfrm_replay_overflow_offload_esn(struct xfrm_state *x, struct sk_buff
708
724
709
725
static const struct xfrm_replay xfrm_replay_legacy = {
710
726
.check = xfrm_replay_check ,
711
- .recheck = xfrm_replay_check ,
712
727
.overflow = xfrm_replay_overflow_offload ,
713
728
};
714
729
715
730
static const struct xfrm_replay xfrm_replay_bmp = {
716
731
.check = xfrm_replay_check_bmp ,
717
- .recheck = xfrm_replay_check_bmp ,
718
732
.overflow = xfrm_replay_overflow_offload_bmp ,
719
733
};
720
734
721
735
static const struct xfrm_replay xfrm_replay_esn = {
722
736
.check = xfrm_replay_check_esn ,
723
- .recheck = xfrm_replay_recheck_esn ,
724
737
.overflow = xfrm_replay_overflow_offload_esn ,
725
738
};
726
739
#else
727
740
static const struct xfrm_replay xfrm_replay_legacy = {
728
741
.check = xfrm_replay_check ,
729
- .recheck = xfrm_replay_check ,
730
742
.overflow = xfrm_replay_overflow ,
731
743
};
732
744
733
745
static const struct xfrm_replay xfrm_replay_bmp = {
734
746
.check = xfrm_replay_check_bmp ,
735
- .recheck = xfrm_replay_check_bmp ,
736
747
.overflow = xfrm_replay_overflow_bmp ,
737
748
};
738
749
739
750
static const struct xfrm_replay xfrm_replay_esn = {
740
751
.check = xfrm_replay_check_esn ,
741
- .recheck = xfrm_replay_recheck_esn ,
742
752
.overflow = xfrm_replay_overflow_esn ,
743
753
};
744
754
#endif
0 commit comments