diff options
| -rw-r--r-- | bgpd/bgp_aspath.c | 4 | ||||
| -rw-r--r-- | bgpd/bgp_aspath.h | 4 | 
2 files changed, 7 insertions, 1 deletions
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  | 
