| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Moved some of the complexity into functions in bgp_connection,
so that "do" functions in bgp_session have to deal with less
of the mechanics.
modified: bgpd/bgp_connection.c
modified: bgpd/bgp_connection.h
modified: bgpd/bgp_session.c
modified: bgpd/bgp_session.h
modified: lib/mqueue.c
modified: lib/mqueue.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
modified: bgpd/bgp_msg_read.c -- fix to accept updates when
sEstablished !
modified: bgpd/bgp_packet.c -- modified XON/XOFF handling
modified: bgpd/bgp_peer.c -- fix event handling to discard
events when sLimping.
modified: bgpd/bgp_route.c -- announce routes when sEstablished
modified: bgpd/bgp_session.c -- add XOFF test
free stream in update_receive
when mqb_destroy
modified: bgpd/bgp_session.h -- add XOFF threshold & XOFF test
modified: bgpd/bgpd.c -- PRO TEM reenable in bgp_clear
for max-prefix handling
modified: lib/log.c -- fix zlog_backtrace
modified: lib/mqueue.c -- dasserts for mqb_free_count
|
| |
| |
| |
| |
| |
| |
| | |
it runs in the routing_nexus. Makefile tidied. Fixed a few warnings.
Re-enabled zclient, horrors of horrors bpg_nexthop thought it OK to
poke arround with zclients threads directly. Now fixed, all private to
zclient.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| | |
Changed names of peer states. Writed in peering engine side of sending
route_refresh.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
modified: bgpd/bgp.h
modified: bgpd/bgp_common.c
modified: bgpd/bgp_common.h
modified: bgpd/bgp_connection.c
modified: bgpd/bgp_connection.h
modified: bgpd/bgp_fsm.c
modified: bgpd/bgp_fsm.h
modified: bgpd/bgp_msg_read.c
modified: bgpd/bgp_msg_read.h
modified: bgpd/bgp_msg_write.c
modified: bgpd/bgp_notification.c
modified: bgpd/bgp_notification.h
modified: bgpd/bgp_open_state.c
modified: bgpd/bgp_open_state.h
modified: bgpd/bgp_route_refresh.c
modified: bgpd/bgp_route_refresh.h
modified: lib/qafi_safi.h
|
| |
| |
| |
| |
| | |
program terminate code that waits for all sissions to become disabled
before terminating pthreads and running exit code.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Finish the wiring required to get bgp_msg_read to process OPEN
messages into the connection's open_state, and be able to check
for correct peer AS, etc.
Removed bugs preventing messages from being written.
Added BGP Id check to collision detection logic.
Removed as many warnings from comilation as possible. Replaced
horrible FIFO kludge in the process. (Introduced the even more
horrible miyagi kludge.)
modified: bgpd/bgp_advertise.c
modified: bgpd/bgp_advertise.h
modified: bgpd/bgp_connection.c
modified: bgpd/bgp_connection.h
modified: bgpd/bgp_debug.c
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_nexthop.c
modified: bgpd/bgp_notification.c
modified: bgpd/bgp_open.c
modified: bgpd/bgp_packet.c
modified: bgpd/bgp_session.c
modified: bgpd/bgp_session.h
modified: bgpd/bgpd.c
modified: lib/Makefile.am
modified: lib/distribute.c
modified: lib/if_rmap.c
new file: lib/miyagi.h
modified: lib/prefix.h
modified: lib/sockopt.c
modified: lib/stream.c
modified: lib/thread.c
modified: lib/vty.c
modified: lib/zebra.h
modified: tests/bgp_capability_test.c
modified: tests/bgp_mp_attr_test.c
modified: tests/ecommunity_test.c
modified: tests/heavy-thread.c
modified: tests/heavy-wq.c
modified: tests/heavy.c
modified: tests/main.c
modified: tests/test-checksum.c
modified: tests/test-sig.c
modified: watchquagga/watchquagga.c
modified: zebra/if_netlink.c
modified: zebra/ioctl.c
modified: zebra/rt_netlink.c
modified: zebra/rtread_netlink.c
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In the BGP Engine the OPEN message needs to be processed into the open_recv
structure in the *connection*. The OPEN that arrives must be checked
for acceptability before it is acknowledged. Later the connection may be
discarded in collision resolution, or the connection may become the
Established connection, and the open_recv structure is passed to the
session and hence to the Peering Engine.
modified: bgpd/bgp.h
modified: bgpd/bgp_common.c
modified: bgpd/bgp_common.h
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_read.h
modified: bgpd/bgp_msg_write.c
modified: bgpd/bgp_notification.c
modified: bgpd/bgp_notification.h
modified: bgpd/bgp_open.h
modified: bgpd/bgp_open_state.c
modified: bgpd/bgp_open_state.h
modified: bgpd/bgp_packet.c
modified: bgpd/bgp_session.h
modified: lib/distribute.c
modified: lib/if_rmap.c
modified: lib/qafi_safi.h
modified: lib/stream.c
modified: lib/stream.h
|
| |
| |
| |
| |
| |
| | |
HUP. Shutdown needs mechanism to know when bgp_engine has closed
everything. HUP don't understand how it is supposed to cope with added/
deleted/retained peers and get them going again.
|
| |
| |
| |
| |
| |
| | |
Removed some of the temporary debuggery in qtimers that only worked in 1
thread. Initialised the mqueue mutex. Stopped peer_index from
zeroizing its mutex after it had been initialized.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
modified: bgpd/bgp_connection.c -- using _unset functions
-- added bgp_connection_close_file
modified: bgpd/bgp_connection.h
modified: bgpd/bgp_fsm.c -- checked notification handling
-- uses bgp_connection_close_file
modified: bgpd/bgp_notification.c -- added _unset function
modified: bgpd/bgp_notification.h
modified: bgpd/bgp_open_state.c -- added _unset function
modified: bgpd/bgp_open_state.h
modified: lib/qtimers.c -- added debug _verify function
modified: lib/qtimers.h
modified: lib/sockunion.c -- added _unset function
modified: lib/sockunion.h
|
| |
| |
| |
| | |
asserts to try to track timer crash.
|
| | |
|
| | |
|
| |
| |
| |
| | |
with having 1 or multiple nexus (and pthreads).
|
| |
| |
| |
| |
| | |
pthreads then all point at same nexus object. Do necessary in-thread
initialization and finalization. Fix some minor warnings.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
modified: bgpd/bgp_connection.c completed pending queue
modified: bgpd/bgp_engine.c TODOs for start/stop
modified: bgpd/bgp_msg_write.c ) added send_update and send_eor
modified: bgpd/bgp_msg_write.h )
modified: bgpd/bgp_open_state.c fixed free
modified: bgpd/bgp_packet.c tidied up peer->work usage
modified: bgpd/bgp_session.c ) completed various message handlers
modified: bgpd/bgp_session.h )
modified: lib/mqueue.c ) added revoke
modified: lib/mqueue.h )
|
| |
| |
| |
| | |
TODOs.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
modified: .gitignore
modified: bgpd/Makefile.am
modified: bgpd/bgp.h
modified: bgpd/bgp_common.h
modified: bgpd/bgp_connection.c
modified: bgpd/bgp_connection.h
modified: bgpd/bgp_fsm.c
modified: bgpd/bgp_msg_write.c
modified: bgpd/bgp_msg_write.h
modified: bgpd/bgp_notification.c
modified: bgpd/bgp_notification.h
modified: bgpd/bgp_open_state.c
modified: bgpd/bgp_open_state.h
modified: bgpd/bgp_packet.h
new file: bgpd/bgp_route_refresh.c
new file: bgpd/bgp_route_refresh.h
modified: bgpd/bgp_session.c
modified: bgpd/bgp_session.h
modified: lib/Makefile.am
new file: lib/confirm.h
modified: lib/memtypes.c
modified: lib/stream.c
modified: lib/stream.h
modified: lib/zassert.h
|
| |
| |
| |
| | |
wiring. New queue I/F handling. Routing engine nexus.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
modified: bgpd/Makefile.am
modified: bgpd/bgp_common.h
modified: bgpd/bgp_connection.c
modified: bgpd/bgp_connection.h
modified: bgpd/bgp_engine.c
modified: bgpd/bgp_fsm.c
modified: bgpd/bgp_fsm.h
new file: bgpd/bgp_msg_write.c
new file: bgpd/bgp_msg_write.h
modified: bgpd/bgp_notification.c
modified: bgpd/bgp_notification.h
modified: bgpd/bgp_session.c
modified: bgpd/bgp_session.h
modified: lib/sockunion.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
modified: bgpd/Makefile.am
modified: bgpd/bgp.h
modified: bgpd/bgp_common.h
modified: bgpd/bgp_connection.c
modified: bgpd/bgp_connection.h
modified: bgpd/bgp_engine.h
modified: bgpd/bgp_fsm.c
modified: bgpd/bgp_network.c
modified: bgpd/bgp_network.h
new file: bgpd/bgp_peer_index.c
new file: bgpd/bgp_peer_index.h
modified: bgpd/bgp_session.c
modified: bgpd/bgp_session.h
modified: lib/memtypes.c
modified: lib/mqueue.h
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Updates lib/mqueue.c and .h
Allows for main message argument to be a (small) embedded structure.
Users of messages can now define suitable structs for the information
to be passed in a message, and use those to write/read the
message data. Should be easier to use and less error prone than
trying to match anonymous argv[n] values.
Allows for straightforward, flexible argv[] array as well.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Updates lib/mqueue.c and .h
Added: mqb_push_argv_array() push array of 'n' pointers.
mqb_pop_argv_array() pop remains "list" to array of pointers.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Updates lib/mqueue.c and .h
Having concluded that two arguments is really too restrictive, this
change:
* allows for an indefinite number of arguments.
With up to 6 in the body of the message queue block itself.
* supports the treatment of arguments from a given argument 'n'
onwards as a list of indefinite length.
So message queue block may be treated as having 'n' fixed
arguments and a variable number of further arguments.
Adds a further memory type.
|
| |
| |
| |
| |
| | |
Added confirms and assert for SU_ADDRSTRLEN in sockunion.h and in
sockunion2str().
|
|\ \ |
|
| | | |
|
| |\ \
| | | |
| | | |
| | | | |
into bgp_engine
|
| | | |
| | | |
| | | |
| | | | |
mutex so that can call zlog from anywhere.
|
|/ / /
| | |
| | |
| | |
| | | |
Flag indicates that at least one thread has been created.
(To be used to ensure no surprises when daemonising !)
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
On branch bgp_engine
modified: .gitignore
modified: bgpd/Makefile.am
new file: bgpd/bgp.h
new file: bgpd/bgp_common.c
new file: bgpd/bgp_common.h
new file: bgpd/bgp_connection.c
new file: bgpd/bgp_connection.h
modified: bgpd/bgp_debug.c
new file: bgpd/bgp_engine.c
new file: bgpd/bgp_engine.h
modified: bgpd/bgp_fsm.c
modified: bgpd/bgp_fsm.h
modified: bgpd/bgp_network.c
modified: bgpd/bgp_network.h
new file: bgpd/bgp_notification.c
new file: bgpd/bgp_notification.h
modified: bgpd/bgp_open.c
new file: bgpd/bgp_open_state.c
new file: bgpd/bgp_open_state.h
modified: bgpd/bgp_packet.c
new file: bgpd/bgp_peer.c
new file: bgpd/bgp_peer.h
modified: bgpd/bgp_route.c
new file: bgpd/bgp_session.c
new file: bgpd/bgp_session.h
modified: bgpd/bgp_vty.c
modified: bgpd/bgp_zebra.c
modified: bgpd/bgpd.c
modified: bgpd/bgpd.h
modified: lib/Makefile.am
modified: lib/memtypes.c
modified: lib/mqueue.c
modified: lib/mqueue.h
new file: lib/qafi_safi.h
modified: lib/qpselect.c
modified: lib/qpselect.h
modified: lib/qpthreads.c
modified: lib/qpthreads.h
modified: lib/sockopt.c
modified: lib/sockunion.c
modified: lib/sockunion.h
modified: lib/stream.c
modified: lib/stream.h
modified: lib/symtab.h
modified: lib/zebra.h
|
| |
| |
| |
| | |
are blocked for non-main thraeds
|
| |
| |
| |
| |
| | |
before and after reading config file. Announce on all vty when shutting
down.
|
| | |
|
| | |
|
| |
| |
| |
| | |
All qpt_thread_t values are equal if !qpthreads_enabled.
|
| | |
|
| | |
|
| |
| |
| |
| |
| | |
For some timers it is convenient to have an interval stored in the
timer, and to be able to set the timer using that interval.
|
| |
| |
| |
| |
| | |
Go with vector_unset_item(). May be used to trim NULL values at the
end of a vector or to remove all NULL values from a vector.
|
| |
| |
| |
| |
| |
| | |
Remove vector_ream(), which removes item from the vector, by
vector_get_last_item(). Leaves removal from the vector to
qps_file_remove().
|
| |
| |
| |
| | |
Run memory commands in cli thread.
|
| |
| |
| |
| | |
thread to run in. Add qlib_init stuff. Add -t parameter for "threaded".
|