summaryrefslogtreecommitdiff
path: root/nest/mpls.h
diff options
context:
space:
mode:
Diffstat (limited to 'nest/mpls.h')
-rw-r--r--nest/mpls.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/nest/mpls.h b/nest/mpls.h
index a84ede14..4b071ad8 100644
--- a/nest/mpls.h
+++ b/nest/mpls.h
@@ -21,6 +21,7 @@
#define MPLS_POLICY_STATIC 1
#define MPLS_POLICY_PREFIX 2
#define MPLS_POLICY_AGGREGATE 3
+#define MPLS_POLICY_VRF 4
#define MPLS_FEC_DOWN 0
#define MPLS_FEC_CLEAN 1
@@ -135,6 +136,7 @@ struct mpls_fec {
struct mpls_fec *next_l; /* Next in mpls_fec.label_hash */
union { /* Primary key */
struct rta *rta;
+ struct iface *iface;
net_addr net[0];
};
};
@@ -145,13 +147,15 @@ struct mpls_fec_map {
HASH(struct mpls_fec) net_hash; /* Hash table for MPLS_POLICY_PREFIX FECs */
HASH(struct mpls_fec) rta_hash; /* Hash table for MPLS_POLICY_AGGREGATE FECs */
HASH(struct mpls_fec) label_hash; /* Hash table for FEC lookup by label */
+ struct mpls_fec *vrf_fec; /* Single FEC for MPLS_POLICY_VRF */
struct channel *channel; /* MPLS channel for FEC announcement */
struct mpls_domain *domain; /* MPLS domain, keeping reference */
struct mpls_handle *handle; /* Handle for allocation of labels */
+ struct iface *vrf_iface;
u8 mpls_rts; /* Source value used for MPLS routes (RTS_*) */
- u8 mpls_scope; /* Scope value used for MPLS routes () */
+ u8 mpls_scope; /* Scope value used for MPLS routes (SCOPE_*) */
};