X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=zebra%2Fzapi_msg.c;h=26a3cd5b42a03fca4dd06072525006c85cd3f5c9;hb=2569910bb6e5c00ececc60ed15b182e14a88cb9d;hp=9b84a6e58a5c5f0ca0f8b7edcabe41f9109dc921;hpb=ae4bb7ba6e3ed494c705065c31abd6053498e446;p=mirror_frr.git diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c index 9b84a6e58..26a3cd5b4 100644 --- a/zebra/zapi_msg.c +++ b/zebra/zapi_msg.c @@ -1187,6 +1187,7 @@ static void zread_fec_register(ZAPI_HANDLER_ARGS) unsigned short l = 0; struct prefix p; uint16_t flags; + uint32_t label = MPLS_INVALID_LABEL; uint32_t label_index = MPLS_INVALID_LABEL_INDEX; s = msg; @@ -1229,12 +1230,15 @@ static void zread_fec_register(ZAPI_HANDLER_ARGS) l += 5; STREAM_GET(&p.u.prefix, s, PSIZE(p.prefixlen)); l += PSIZE(p.prefixlen); - if (flags & ZEBRA_FEC_REGISTER_LABEL_INDEX) { + if (flags & ZEBRA_FEC_REGISTER_LABEL) { + STREAM_GETL(s, label); + l += 4; + } else if (flags & ZEBRA_FEC_REGISTER_LABEL_INDEX) { STREAM_GETL(s, label_index); l += 4; - } else - label_index = MPLS_INVALID_LABEL_INDEX; - zebra_mpls_fec_register(zvrf, &p, label_index, client); + } + + zebra_mpls_fec_register(zvrf, &p, label, label_index, client); } stream_failure: