summaryrefslogtreecommitdiffstats
path: root/sharpd/sharp_vty.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2019-01-10 00:58:36 +0100
committerDonald Sharp <sharpd@cumulusnetworks.com>2019-01-11 01:26:31 +0100
commitdbc1bf462b5ca972b26e6e12a665f3a4625b3557 (patch)
treec1f1860a1e400e9595594d26316489848ca5b644 /sharpd/sharp_vty.c
parentlib: Add another 32 bit accessor to the prefix data structure (diff)
downloadfrr-dbc1bf462b5ca972b26e6e12a665f3a4625b3557.tar.xz
frr-dbc1bf462b5ca972b26e6e12a665f3a4625b3557.zip
sharpd: Allow route install/removal of v6 routes.
Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com>
Diffstat (limited to 'sharpd/sharp_vty.c')
-rw-r--r--sharpd/sharp_vty.c31
1 files changed, 22 insertions, 9 deletions
diff --git a/sharpd/sharp_vty.c b/sharpd/sharp_vty.c
index d0a34c0f9..ea878323f 100644
--- a/sharpd/sharp_vty.c
+++ b/sharpd/sharp_vty.c
@@ -90,11 +90,12 @@ DEFPY(watch_nexthop_v4, watch_nexthop_v4_cmd,
DEFPY (install_routes,
install_routes_cmd,
- "sharp install routes A.B.C.D$start <nexthop <A.B.C.D$nexthop4|X:X::X:X$nexthop6>|nexthop-group NAME$nexthop_group> (1-1000000)$routes [instance (0-255)$instance] [repeat (2-1000)$rpt]",
+ "sharp install routes <A.B.C.D$start4|X:X::X:X$start6> <nexthop <A.B.C.D$nexthop4|X:X::X:X$nexthop6>|nexthop-group NAME$nexthop_group> (1-1000000)$routes [instance (0-255)$instance] [repeat (2-1000)$rpt]",
"Sharp routing Protocol\n"
"install some routes\n"
"Routes to install\n"
- "Address to start /32 generation at\n"
+ "v4 Address to start /32 generation at\n"
+ "v6 Address to start /32 generation at\n"
"Nexthop to use(Can be an IPv4 or IPv6 address)\n"
"V4 Nexthop address to use\n"
"V6 Nexthop address to use\n"
@@ -119,9 +120,15 @@ DEFPY (install_routes,
memset(&nhop, 0, sizeof(nhop));
memset(&nhop_group, 0, sizeof(nhop_group));
- prefix.family = AF_INET;
- prefix.prefixlen = 32;
- prefix.u.prefix4 = start;
+ if (start4.s_addr != 0) {
+ prefix.family = AF_INET;
+ prefix.prefixlen = 32;
+ prefix.u.prefix4 = start4;
+ } else {
+ prefix.family = AF_INET6;
+ prefix.prefixlen = 128;
+ prefix.u.prefix6 = start6;
+ }
orig_prefix = prefix;
if (nexthop_group) {
@@ -185,7 +192,7 @@ DEFPY(vrf_label, vrf_label_cmd,
DEFPY (remove_routes,
remove_routes_cmd,
- "sharp remove routes A.B.C.D$start (1-1000000)$routes [instance (0-255)$instance]",
+ "sharp remove routes <A.B.C.D$start4|X:X::X:X$start6> (1-1000000)$routes [instance (0-255)$instance]",
"Sharp Routing Protocol\n"
"Remove some routes\n"
"Routes to remove\n"
@@ -199,9 +206,15 @@ DEFPY (remove_routes,
memset(&prefix, 0, sizeof(prefix));
- prefix.family = AF_INET;
- prefix.prefixlen = 32;
- prefix.u.prefix4 = start;
+ if (start4.s_addr != 0) {
+ prefix.family = AF_INET;
+ prefix.prefixlen = 32;
+ prefix.u.prefix4 = start4;
+ } else {
+ prefix.family = AF_INET6;
+ prefix.prefixlen = 128;
+ prefix.u.prefix6 = start6;
+ }
inst = instance;
rts = routes;