]> git.puffer.fish Git - mirror/frr.git/commitdiff
zebra: fix wrong check of mpls command 9434/head
authoranlan_cs <anlan_cs@tom.com>
Wed, 18 Aug 2021 05:58:54 +0000 (01:58 -0400)
committeranlan_cs <anlan_cs@tom.com>
Wed, 18 Aug 2021 23:34:03 +0000 (19:34 -0400)
Maybe with empty nexthop to call zebra_mpls_transit_lsp():
"no mpls lsp (16-1048575)".

So just remove this "gate_str" check. If without "gate" in command, "gtype" is
set to NEXTHOP_TYPE_BLACKHOLE for subsequent processing.

Signed-off-by: anlan_cs <anlan_cs@tom.com>
zebra/zebra_mpls_vty.c

index 1ef70270f82c94caa22e514d5eb11b6f43a377c4..fd9b1ae387a14b2855ae2b516ce8ecd8b5e30158 100644 (file)
@@ -67,11 +67,6 @@ static int zebra_mpls_transit_lsp(struct vty *vty, int add_cmd,
                return CMD_WARNING_CONFIG_FAILED;
        }
 
-       if (gate_str == NULL) {
-               vty_out(vty, "%% No Nexthop Information\n");
-               return CMD_WARNING_CONFIG_FAILED;
-       }
-
        out_label = MPLS_LABEL_IMPLICIT_NULL; /* as initialization */
        label = atoi(inlabel_str);
        if (!IS_MPLS_UNRESERVED_LABEL(label)) {
@@ -91,18 +86,21 @@ static int zebra_mpls_transit_lsp(struct vty *vty, int add_cmd,
        }
 
        in_label = label;
+       gtype = NEXTHOP_TYPE_BLACKHOLE; /* as initialization */
 
-       /* Gateway is a IPv4 or IPv6 nexthop. */
-       ret = inet_pton(AF_INET6, gate_str, &gate.ipv6);
-       if (ret == 1)
-               gtype = NEXTHOP_TYPE_IPV6;
-       else {
-               ret = inet_pton(AF_INET, gate_str, &gate.ipv4);
+       if (gate_str) {
+               /* Gateway is a IPv4 or IPv6 nexthop. */
+               ret = inet_pton(AF_INET6, gate_str, &gate.ipv6);
                if (ret == 1)
-                       gtype = NEXTHOP_TYPE_IPV4;
+                       gtype = NEXTHOP_TYPE_IPV6;
                else {
-                       vty_out(vty, "%% Invalid nexthop\n");
-                       return CMD_WARNING_CONFIG_FAILED;
+                       ret = inet_pton(AF_INET, gate_str, &gate.ipv4);
+                       if (ret == 1)
+                               gtype = NEXTHOP_TYPE_IPV4;
+                       else {
+                               vty_out(vty, "%% Invalid nexthop\n");
+                               return CMD_WARNING_CONFIG_FAILED;
+                       }
                }
        }