summaryrefslogtreecommitdiff
path: root/bgpd/bgp_zebra.h
diff options
context:
space:
mode:
Diffstat (limited to 'bgpd/bgp_zebra.h')
-rw-r--r--bgpd/bgp_zebra.h18
1 files changed, 11 insertions, 7 deletions
diff --git a/bgpd/bgp_zebra.h b/bgpd/bgp_zebra.h
index 7c85d86b31..0edae041d2 100644
--- a/bgpd/bgp_zebra.h
+++ b/bgpd/bgp_zebra.h
@@ -10,9 +10,10 @@
/* Macro to update bgp_original based on bpg_path_info */
#define BGP_ORIGINAL_UPDATE(_bgp_orig, _mpinfo, _bgp) \
- ((_mpinfo->extra && _mpinfo->extra->bgp_orig \
- && _mpinfo->sub_type == BGP_ROUTE_IMPORTED) \
- ? (_bgp_orig = _mpinfo->extra->bgp_orig) \
+ ((_mpinfo->extra && _mpinfo->extra->vrfleak && \
+ _mpinfo->extra->vrfleak->bgp_orig && \
+ _mpinfo->sub_type == BGP_ROUTE_IMPORTED) \
+ ? (_bgp_orig = _mpinfo->extra->vrfleak->bgp_orig) \
: (_bgp_orig = _bgp))
/* Default weight for next hop, if doing weighted ECMP. */
@@ -24,7 +25,7 @@ extern void bgp_zebra_init_tm_connect(struct bgp *bgp);
extern uint32_t bgp_zebra_tm_get_id(void);
extern bool bgp_zebra_tm_chunk_obtained(void);
extern void bgp_zebra_destroy(void);
-extern int bgp_zebra_get_table_range(uint32_t chunk_size,
+extern int bgp_zebra_get_table_range(struct zclient *zc, uint32_t chunk_size,
uint32_t *start, uint32_t *end);
extern int bgp_if_update_all(void);
extern void bgp_zebra_announce(struct bgp_dest *dest, const struct prefix *p,
@@ -63,8 +64,8 @@ extern bool bgp_redistribute_rmap_set(struct bgp_redist *red, const char *name,
struct route_map *route_map);
extern bool bgp_redistribute_metric_set(struct bgp *bgp, struct bgp_redist *red,
afi_t afi, int type, uint32_t metric);
-extern int bgp_redistribute_unset(struct bgp *bgp, afi_t afi, int type,
- unsigned short instance);
+extern void bgp_redistribute_unset(struct bgp *bgp, afi_t afi, int type,
+ unsigned short instance);
extern int bgp_redistribute_unreg(struct bgp *bgp, afi_t afi, int type,
unsigned short instance);
@@ -121,5 +122,8 @@ extern int bgp_zebra_srv6_manager_release_locator_chunk(const char *name);
extern void bgp_zebra_send_nexthop_label(int cmd, mpls_label_t label,
ifindex_t index, vrf_id_t vrfid,
enum lsp_types_t ltype,
- struct prefix *p);
+ struct prefix *p, uint32_t num_labels,
+ mpls_label_t out_labels[]);
+extern bool bgp_zebra_request_label_range(uint32_t base, uint32_t chunk_size);
+extern void bgp_zebra_release_label_range(uint32_t start, uint32_t end);
#endif /* _QUAGGA_BGP_ZEBRA_H */