diff options
-rw-r--r-- | lib/net.c | 4 | ||||
-rw-r--r-- | lib/net.h | 4 | ||||
-rw-r--r-- | nest/config.Y | 4 |
3 files changed, 7 insertions, 5 deletions
@@ -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; @@ -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; diff --git a/nest/config.Y b/nest/config.Y index 963393cc..06d5c363 100644 --- a/nest/config.Y +++ b/nest/config.Y @@ -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: |