]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zapi_msg.c
lib: enforce vrf_name_to_id by returning default_vrf when name is null
[mirror_frr.git] / zebra / zapi_msg.c
index b93911bee78f9f49577293fa807d3dca1bc97dd8..26a3cd5b42a03fca4dd06072525006c85cd3f5c9 100644 (file)
@@ -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:
@@ -2443,6 +2447,7 @@ void (*zserv_handlers[])(ZAPI_HANDLER_ARGS) = {
        [ZEBRA_REMOTE_VTEP_DEL] = zebra_vxlan_remote_vtep_del,
        [ZEBRA_REMOTE_MACIP_ADD] = zebra_vxlan_remote_macip_add,
        [ZEBRA_REMOTE_MACIP_DEL] = zebra_vxlan_remote_macip_del,
+       [ZEBRA_DUPLICATE_ADDR_DETECTION] = zebra_vxlan_dup_addr_detection,
        [ZEBRA_INTERFACE_SET_MASTER] = zread_interface_set_master,
        [ZEBRA_PW_ADD] = zread_pseudowire,
        [ZEBRA_PW_DELETE] = zread_pseudowire,