bgpd: 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>
diff --git a/bgpd/bgp_aspath.c b/bgpd/bgp_aspath.c
index 49b65b6..613aa44 100644
--- a/bgpd/bgp_aspath.c
+++ b/bgpd/bgp_aspath.c
@@ -1281,7 +1281,9 @@
       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 2f0a519..b467ee5 100644
--- a/bgpd/bgp_aspath.h
+++ b/bgpd/bgp_aspath.h
@@ -31,6 +31,10 @@
 #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