diff options
| author | anlan_cs <anlan_cs@tom.com> | 2021-08-18 01:58:54 -0400 | 
|---|---|---|
| committer | anlan_cs <anlan_cs@tom.com> | 2021-08-18 19:34:03 -0400 | 
| commit | 21683186a0ae2eb06f18129fe6557c3ace1e38c7 (patch) | |
| tree | 360d4ca41d0d3d2e6d8c3a6c767005ccadaa178e | |
| parent | 0512687b30b97f2fed4a6aa0200e2addb1a4b7a0 (diff) | |
zebra: fix wrong check of mpls command
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>
| -rw-r--r-- | zebra/zebra_mpls_vty.c | 26 | 
1 files changed, 12 insertions, 14 deletions
diff --git a/zebra/zebra_mpls_vty.c b/zebra/zebra_mpls_vty.c index 1ef70270f8..fd9b1ae387 100644 --- a/zebra/zebra_mpls_vty.c +++ b/zebra/zebra_mpls_vty.c @@ -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; +			}  		}  	}  | 
