summaryrefslogtreecommitdiff
path: root/nest/mpls.h
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2023-10-04 15:00:24 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2023-10-04 15:00:24 +0200
commitbe09b030ed40c76ee0727dd3980df77094fdc907 (patch)
tree18e250da0c71fb7af78cfe08bfbda418d9b16a60 /nest/mpls.h
parentcab5fce2b6822b7f3a892103077f26e197fecfbc (diff)
MPLS: Update to support and use 64bit source id
Diffstat (limited to 'nest/mpls.h')
-rw-r--r--nest/mpls.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/nest/mpls.h b/nest/mpls.h
index def490c1..c2bdf5ef 100644
--- a/nest/mpls.h
+++ b/nest/mpls.h
@@ -126,11 +126,6 @@ struct mpls_fec {
u32 label; /* Label for FEC */
u32 hash; /* Hash for primary key (net / rta) */
u32 uc; /* Number of LSPs for FEC */
- union { /* Extension part of key */
- u32 path_id; /* Source path_id */
- u32 class_id; /* Aaggregation class */
- };
-
u8 state; /* FEC state (MPLS_FEC_*) */
u8 policy; /* Label policy (MPLS_POLICY_*) */
@@ -138,6 +133,11 @@ struct mpls_fec {
struct mpls_fec *next_k; /* Next in mpls_fec.net_hash/rta_hash */
struct mpls_fec *next_l; /* Next in mpls_fec.label_hash */
+
+ union { /* Extension part of key */
+ u64 path_id; /* Source path_id */
+ u32 class_id; /* Aaggregation class */
+ };
union { /* Primary key */
struct rta *rta;
struct iface *iface;
@@ -169,7 +169,7 @@ void mpls_fec_map_reconfigure(struct mpls_fec_map *m, struct channel *C);
void mpls_fec_map_free(struct mpls_fec_map *m);
struct mpls_fec *mpls_find_fec_by_label(struct mpls_fec_map *x, u32 label);
struct mpls_fec *mpls_get_fec_by_label(struct mpls_fec_map *m, u32 label);
-struct mpls_fec *mpls_get_fec_by_net(struct mpls_fec_map *m, const net_addr *net, u32 path_id);
+struct mpls_fec *mpls_get_fec_by_net(struct mpls_fec_map *m, const net_addr *net, u64 path_id);
struct mpls_fec *mpls_get_fec_by_rta(struct mpls_fec_map *m, const rta *src, u32 class_id);
void mpls_free_fec(struct mpls_fec_map *x, struct mpls_fec *fec);
int mpls_handle_rte(struct mpls_fec_map *m, const net_addr *n, rte *r, linpool *lp, struct mpls_fec **locked_fec);