2005-06-28 Paul Jakma <paul.jakma@sun.com>

	* (global) The great bgpd extern and static'ification.
	* bgp_routemap.c: remove unused ROUTE_MATCH_ASPATH_OLD code
	  (route_set_metric_compile) fix u_int32_t to ULONG_MAX comparison
	  warnings.
	* bgp_route.h: (bgp_process, bgp_withdraw, bgp_update) export these
	  used by various files which had their own private declarations,
	  in the case of mplsvpn - incorrect.
diff --git a/bgpd/bgp_route.h b/bgpd/bgp_route.h
index 03567ec..8d63e46 100644
--- a/bgpd/bgp_route.h
+++ b/bgpd/bgp_route.h
@@ -132,59 +132,69 @@
 #define UNSUPPRESS_MAP(F)       ((F)->usmap.map)
 
 /* Prototypes. */
-void bgp_route_init ();
-void bgp_cleanup_routes (void);
-void bgp_announce_route (struct peer *, afi_t, safi_t);
-void bgp_announce_route_all (struct peer *);
-void bgp_default_originate (struct peer *, afi_t, safi_t, int);
-void bgp_soft_reconfig_in (struct peer *, afi_t, safi_t);
-void bgp_soft_reconfig_rsclient (struct peer *, afi_t, safi_t);
-void bgp_check_local_routes_rsclient (struct peer *rsclient, afi_t afi, safi_t safi);
-void bgp_clear_route (struct peer *, afi_t, safi_t);
-void bgp_clear_route_all (struct peer *);
-void bgp_clear_adj_in (struct peer *, afi_t, safi_t);
-void bgp_clear_stale_route (struct peer *, afi_t, safi_t);
+extern void bgp_route_init (void);
+extern void bgp_cleanup_routes (void);
+extern void bgp_announce_route (struct peer *, afi_t, safi_t);
+extern void bgp_announce_route_all (struct peer *);
+extern void bgp_default_originate (struct peer *, afi_t, safi_t, int);
+extern void bgp_soft_reconfig_in (struct peer *, afi_t, safi_t);
+extern void bgp_soft_reconfig_rsclient (struct peer *, afi_t, safi_t);
+extern void bgp_check_local_routes_rsclient (struct peer *rsclient, afi_t afi, safi_t safi);
+extern void bgp_clear_route (struct peer *, afi_t, safi_t);
+extern void bgp_clear_route_all (struct peer *);
+extern void bgp_clear_adj_in (struct peer *, afi_t, safi_t);
+extern void bgp_clear_stale_route (struct peer *, afi_t, safi_t);
 
 extern struct bgp_info *bgp_info_lock (struct bgp_info *);
 extern struct bgp_info *bgp_info_unlock (struct bgp_info *);
 extern void bgp_info_add (struct bgp_node *rn, struct bgp_info *ri);
 extern void bgp_info_delete (struct bgp_node *rn, struct bgp_info *ri);
 
-int bgp_nlri_sanity_check (struct peer *, int, u_char *, bgp_size_t);
-int bgp_nlri_parse (struct peer *, struct attr *, struct bgp_nlri *);
+extern int bgp_nlri_sanity_check (struct peer *, int, u_char *, bgp_size_t);
+extern int bgp_nlri_parse (struct peer *, struct attr *, struct bgp_nlri *);
 
-int bgp_maximum_prefix_overflow (struct peer *, afi_t, safi_t, int);
+extern int bgp_maximum_prefix_overflow (struct peer *, afi_t, safi_t, int);
 
-void bgp_redistribute_add (struct prefix *, struct in_addr *, u_int32_t, u_char);
-void bgp_redistribute_delete (struct prefix *, u_char);
-void bgp_redistribute_withdraw (struct bgp *, afi_t, int);
+extern void bgp_redistribute_add (struct prefix *, struct in_addr *, u_int32_t, u_char);
+extern void bgp_redistribute_delete (struct prefix *, u_char);
+extern void bgp_redistribute_withdraw (struct bgp *, afi_t, int);
 
-void bgp_static_delete (struct bgp *);
-void bgp_static_update (struct bgp *, struct prefix *, struct bgp_static *,
+extern void bgp_static_delete (struct bgp *);
+extern void bgp_static_update (struct bgp *, struct prefix *, struct bgp_static *,
 			afi_t, safi_t);
-void bgp_static_withdraw (struct bgp *, struct prefix *, afi_t, safi_t);
+extern void bgp_static_withdraw (struct bgp *, struct prefix *, afi_t, safi_t);
                      
-int bgp_static_set_vpnv4 (struct vty *vty, const char *, 
+extern int bgp_static_set_vpnv4 (struct vty *vty, const char *, 
                           const char *, const char *);
 
-int bgp_static_unset_vpnv4 (struct vty *, const char *, 
+extern int bgp_static_unset_vpnv4 (struct vty *, const char *, 
                             const char *, const char *);
 
-int bgp_config_write_network (struct vty *, struct bgp *, afi_t, safi_t, int *);
-int bgp_config_write_distance (struct vty *, struct bgp *);
+/* this is primarily for MPLS-VPN */
+extern int bgp_update (struct peer *, struct prefix *, struct attr *,
+		       afi_t, safi_t, int, int, struct prefix_rd *, 
+		       u_char *, int);
+extern int bgp_withdraw (struct peer *, struct prefix *, struct attr *,
+			 afi_t, safi_t, int, int, struct prefix_rd *, u_char *);
 
-void bgp_aggregate_increment (struct bgp *, struct prefix *, struct bgp_info *,
+/* for bgp_nexthop and bgp_damp */
+extern void bgp_process (struct bgp *, struct bgp_node *, afi_t, safi_t);
+
+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 *);
+
+extern void bgp_aggregate_increment (struct bgp *, struct prefix *, struct bgp_info *,
 			      afi_t, safi_t);
-void bgp_aggregate_decrement (struct bgp *, struct prefix *, struct bgp_info *,
+extern void bgp_aggregate_decrement (struct bgp *, struct prefix *, struct bgp_info *,
 			      afi_t, safi_t);
 
-u_char bgp_distance_apply (struct prefix *, struct bgp_info *, struct bgp *);
+extern u_char bgp_distance_apply (struct prefix *, struct bgp_info *, struct bgp *);
 
-afi_t bgp_node_afi (struct vty *);
-safi_t bgp_node_safi (struct vty *);
+extern afi_t bgp_node_afi (struct vty *);
+extern safi_t bgp_node_safi (struct vty *);
 
-void route_vty_out (struct vty *, struct prefix *, struct bgp_info *, int, safi_t);
-void route_vty_out_tag (struct vty *, struct prefix *, struct bgp_info *, int, safi_t);
-void route_vty_out_tmp (struct vty *, struct prefix *, struct attr *, safi_t);
+extern void route_vty_out (struct vty *, struct prefix *, struct bgp_info *, int, safi_t);
+extern void route_vty_out_tag (struct vty *, struct prefix *, struct bgp_info *, int, safi_t);
+extern void route_vty_out_tmp (struct vty *, struct prefix *, struct attr *, safi_t);
 
 #endif /* _QUAGGA_BGP_ROUTE_H */