From 2e8142b2cc5739ac74d28cb707edddbc3ca4b33b Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Tue, 19 May 2015 17:47:20 -0700 Subject: [PATCH] Make the private AS number check 4 byte compatible. Signed-off-by: Vipin Kumar Reviewed-by: Dinesh Dutt Reviewed-by: Daniel Walton --- bgpd/bgp_aspath.c | 4 +++- bgpd/bgp_aspath.h | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c index e8559bea6f..4406c8b23a 100644 --- a/bgpd/bgp_aspath.c +++ b/bgpd/bgp_aspath.c @@ -1138,7 +1138,9 @@ aspath_private_as_check (struct aspath *aspath) for (i = 0; i < seg->length; i++) { if ( (seg->as[i] < BGP_PRIVATE_AS_MIN) - || (seg->as[i] > BGP_PRIVATE_AS_MAX) ) + || (seg->as[i] > BGP_PRIVATE_AS_MAX && + seg->as[i] < BGP_PRIVATE_AS4_MIN) + || (seg->as[i] > BGP_PRIVATE_AS4_MAX)) return 0; } seg = seg->next; diff --git a/bgpd/bgp_aspath.h b/bgpd/bgp_aspath.h index e8764cca2c..e455ad217f 100644 --- a/bgpd/bgp_aspath.h +++ b/bgpd/bgp_aspath.h @@ -31,6 +31,10 @@ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA #define BGP_PRIVATE_AS_MIN 64512U #define BGP_PRIVATE_AS_MAX 65535U +/* Private 4 byte AS range defined in RFC6996. */ +#define BGP_PRIVATE_AS4_MIN 4200000000U +#define BGP_PRIVATE_AS4_MAX 4294967294U + /* we leave BGP_AS_MAX as the 16bit AS MAX number. */ #define BGP_AS_MAX 65535U #define BGP_AS4_MAX 4294967295U -- 2.39.5