summaryrefslogtreecommitdiff
path: root/zebra
diff options
context:
space:
mode:
authoranlan_cs <anlan_cs@tom.com>2024-05-16 16:44:45 +0800
committerMergify <37929162+mergify[bot]@users.noreply.github.com>2024-05-18 13:13:09 +0000
commit0f9fdde1b5dc69c1bf69ffa5b3bd64c7f664e88f (patch)
tree142fd8273d24824a10a8c5585721e08760bb9769 /zebra
parenta784c34ed801bb1bbebe2165eb6a896a8e95823c (diff)
zebra: fix mpls command
Configured with "mpls label bind 1.1.1.1/32 explicit-null", the running configuration is: ``` ! mpls label bind 1.1.1.1/32 IPv4 Explicit Null ! ``` After this commit, the running configuration is: ``` ! mpls label bind 1.1.1.1/32 explicit-null ! ``` And add the support for the "no" form: ``` anlan(config)# mpls label bind 1.1.1.1/32 explicit-null anlan(config)# no mpls label bind 1.1.1.1/32 explicit-null ``` Signed-off-by: anlan_cs <anlan_cs@tom.com> (cherry picked from commit 05ad3ccb034c174d2e853e88b826ca0db1e77f45)
Diffstat (limited to 'zebra')
-rw-r--r--zebra/zebra_mpls.c12
-rw-r--r--zebra/zebra_mpls_vty.c5
2 files changed, 13 insertions, 4 deletions
diff --git a/zebra/zebra_mpls.c b/zebra/zebra_mpls.c
index 15e36acda8..39fc678c23 100644
--- a/zebra/zebra_mpls.c
+++ b/zebra/zebra_mpls.c
@@ -2634,8 +2634,16 @@ int zebra_mpls_write_fec_config(struct vty *vty, struct zebra_vrf *zvrf)
continue;
write = 1;
- vty_out(vty, "mpls label bind %pFX %s\n", &rn->p,
- label2str(fec->label, 0, lstr, BUFSIZ));
+
+ if (fec->label == MPLS_LABEL_IPV4_EXPLICIT_NULL ||
+ fec->label == MPLS_LABEL_IPV6_EXPLICIT_NULL)
+ strlcpy(lstr, "explicit-null", sizeof(lstr));
+ else if (fec->label == MPLS_LABEL_IMPLICIT_NULL)
+ strlcpy(lstr, "implicit-null", sizeof(lstr));
+ else
+ snprintf(lstr, sizeof(lstr), "%d", fec->label);
+
+ vty_out(vty, "mpls label bind %pFX %s\n", &rn->p, lstr);
}
}
diff --git a/zebra/zebra_mpls_vty.c b/zebra/zebra_mpls_vty.c
index fd09e6b444..83a1aadf9d 100644
--- a/zebra/zebra_mpls_vty.c
+++ b/zebra/zebra_mpls_vty.c
@@ -247,7 +247,7 @@ DEFUN (mpls_label_bind,
DEFUN (no_mpls_label_bind,
no_mpls_label_bind_cmd,
- "no mpls label bind <A.B.C.D/M|X:X::X:X/M> [<(16-1048575)|implicit-null>]",
+ "no mpls label bind <A.B.C.D/M|X:X::X:X/M> [<(16-1048575)|implicit-null|explicit-null>]",
NO_STR
MPLS_STR
"Label configuration\n"
@@ -255,7 +255,8 @@ DEFUN (no_mpls_label_bind,
"IPv4 prefix\n"
"IPv6 prefix\n"
"MPLS Label to bind\n"
- "Use Implicit-Null Label\n")
+ "Use Implicit-Null Label\n"
+ "Use Explicit-Null Label\n")
{
return zebra_mpls_bind(vty, 0, argv[4]->arg, NULL);
}