]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
NET ROAx: add max_pxlen, fix format
authorPavel Tvrdík <pawel.tvrdik@gmail.com>
Thu, 14 Jan 2016 09:03:50 +0000 (10:03 +0100)
committerPavel Tvrdík <pawel.tvrdik@gmail.com>
Thu, 14 Jan 2016 13:31:55 +0000 (14:31 +0100)
lib/net.c
lib/net.h
nest/config.Y

index 986b57c8f2a0ee8add4c871c7685b6b5182273d4..d03a03b71900976250de10db6bdcd0b3384e6369 100644 (file)
--- a/lib/net.c
+++ b/lib/net.c
@@ -48,9 +48,9 @@ net_format(const net_addr *N, char *buf, int buflen)
   case NET_VPN6:
     return bsnprintf(buf, buflen, "%u:%u %I6/%d", (u32) (n->vpn6.rd >> 32), (u32) n->vpn6.rd, n->vpn6.prefix, n->vpn6.pxlen);
   case NET_ROA4:
-    return bsnprintf(buf, buflen, "%I4/%d AS%u",  n->roa4.prefix, n->roa4.pxlen, n->roa4.asn);
+    return bsnprintf(buf, buflen, "%I4/%u-%u AS%u",  n->roa4.prefix, n->roa4.pxlen, n->roa4.max_pxlen, n->roa4.asn);
   case NET_ROA6:
-    return bsnprintf(buf, buflen, "%I6/%d AS%u",  n->roa6.prefix, n->roa6.pxlen, n->roa6.asn);
+    return bsnprintf(buf, buflen, "%I6/%u-%u AS%u",  n->roa6.prefix, n->roa6.pxlen, n->roa6.max_pxlen, n->roa6.asn);
   }
 
   return 0;
index dbcf4253738c6c57a98e9d3772b1b43ffdd38200..dd6e597a62b7ed7efd4af4c1b91467635dfcaab0 100644 (file)
--- a/lib/net.h
+++ b/lib/net.h
@@ -64,7 +64,7 @@ typedef struct net_addr_roa4 {
   u8 pxlen;
   u16 length;
   ip4_addr prefix;
-  u8 max_pxlen;
+  u32 max_pxlen;
   u32 asn;
 } net_addr_roa4;
 
@@ -73,7 +73,7 @@ typedef struct net_addr_roa6 {
   u8 pxlen;
   u16 length;
   ip6_addr prefix;
-  u8 max_pxlen;
+  u32 max_pxlen;
   u32 asn;
 } net_addr_roa6;
 
index 963393cc0697ac10f40cbc179babcfed8b013b69..06d5c3637004f85ecd9fba6afedc686274a0e30e 100644 (file)
@@ -55,7 +55,7 @@ CF_DECLS
 
 CF_KEYWORDS(ROUTER, ID, PROTOCOL, TEMPLATE, PREFERENCE, DISABLED, DEBUG, ALL, OFF, DIRECT)
 CF_KEYWORDS(INTERFACE, IMPORT, EXPORT, FILTER, NONE, TABLE, STATES, ROUTES, FILTERS)
-CF_KEYWORDS(IPV4, IPV6, VPN4, VPN6)
+CF_KEYWORDS(IPV4, IPV6, VPN4, VPN6, ROA4, ROA6)
 CF_KEYWORDS(RECEIVE, LIMIT, ACTION, WARN, BLOCK, RESTART, DISABLE, KEEP, FILTERED)
 CF_KEYWORDS(PASSWORD, FROM, PASSIVE, TO, ID, EVENTS, PACKETS, PROTOCOLS, INTERFACES)
 CF_KEYWORDS(PRIMARY, STATS, COUNT, FOR, COMMANDS, PREEXPORT, NOEXPORT, GENERATE) /* ,ROA */
@@ -137,6 +137,8 @@ table_type:
  | IPV6 { $$ = NET_IP6; }
  | VPN4 { $$ = NET_VPN4; }
  | VPN6 { $$ = NET_VPN6; }
+ | ROA4 { $$ = NET_ROA4; }
+ | ROA6 { $$ = NET_ROA6; }
  ;
 
 table_sorted: