]> git.proxmox.com Git - mirror_frr.git/blobdiff - bgpd/bgp_route.h
Merge branch 'master' into docs-user
[mirror_frr.git] / bgpd / bgp_route.h
index 1a1817bad35642410d83b8b13e4049be4a57b175..ae4759aad0dbc848b6a3e05f9463d77cb972a38e 100644 (file)
@@ -22,6 +22,7 @@
 #define _QUAGGA_BGP_ROUTE_H
 
 #include "queue.h"
+#include "nexthop.h"
 #include "bgp_table.h"
 
 struct bgp_nexthop_cache;
@@ -72,9 +73,12 @@ struct bgp_info_extra {
        /* 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 {
 
@@ -293,6 +297,8 @@ static inline int bgp_fibupd_safi(safi_t safi)
 }
 
 /* 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);
@@ -325,10 +331,11 @@ extern int bgp_nlri_parse_ip(struct peer *, struct attr *, struct bgp_nlri *);
 
 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);
@@ -367,12 +374,11 @@ extern void bgp_process(struct bgp *, struct bgp_node *, afi_t, safi_t);
  * 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);
@@ -423,6 +429,7 @@ extern void bgp_info_restore(struct bgp_node *, struct bgp_info *);
 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,
@@ -440,4 +447,8 @@ extern void route_vty_out_detail(struct vty *vty, struct bgp *bgp,
                                 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 */