summaryrefslogtreecommitdiff
path: root/zebra/zapi_msg.c
diff options
context:
space:
mode:
authorRenato Westphal <renato@openbsd.org>2018-12-20 13:59:28 -0200
committerGitHub <noreply@github.com>2018-12-20 13:59:28 -0200
commit96def26e5a2764ebfa3dba13418627451eaba0ce (patch)
treef160bbc733cfa24b088bbb965f1ca34522d3c1b0 /zebra/zapi_msg.c
parentbbfaa7054a4f3f6a9ffb54afebeb6e4129037da6 (diff)
parent57592a53b5c02094f915a8444d40d2361d31e972 (diff)
Merge pull request #3327 from adeg/feature/bgp-lu-auto-labels
bgpd, zebra: auto assign labels to regular labeled-unicast prefixes
Diffstat (limited to 'zebra/zapi_msg.c')
-rw-r--r--zebra/zapi_msg.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c
index 9b84a6e58a..26a3cd5b42 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: