diff options
Diffstat (limited to 'sharpd/sharp_vty.c')
| -rw-r--r-- | sharpd/sharp_vty.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/sharpd/sharp_vty.c b/sharpd/sharp_vty.c index 45c0799fa7..940415b067 100644 --- a/sharpd/sharp_vty.c +++ b/sharpd/sharp_vty.c @@ -163,7 +163,7 @@ DEFPY (install_routes, <nexthop <A.B.C.D$nexthop4|X:X::X:X$nexthop6>|\ nexthop-group NHGNAME$nexthop_group>\ [backup$backup <A.B.C.D$backup_nexthop4|X:X::X:X$backup_nexthop6>] \ - (1-1000000)$routes [instance (0-255)$instance] [repeat (2-1000)$rpt]", + (1-1000000)$routes [instance (0-255)$instance] [repeat (2-1000)$rpt] [opaque WORD]", "Sharp routing Protocol\n" "install some routes\n" "Routes to install\n" @@ -183,7 +183,9 @@ DEFPY (install_routes, "Instance to use\n" "Instance\n" "Should we repeat this command\n" - "How many times to repeat this command\n") + "How many times to repeat this command\n" + "What opaque data to send down\n" + "The opaque data\n") { struct vrf *vrf; struct prefix prefix; @@ -205,7 +207,7 @@ DEFPY (install_routes, memset(&sg.r.backup_nhop, 0, sizeof(sg.r.nhop)); memset(&sg.r.backup_nhop_group, 0, sizeof(sg.r.nhop_group)); - if (start4.s_addr != 0) { + if (start4.s_addr != INADDR_ANY) { prefix.family = AF_INET; prefix.prefixlen = 32; prefix.u.prefix4 = start4; @@ -292,12 +294,17 @@ DEFPY (install_routes, sg.r.backup_nhop_group.nexthop = &sg.r.backup_nhop; } + if (opaque) + strlcpy(sg.r.opaque, opaque, ZAPI_MESSAGE_OPAQUE_LENGTH); + else + sg.r.opaque[0] = '\0'; + sg.r.inst = instance; sg.r.vrf_id = vrf->vrf_id; rts = routes; sharp_install_routes_helper(&prefix, sg.r.vrf_id, sg.r.inst, nhgid, &sg.r.nhop_group, &sg.r.backup_nhop_group, - rts); + rts, sg.r.opaque); return CMD_SUCCESS; } @@ -355,7 +362,7 @@ DEFPY (remove_routes, memset(&prefix, 0, sizeof(prefix)); - if (start4.s_addr != 0) { + if (start4.s_addr != INADDR_ANY) { prefix.family = AF_INET; prefix.prefixlen = 32; prefix.u.prefix4 = start4; @@ -665,7 +672,7 @@ DEFPY (neigh_discover, memset(&prefix, 0, sizeof(prefix)); - if (dst4.s_addr != 0) { + if (dst4.s_addr != INADDR_ANY) { prefix.family = AF_INET; prefix.prefixlen = 32; prefix.u.prefix4 = dst4; |
