#define _QUAGGA_BGP_ROUTE_H
#include "queue.h"
+#include "nexthop.h"
#include "bgp_table.h"
struct bgp_nexthop_cache;
/* Nexthop reachability check. */
u_int32_t igpmetric;
- /* MPLS label. */
+ /* MPLS label - L2VNI */
mpls_label_t label;
+ /* MPLS label - L3-VNI */
+ mpls_label_t label2;
+
#if ENABLE_BGP_VNC
union {
}
/* Prototypes. */
+extern void bgp_rib_remove(struct bgp_node *rn, struct bgp_info *ri,
+ struct peer *peer, afi_t afi, safi_t safi);
extern void bgp_process_queue_init(void);
extern void bgp_route_init(void);
extern void bgp_route_finish(void);
extern int bgp_maximum_prefix_overflow(struct peer *, afi_t, safi_t, int);
-extern void bgp_redistribute_add(struct bgp *, struct prefix *,
- const struct in_addr *,
- const struct in6_addr *, unsigned int ifindex,
- u_int32_t, u_char, u_short, route_tag_t);
+extern void bgp_redistribute_add(struct bgp *bgp, struct prefix *p,
+ const union g_addr *nexthop, ifindex_t ifindex,
+ enum nexthop_types_t nhtype, uint32_t metric,
+ u_char type, u_short instance,
+ route_tag_t tag);
extern void bgp_redistribute_delete(struct bgp *, struct prefix *, u_char,
u_short);
extern void bgp_redistribute_withdraw(struct bgp *, afi_t, int, u_short);
* queue element with NULL bgp node.
*/
extern void bgp_add_eoiu_mark(struct bgp *);
-extern int bgp_config_write_table_map(struct vty *, struct bgp *, afi_t, safi_t,
- int *);
-extern int bgp_config_write_network(struct vty *, struct bgp *, afi_t, safi_t,
- int *);
-extern int bgp_config_write_distance(struct vty *, struct bgp *, afi_t, safi_t,
- int *);
+extern void bgp_config_write_table_map(struct vty *, struct bgp *, afi_t,
+ safi_t);
+extern void bgp_config_write_network(struct vty *, struct bgp *, afi_t, safi_t);
+extern void bgp_config_write_distance(struct vty *, struct bgp *, afi_t,
+ safi_t);
extern void bgp_aggregate_increment(struct bgp *, struct prefix *,
struct bgp_info *, afi_t, safi_t);
extern int bgp_info_cmp_compatible(struct bgp *, struct bgp_info *,
struct bgp_info *, char *pfx_buf, afi_t afi,
safi_t safi);
+extern void bgp_attr_add_gshut_community(struct attr *attr);
extern void bgp_best_selection(struct bgp *bgp, struct bgp_node *rn,
struct bgp_maxpaths_cfg *mpath_cfg,
struct prefix *p, struct bgp_info *binfo,
afi_t afi, safi_t safi,
json_object *json_paths);
+extern int bgp_show_table_rd(struct vty *vty, struct bgp *bgp, safi_t safi,
+ struct bgp_table *table, struct prefix_rd *prd,
+ enum bgp_show_type type, void *output_arg,
+ u_char use_json);
#endif /* _QUAGGA_BGP_ROUTE_H */