Age | Commit message (Collapse) | Author |
|
|
|
(you lost, theo)
|
|
|
|
those it needed, closing all the others. this has some nasty races.
so let the parent keep the list of listeners so it knows when it has
to open a new one
claudio ok, also tested by jason ackley
|
|
|
|
|
|
|
|
|
|
|
|
|
|
initialize and start the holdtimer, just like when we're in state ACTIVE.
|
|
it is possible to specify multiple communities. This is also the first step
to better bgpd filters. OK henning@
|
|
one for the capas we announced him, into the session_up imsg to the RDE
after brainstorming with claudio
|
|
peer->capa.ann from this
|
|
by two instances of the new struct capabilities, one for announcements
and one for the received capabilities
|
|
individual capability flags where needed
|
|
|
|
to OPEN messages. eases session_open() quite a bit and kills duplicate code
claudio ok
|
|
disabled for now, claudio ok
|
|
-the session alternates between Active and Connect. Other states reset logging
-the error is the same as the last connect() error seen
jajajaja claudio
|
|
addr2sa. OK henning@
|
|
places where needed. OK henning@
|
|
|
|
with this, if a neighbor is configured as dependent on carp0 for example,
the neighbor will remain in state IDLE as long as carp0 is not master.
once carp0 becomes master the session(s) depending on it immediately
go to CONNECT (or ACTIVE, if they're configured passive), reducing failover
time. claudio ok, with some input from ryan as well
|
|
at the beginning of each BGP message is all 1s instead of looping and
comparing one by one
|
|
pascal.gloor@spale.com
|
|
ok claudio
|
|
but keep him around for some more time (an hour here).
fixes an issue Arvid was reporting: when a cloned neighbor rejects our OPEN
message due to capability negotiation (or missing implementation of those),
we set a marker and retry without. However, if we remove the peer immediately,
it gets freshly cloned on the next trial, with default settings, thus including
capability negotiation, and thus failes again.
this will also help with route flap dampening.
ok claudio
|
|
-kill imsg_compose_pid, imsg_compose_fdpass and imsg_create_pid
-extend the original imsg_compose/_create API to take pid & fd too
-make imsg_compose do imsg_create + imsg_add + imsg_close instead of
duplicating the code
-adjust all callers to the new API
ok claudio
|
|
micskye some time ago
|
|
exactly the same bug as in ntpd, but caused completely different...
strange issues seen by arvid goetting who helped a lot in debugging,
bug found after an ntpd issue showed up and I saw the relation.
hunting with & ok claudio, otto, millert, ok deraadt
|
|
OK henning@
|
|
|
|
after fd passing. I thought I removed that some time ago... anyway now it
is gone.
|
|
the current and max prefix count back to bgpctl. OK henning@
|
|
and not an int.
|
|
ok henning otto
|
|
we should close
|
|
dumping is done. Acctually mrt dumps were broken because of the fd passing.
The nice side effect is a much cleaner code, especially in the parent process.
OK henning@
|
|
|
|
|
|
they were ibgp ones. OK henning@
|
|
to save memory... yet, that realloc call can fail with ENOMEM ;)
don't shrink when (needed + reserve < allocated), but
(needed + 2 * reserve < allocated)
the longer term goal is of course to not fail at all when a shrink-realloc
fails... but that's for later
|
|
more than once
|
|
it to let the main process to prepare new listening sockets (socket() and
bind()) on behalf of the session engine, which of course cannot bind() to
ports < 1024 any more once it dropped privileges. with some help from theo,
claudio ok
|
|
we used a ststic one with OPEN_MAX entries, which is a rather arbitary limit
as OPEN_MAX is _not_ the max # of open fds we can have, but just a default
for that setting.
in the same move we have to allocate the peer_l array, basically there
for pfd-index to peer pointers to prevent peer list scans all time,
dynamiccaly to. we overallocate a little and use that reserve until we
have to realloc again later to prevent reallocs for every single control
connection or a single flapping peer.
help & ok claudio
|
|
supported address familiy, keep a tailq of an arbitary number of them.
the new struct listen_addr contains the sockaddr and the fd.
this fixes quite some nasty behaviour which was a consequence of the previous
model.
looks right deraadt@, and discussed with claudio
|
|
at runtime and disable said subsystems if so. helps the guys porting bgpd
to $otherBSD, and is actually the right thing to do. claudio ok
|
|
|
|
blackhole routes or to make network announcements dependent on a external
state (e.g. for carp setups) OK henning@
|