From e29ed2adec0ef11ca1c84b40b2c98247f162f3df Mon Sep 17 00:00:00 2001 From: Chris Hall Date: Wed, 27 Jan 2010 22:37:55 +0000 Subject: Binding to interfaces and counting of messages. Wired up message counters in bgp_session structure. Added fields to session for neighbor interface and neighbor update-source -- so that these can be set when connect() is done. Peering Engine resolves any interface name to an address, so that BGP Engine doesn't have to. Reinstated as much code as necessary in bgp_network to bind to specific interfaces, as set in the session. Moved setting of bgp_nexthop_set() back into Routeing Engine. Result is that only Peering Engine talks to Zebra or uses the iflist. Wired up setting of TTL. Reworked connections locking of the session mutex so more robust if/when connections are cut loose from the session. Made peer_index entry point at connection, not session. Works better in bgp_network that way. modified: bgpd/bgp_connection.c modified: bgpd/bgp_connection.h modified: bgpd/bgp_fsm.c modified: bgpd/bgp_msg_read.c modified: bgpd/bgp_msg_write.c modified: bgpd/bgp_network.c modified: bgpd/bgp_network.h modified: bgpd/bgp_peer.c modified: bgpd/bgp_peer.h modified: bgpd/bgp_peer_index.c modified: bgpd/bgp_peer_index.h modified: bgpd/bgp_session.c modified: bgpd/bgp_session.h modified: lib/prefix.h modified: lib/sockunion.c modified: lib/sockunion.h --- lib/prefix.h | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'lib/prefix.h') diff --git a/lib/prefix.h b/lib/prefix.h index 1ccd4dd6..9fd02ea6 100644 --- a/lib/prefix.h +++ b/lib/prefix.h @@ -29,6 +29,8 @@ #define Inline static inline #endif +typedef const union sockunion* const_sockunion ; + /* * A struct prefix contains an address family, a prefix length, and an * address. This can represent either a 'network prefix' as defined @@ -163,9 +165,9 @@ extern int prefix_cmp (const struct prefix *, const struct prefix *); extern void prefix_copy (struct prefix *dest, const struct prefix *src); extern void apply_mask (struct prefix *); -extern struct prefix *sockunion2prefix (const union sockunion *dest, - const union sockunion *mask); -extern struct prefix *sockunion2hostprefix (const union sockunion *); +extern struct prefix *sockunion2prefix (const_sockunion dest, + const_sockunion mask); +extern struct prefix *sockunion2hostprefix (const_sockunion src); extern struct prefix_ipv4 *prefix_ipv4_new (void); extern void prefix_ipv4_free (struct prefix_ipv4 *); -- cgit v1.2.3