summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPavel Tvrdík <pawel.tvrdik@gmail.com>2016-01-14 10:03:50 +0100
committerPavel Tvrdík <pawel.tvrdik@gmail.com>2016-01-14 14:31:55 +0100
commitf9d729ab682156cc658eb451b95d7cbd37dfa139 (patch)
tree36a02b1b690fb7f85f3a713aed7f01ca2cca35c5
parent9a883adf954c2f68085a398e8ab38bd54831cf52 (diff)
NET ROAx: add max_pxlen, fix format
-rw-r--r--lib/net.c4
-rw-r--r--lib/net.h4
-rw-r--r--nest/config.Y4
3 files changed, 7 insertions, 5 deletions
diff --git a/lib/net.c b/lib/net.c
index 986b57c8..d03a03b7 100644
--- 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;
diff --git a/lib/net.h b/lib/net.h
index dbcf4253..dd6e597a 100644
--- 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;
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: