diff options
Diffstat (limited to 'zebra/zebra_vrf.h')
-rw-r--r-- | zebra/zebra_vrf.h | 161 |
1 files changed, 79 insertions, 82 deletions
diff --git a/zebra/zebra_vrf.h b/zebra/zebra_vrf.h index 29f7df00f..eb0687bf8 100644 --- a/zebra/zebra_vrf.h +++ b/zebra/zebra_vrf.h @@ -25,117 +25,114 @@ #include <zebra/zebra_ns.h> /* MPLS (Segment Routing) global block */ -typedef struct mpls_srgb_t_ -{ - u_int32_t start_label; - u_int32_t end_label; +typedef struct mpls_srgb_t_ { + u_int32_t start_label; + u_int32_t end_label; } mpls_srgb_t; /* Routing table instance. */ -struct zebra_vrf -{ - /* Back pointer */ - struct vrf *vrf; +struct zebra_vrf { + /* Back pointer */ + struct vrf *vrf; - /* Description. */ - char *desc; + /* Description. */ + char *desc; - /* FIB identifier. */ - u_char fib_id; + /* FIB identifier. */ + u_char fib_id; - /* Flags. */ - u_int16_t flags; + /* Flags. */ + u_int16_t flags; #define ZEBRA_VRF_RIB_SCHEDULED (1 << 0) #define ZEBRA_VRF_RETAIN (2 << 0) - u_int32_t table_id; + u_int32_t table_id; - /* Routing table. */ - struct route_table *table[AFI_MAX][SAFI_MAX]; + /* Routing table. */ + struct route_table *table[AFI_MAX][SAFI_MAX]; - /* Static route configuration. */ - struct route_table *stable[AFI_MAX][SAFI_MAX]; + /* Static route configuration. */ + struct route_table *stable[AFI_MAX][SAFI_MAX]; - /* Recursive Nexthop table */ - struct route_table *rnh_table[AFI_MAX]; + /* Recursive Nexthop table */ + struct route_table *rnh_table[AFI_MAX]; - /* Import check table (used mostly by BGP */ - struct route_table *import_check_table[AFI_MAX]; + /* Import check table (used mostly by BGP */ + struct route_table *import_check_table[AFI_MAX]; - /* Routing tables off of main table for redistribute table */ - struct route_table *other_table[AFI_MAX][ZEBRA_KERNEL_TABLE_MAX]; + /* Routing tables off of main table for redistribute table */ + struct route_table *other_table[AFI_MAX][ZEBRA_KERNEL_TABLE_MAX]; - /* 2nd pointer type used primarily to quell a warning on - * ALL_LIST_ELEMENTS_RO - */ - struct list _rid_all_sorted_list; - struct list _rid_lo_sorted_list; - struct list *rid_all_sorted_list; - struct list *rid_lo_sorted_list; - struct prefix rid_user_assigned; + /* 2nd pointer type used primarily to quell a warning on + * ALL_LIST_ELEMENTS_RO + */ + struct list _rid_all_sorted_list; + struct list _rid_lo_sorted_list; + struct list *rid_all_sorted_list; + struct list *rid_lo_sorted_list; + struct prefix rid_user_assigned; - /* - * Back pointer to the owning namespace. - */ - struct zebra_ns *zns; + /* + * Back pointer to the owning namespace. + */ + struct zebra_ns *zns; - /* MPLS static LSP config table */ - struct hash *slsp_table; + /* MPLS static LSP config table */ + struct hash *slsp_table; - /* MPLS label forwarding table */ - struct hash *lsp_table; + /* MPLS label forwarding table */ + struct hash *lsp_table; - /* MPLS FEC binding table */ - struct route_table *fec_table[AFI_MAX]; + /* MPLS FEC binding table */ + struct route_table *fec_table[AFI_MAX]; - /* MPLS Segment Routing Global block */ - mpls_srgb_t mpls_srgb; + /* MPLS Segment Routing Global block */ + mpls_srgb_t mpls_srgb; - /* MPLS processing flags */ - u_int16_t mpls_flags; + /* MPLS processing flags */ + u_int16_t mpls_flags; #define MPLS_FLAG_SCHEDULE_LSPS (1 << 0) - /* - * VNI hash table (for EVPN). Only in default instance. - */ - struct hash *vni_table; - /* - * Whether EVPN is enabled or not. - */ - int advertise_all_vni; - - /* Route Installs */ - uint64_t installs; - uint64_t removals; - uint64_t neigh_updates; - uint64_t lsp_installs; - uint64_t lsp_removals; + /* + * VNI hash table (for EVPN). Only in default instance. + */ + struct hash *vni_table; + /* + * Whether EVPN is enabled or not. + */ + int advertise_all_vni; + + /* Route Installs */ + uint64_t installs; + uint64_t removals; + uint64_t neigh_updates; + uint64_t lsp_installs; + uint64_t lsp_removals; }; -static inline vrf_id_t -zvrf_id (struct zebra_vrf *zvrf) +static inline vrf_id_t zvrf_id(struct zebra_vrf *zvrf) { - return zvrf->vrf->vrf_id; + return zvrf->vrf->vrf_id; } -static inline const char * -zvrf_name (struct zebra_vrf *zvrf) +static inline const char *zvrf_name(struct zebra_vrf *zvrf) { - return zvrf->vrf->name; + return zvrf->vrf->name; } -struct route_table * -zebra_vrf_table_with_table_id (afi_t afi, safi_t safi, - vrf_id_t vrf_id, u_int32_t table_id); - -extern void zebra_vrf_static_route_interface_fixup (struct interface *ifp); -extern void zebra_vrf_update_all (struct zserv *client); -extern struct zebra_vrf *zebra_vrf_lookup_by_id (vrf_id_t vrf_id); -extern struct zebra_vrf *zebra_vrf_lookup_by_name (const char *); -extern struct zebra_vrf *zebra_vrf_alloc (void); -extern struct route_table *zebra_vrf_table (afi_t, safi_t, vrf_id_t); -extern struct route_table *zebra_vrf_static_table (afi_t, safi_t, struct zebra_vrf *zvrf); -extern struct route_table *zebra_vrf_other_route_table (afi_t afi, u_int32_t table_id, - vrf_id_t vrf_id); -extern void zebra_vrf_init (void); +struct route_table *zebra_vrf_table_with_table_id(afi_t afi, safi_t safi, + vrf_id_t vrf_id, + u_int32_t table_id); + +extern void zebra_vrf_static_route_interface_fixup(struct interface *ifp); +extern void zebra_vrf_update_all(struct zserv *client); +extern struct zebra_vrf *zebra_vrf_lookup_by_id(vrf_id_t vrf_id); +extern struct zebra_vrf *zebra_vrf_lookup_by_name(const char *); +extern struct zebra_vrf *zebra_vrf_alloc(void); +extern struct route_table *zebra_vrf_table(afi_t, safi_t, vrf_id_t); +extern struct route_table *zebra_vrf_static_table(afi_t, safi_t, + struct zebra_vrf *zvrf); +extern struct route_table * +zebra_vrf_other_route_table(afi_t afi, u_int32_t table_id, vrf_id_t vrf_id); +extern void zebra_vrf_init(void); #endif |