diff options
author | Claudio Jeker <claudio@cvs.openbsd.org> | 2010-06-30 22:15:03 +0000 |
---|---|---|
committer | Claudio Jeker <claudio@cvs.openbsd.org> | 2010-06-30 22:15:03 +0000 |
commit | 34931cd02c9f2f36b1c40b7669d8c87152fea6be (patch) | |
tree | 6b2302a9030ce6632bbe048678a4c6e2c9008a60 /usr.sbin/ldpd/lde.h | |
parent | 43d133ff81055647efc440fd43eb7896003b5d2d (diff) |
Make it possible to store multiple LSP to a FEC. This is another step to
handle multipath routes in MPLS.
Looks good to michele@
Diffstat (limited to 'usr.sbin/ldpd/lde.h')
-rw-r--r-- | usr.sbin/ldpd/lde.h | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/usr.sbin/ldpd/lde.h b/usr.sbin/ldpd/lde.h index 16a09be974c..8bc08c29895 100644 --- a/usr.sbin/ldpd/lde.h +++ b/usr.sbin/ldpd/lde.h @@ -1,4 +1,4 @@ -/* $OpenBSD: lde.h,v 1.14 2010/06/30 05:21:38 claudio Exp $ */ +/* $OpenBSD: lde.h,v 1.15 2010/06/30 22:15:02 claudio Exp $ */ /* * Copyright (c) 2004, 2005 Esben Norby <norby@openbsd.org> @@ -77,26 +77,31 @@ struct lde_nbr { u_int16_t lspace; }; +struct rt_lsp { + LIST_ENTRY(rt_lsp) entry; + + struct in_addr nexthop; + u_int32_t remote_label; +}; + struct rt_node { struct fec fec; - struct in_addr nexthop; + LIST_HEAD(, rt_lsp) lsp; /* label switching pathes */ LIST_HEAD(, lde_map) downstream; /* recv mappings */ LIST_HEAD(, lde_map) upstream; /* sent mappings */ u_int32_t local_label; - u_int32_t remote_label; u_int16_t lspace; u_int8_t flags; - u_int8_t present; /* Is it present in fib? */ }; /* lde.c */ pid_t lde(struct ldpd_conf *, int [2], int [2], int [2]); int lde_imsg_compose_ldpe(int, u_int32_t, pid_t, void *, u_int16_t); u_int32_t lde_assign_label(void); -void lde_send_change_klabel(struct rt_node *); -void lde_send_delete_klabel(struct rt_node *); +void lde_send_change_klabel(struct rt_node *, struct rt_lsp *); +void lde_send_delete_klabel(struct rt_node *, struct rt_lsp *); void lde_send_labelmapping(u_int32_t, struct map *); void lde_send_labelrequest(u_int32_t, struct map *); void lde_send_labelrelease(u_int32_t, struct map *); @@ -105,6 +110,7 @@ void lde_send_notification(u_int32_t, u_int32_t, u_int32_t, void lde_nbr_del(struct lde_nbr *); void lde_nbr_do_mappings(struct rt_node *); +struct lde_map *lde_map_add(struct lde_nbr *, struct rt_node *, int); struct lde_nbr *lde_find_address(struct in_addr); |