From: Neale Ranns Date: Tue, 19 Sep 2017 01:04:10 +0000 (-0700) Subject: Treat label=0 as an invalid next-hop-via-label X-Git-Tag: v17.10-rc1~52 X-Git-Url: https://gerrit.fd.io/r/gitweb?p=vpp.git;a=commitdiff_plain;h=caac350076e386e5caf6322a3439ea0c36d77cc5 Treat label=0 as an invalid next-hop-via-label Change-Id: I831226111d26f5c8a795e0773e23fddcddfb1613 Signed-off-by: Neale Ranns --- diff --git a/src/vnet/ip/ip_api.c b/src/vnet/ip/ip_api.c index bb29e0bc077..6981c84cb0e 100644 --- a/src/vnet/ip/ip_api.c +++ b/src/vnet/ip/ip_api.c @@ -794,7 +794,13 @@ add_del_route_t_handler (u8 is_multipath, fib_route_path_t *paths = NULL; fib_entry_flag_t entry_flags = FIB_ENTRY_FLAG_NONE; - if (MPLS_LABEL_INVALID != next_hop_via_label) + /* + * the special INVALID label meams we are not recursing via a + * label. Exp-null value is never a valid via-label so that + * also means it's not a via-label and means clients that set + * it to 0 by default get the expected behaviour + */ + if ((MPLS_LABEL_INVALID != next_hop_via_label) && (0 != next_hop_via_label)) { path.frp_proto = DPO_PROTO_MPLS; path.frp_local_label = next_hop_via_label;