summaryrefslogtreecommitdiffstats
path: root/bgpd
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2015-05-20 02:47:20 +0200
committerDonald Sharp <sharpd@cumulusnetworks.com>2015-05-20 02:47:20 +0200
commit2e8142b2cc5739ac74d28cb707edddbc3ca4b33b (patch)
tree69be82b4cdb55f8fe1e872f3f13ad7b5ed251d7b /bgpd
parentAdd support for route tags (diff)
downloadfrr-2e8142b2cc5739ac74d28cb707edddbc3ca4b33b.tar.xz
frr-2e8142b2cc5739ac74d28cb707edddbc3ca4b33b.zip
Make the private AS number check 4 byte compatible.
Signed-off-by: Vipin Kumar <vipin@cumulusnetworks.com> Reviewed-by: Dinesh Dutt <ddutt@cumulusnetworks.com> Reviewed-by: Daniel Walton <dwalton@cumulusnetworks.com>
Diffstat (limited to 'bgpd')
-rw-r--r--bgpd/bgp_aspath.c4
-rw-r--r--bgpd/bgp_aspath.h4
2 files changed, 7 insertions, 1 deletions
diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c
index e8559bea6..4406c8b23 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 e8764cca2..e455ad217 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