diff options
| author | Renato Westphal <renato@openbsd.org> | 2018-12-20 13:59:28 -0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-12-20 13:59:28 -0200 |
| commit | 96def26e5a2764ebfa3dba13418627451eaba0ce (patch) | |
| tree | f160bbc733cfa24b088bbb965f1ca34522d3c1b0 /zebra/zapi_msg.c | |
| parent | bbfaa7054a4f3f6a9ffb54afebeb6e4129037da6 (diff) | |
| parent | 57592a53b5c02094f915a8444d40d2361d31e972 (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.c | 12 |
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: |
