diff options
author | Chris Hall <chris.hall@highwayman.com> | 2011-08-12 15:06:06 +0100 |
---|---|---|
committer | Chris Hall <chris.hall@highwayman.com> | 2011-08-12 15:06:06 +0100 |
commit | cec1fae79110dffa900c0c5f38c3d3b48f5b0db6 (patch) | |
tree | 408055322e19098b98766168624f1b96865ac73b /bgpd/bgp_connection.h | |
parent | 228e06bad624a33090da4a09f32f8fed84a7e15c (diff) | |
parent | 7bd8653ef788a6395b07583d6766be8950598342 (diff) | |
download | quagga-ex18p.tar.bz2 quagga-ex18p.tar.xz |
Merge branch 'euro_ix' of /git/quagga.euro-ix into pipeworkex18p
Merge with euro_ix branch v0.99.18ex17.
Update version to: 0.99.18ex18p
Of particular note:
* includes support for GTSM:
neighbor ... ttl-security hops X
no neighbor ... ttl-security hops X
where X is 1-254. For usual case of immediately connected
peer, X == 1.
Cannot set ttl-security while ebgp-multihop is set, and
vice-versa.
If underlying O/S does not support GTSM, then will set ttl
as per ebgp-multihop.
In passing, have fixed various bugs in the main Quagga branch.
* initial support for draft-ietf-idr-optional-transitive
Does not yet support "neighbor-complete" flag.
* main Quagga now uses TCP_CORK and permanent non-blocking
Do not beleive TCP_CORK to be necessary for euro_ix code...
which has a different buffering strategy.
The euro_ix code already runs sockets permanently non-blocking.
* various fixes to attribute intern/unintern
Trying to remove memory leaks. Nobody seems convinced that
this has been perfected, yet.
* fixes for ospfd and ospf6d issues.
Up to date with master branch up to:
commit 538cb284864c17de66152a5236db4cd80e3e7639
Merge: 036a6e6 8ced4e8
Author: Paul Jakma <paul@quagga.net>
Date: Fri Jul 29 18:21:50 2011 +0100
Diffstat (limited to 'bgpd/bgp_connection.h')
-rw-r--r-- | bgpd/bgp_connection.h | 75 |
1 files changed, 21 insertions, 54 deletions
diff --git a/bgpd/bgp_connection.h b/bgpd/bgp_connection.h index 8c5e00d4..4df1fbca 100644 --- a/bgpd/bgp_connection.h +++ b/bgpd/bgp_connection.h @@ -166,7 +166,7 @@ struct bgp_connection bgp_open_state open_recv ; /* the open received. */ qps_file qf ; /* qpselect file structure */ - pAF_t paf ; /* address family */ + bool gtsm ; /* minttl has been set */ union sockunion* su_local ; /* address of the near end */ union sockunion* su_remote ; /* address of the far end */ @@ -206,56 +206,24 @@ struct bgp_connection * The functions */ -extern bgp_connection -bgp_connection_init_new(bgp_connection connection, bgp_session session, - bgp_connection_ord_t ordinal) ; -extern void -bgp_connection_open(bgp_connection connection, int fd, int family) ; - -extern void -bgp_connection_start(bgp_connection connection, union sockunion* su_local, - union sockunion* su_remote) ; -extern void -bgp_connection_enable_accept(bgp_connection connection) ; - -extern void -bgp_connection_disable_accept(bgp_connection connection) ; - -extern bgp_connection -bgp_connection_query_accept(bgp_session session) ; - -extern bgp_connection -bgp_connection_get_sibling(bgp_connection connection) ; - -extern void -bgp_connection_make_primary(bgp_connection connection) ; - -extern void -bgp_connection_full_close(bgp_connection connection, int unset_timers) ; - -#define bgp_connection_close(conn) bgp_connection_full_close(conn, false) -#define bgp_connection_close_down(conn) bgp_connection_full_close(conn, true) - -extern bool -bgp_connection_part_close(bgp_connection connection) ; - -extern void -bgp_connection_exit(bgp_connection connection) ; - -extern void -bgp_connection_read_enable(bgp_connection connection) ; - -extern int -bgp_connection_write(bgp_connection connection, struct stream* s) ; - -extern void -bgp_connection_queue_add(bgp_connection connection) ; - -extern void -bgp_connection_queue_del(bgp_connection connection) ; - -extern int -bgp_connection_queue_process(void) ; +extern bgp_connection bgp_connection_init_new(bgp_connection connection, + bgp_session session, bgp_connection_ord_t ordinal) ; +extern void bgp_connection_open(bgp_connection connection, int sock_fd) ; +extern void bgp_connection_start(bgp_connection connection, sockunion su_local, + sockunion su_remote) ; +extern void bgp_connection_enable_accept(bgp_connection connection) ; +extern void bgp_connection_disable_accept(bgp_connection connection) ; +extern bgp_connection bgp_connection_query_accept(bgp_session session) ; +extern bgp_connection bgp_connection_get_sibling(bgp_connection connection) ; +extern void bgp_connection_make_primary(bgp_connection connection) ; +extern void bgp_connection_close(bgp_connection connection, bool keep_timers) ; +extern bool bgp_connection_part_close(bgp_connection connection) ; +extern void bgp_connection_exit(bgp_connection connection) ; +extern void bgp_connection_read_enable(bgp_connection connection) ; +extern int bgp_connection_write(bgp_connection connection, struct stream* s) ; +extern void bgp_connection_queue_add(bgp_connection connection) ; +extern void bgp_connection_queue_del(bgp_connection connection) ; +extern int bgp_connection_queue_process(void) ; Inline bool bgp_connection_no_pending(bgp_connection connection, bgp_connection* is_pending) @@ -264,9 +232,8 @@ bgp_connection_no_pending(bgp_connection connection, bgp_connection* is_pending) || (*is_pending != NULL) ) ; } ; -extern void -bgp_connection_add_pending(bgp_connection connection, mqueue_block mqb, - bgp_connection* is_pending) ; +extern void bgp_connection_add_pending(bgp_connection connection, + mqueue_block mqb, bgp_connection* is_pending) ; /*------------------------------------------------------------------------------ * Set buffer *unwritable* (buffer appears full, but nothing pending). |