X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/6b1075b65c4239e97629f3a891f49f5ae9ef3d4b..d48de5fdddaa8d2a44c15df74d1016ac692b9f2e:/bgp.h diff --git a/bgp.h b/bgp.h index 6559566..1dbee29 100644 --- a/bgp.h +++ b/bgp.h @@ -1,5 +1,5 @@ /* BGPv4 (RFC1771) */ -/* $Id: bgp.h,v 1.4 2004/12/16 08:49:52 bodea Exp $ */ +/* $Id: bgp.h,v 1.5 2005/06/04 15:42:35 bodea Exp $ */ #ifndef __BGP_H__ #define __BGP_H__ @@ -152,6 +152,7 @@ struct bgp_buf { struct bgp_peer { char name[32]; /* peer name */ in_addr_t addr; /* peer address */ + in_addr_t source_addr; /* our source address */ int as; /* AS number */ int sock; enum bgp_state state; /* FSM state */ @@ -173,6 +174,8 @@ struct bgp_peer { int cli_flag; /* updates requested from CLI */ char *path_attrs; /* path attrs to send in UPDATE message */ int path_attr_len; /* length of path attrs */ + uint32_t events; /* events to poll */ + struct event_data edata; /* poll data */ }; /* bgp_peer.cli_flag */ @@ -186,7 +189,7 @@ extern int bgp_configured; /* actions */ int bgp_setup(int as); int bgp_start(struct bgp_peer *peer, char *name, int as, int keepalive, - int hold, int enable); + int hold, struct in_addr update_source, int enable); void bgp_stop(struct bgp_peer *peer); void bgp_halt(struct bgp_peer *peer); @@ -194,8 +197,8 @@ int bgp_restart(struct bgp_peer *peer); int bgp_add_route(in_addr_t ip, in_addr_t mask); int bgp_del_route(in_addr_t ip, in_addr_t mask); void bgp_enable_routing(int enable); -int bgp_select_state(struct bgp_peer *peer); -int bgp_process(struct bgp_peer *peer, int readable, int writable); +int bgp_set_poll(void); +int bgp_process(uint32_t events[]); char const *bgp_state_str(enum bgp_state state); extern char const *cvs_id_bgp;