diff options
author | Renato Westphal <renato@opensourcerouting.org> | 2019-11-29 15:50:07 +0100 |
---|---|---|
committer | Renato Westphal <renato@opensourcerouting.org> | 2019-11-29 15:50:07 +0100 |
commit | 5065db0aa63137daebf96f8f6c0d9a0fe2ddf594 (patch) | |
tree | 630b216689492c024b600b6999602ef037ed8274 /zebra/zebra_mpls.h | |
parent | Merge pull request #5409 from qlyoung/bgpd-lcom-ecom-parse-fixes (diff) | |
download | frr-5065db0aa63137daebf96f8f6c0d9a0fe2ddf594.tar.xz frr-5065db0aa63137daebf96f8f6c0d9a0fe2ddf594.zip |
zebra: support LSPs with multiple outgoing labels
For SR-TE we'll need to create Binding-SIDs which are essentially
LSPs that can push multiple outgoing labels. This commit sets the
groundwork for that. Luckily the netlink code didn't need to be
changed since it already supports pushing label stacks.
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'zebra/zebra_mpls.h')
-rw-r--r-- | zebra/zebra_mpls.h | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/zebra/zebra_mpls.h b/zebra/zebra_mpls.h index 157f43ca9..2489e8e51 100644 --- a/zebra/zebra_mpls.h +++ b/zebra/zebra_mpls.h @@ -200,7 +200,8 @@ zebra_nhlfe_t *zebra_mpls_lsp_add_nhlfe(zebra_lsp_t *lsp, enum nexthop_types_t gtype, union g_addr *gate, ifindex_t ifindex, - mpls_label_t out_label); + uint8_t num_labels, + mpls_label_t out_labels[]); /* Free an allocated NHLFE */ void zebra_mpls_nhlfe_del(zebra_nhlfe_t *nhlfe); @@ -282,12 +283,12 @@ int mpls_ftn_uninstall(struct zebra_vrf *zvrf, enum lsp_types_t type, /* * Install/update a NHLFE for an LSP in the forwarding table. This may be * a new LSP entry or a new NHLFE for an existing in-label or an update of - * the out-label for an existing NHLFE (update case). + * the out-label(s) for an existing NHLFE (update case). */ int mpls_lsp_install(struct zebra_vrf *zvrf, enum lsp_types_t type, - mpls_label_t in_label, mpls_label_t out_label, - enum nexthop_types_t gtype, union g_addr *gate, - ifindex_t ifindex); + mpls_label_t in_label, uint8_t num_out_labels, + mpls_label_t out_labels[], enum nexthop_types_t gtype, + union g_addr *gate, ifindex_t ifindex); /* * Uninstall a particular NHLFE in the forwarding table. If this is |