]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/zebra_mpls.h
zebra: add apis to add and delete NHLFEs
[mirror_frr.git] / zebra / zebra_mpls.h
index 86bee129cfe51c68a89cc47a4ac5569e70399bdf..2c95d22c4eb759ed8d5e81dc1ba4bd8ea858756c 100644 (file)
@@ -191,16 +191,20 @@ int zebra_mpls_lsp_install(struct zebra_vrf *zvrf, struct route_node *rn,
 int zebra_mpls_lsp_uninstall(struct zebra_vrf *zvrf, struct route_node *rn,
                             struct route_entry *re);
 
-/*
- * Registration from a client for the label binding for a FEC. If a binding
- * already exists, it is informed to the client.
- * NOTE: If there is a manually configured label binding, that is used.
- * Otherwise, if aa label index is specified, it means we have to allocate the
- * label from a locally configured label block (SRGB), if one exists and index
- * is acceptable.
- */
+/* Add an NHLFE to an LSP, return the newly-added object */
+zebra_nhlfe_t *zebra_mpls_lsp_add_nhlfe(zebra_lsp_t *lsp,
+                                       enum lsp_types_t lsp_type,
+                                       enum nexthop_types_t gtype,
+                                       union g_addr *gate,
+                                       ifindex_t ifindex,
+                                       mpls_label_t out_label);
+
+/* Free an allocated NHLFE */
+void zebra_mpls_nhlfe_del(zebra_nhlfe_t *nhlfe);
+
 int zebra_mpls_fec_register(struct zebra_vrf *zvrf, struct prefix *p,
-                           uint32_t label_index, struct zserv *client);
+                           uint32_t label, uint32_t label_index,
+                           struct zserv *client);
 
 /*
  * Deregistration from a client for the label binding for a FEC. The FEC