Age | Commit message (Collapse) | Author |
|
should gives us a little exra performance gain
ok claudio@
|
|
ok claudio@
|
|
neighbors. Fix a bug in the update generation. If no path attributes are
available e.g. a packet with only withdraws we need to set (and write) the
bgp path attribute field to zero. With this change we are able to send
valid updates to our neighbors with one exception: the nexthop field which
needs to be changed for ebgp neighbors.
OK henning@
|
|
if we don't play by these rules the next write may block.
make us adhere.
ok claudio@
|
|
have queued writes or the connection is not yet established - but certainly
not if we ever had a queued write, forever...
ok claudio@
|
|
ok & debugging band-aid claudio@
|
|
|
|
ok claudio@
|
|
peer basis. A queue runner will dequeue and package those messages to valid
bgp UPDATE messages and send them to the SE.
Not yet done is per peer type attribute handling (like aspath prepends and
nexthop modifications) and the queue runner could be a tad smarter. All in
all this gives us a good starting point for the missing parts.
OK henning@
|
|
add IMGS_CTL_KROUTE_ADDR to match the route for a given address
ok claudio@
|
|
that's what they are, and it makes matching on them easier.
|
|
IMSG_CTL_KROUTE, to have the kroute structs forming the fib sent to a
control socket.
ok claudio@
|
|
we do notice closed pipes just fine, tho there was at least one case where
we tried a write without POLLOUT and that got us a SIGPIPE before our pipe
closed detection catched it.
ok claudio@
|
|
you must not try to read(2) without checking (pfd->revents & POLLIN)
you must not try to read(2) without checking (pfd->revents & POLLIN)
[...]
you must not try to read(2) without checking (pfd->revents & POLLIN)
|
|
look into the first sockaddr structure after the msg header; does not
contain what we expect there and caused messages to get missed in some cases
|
|
optimized version of it
|
|
only in the no-match-found case. if we fina a match we are calling
kroute_attach_nexthop anyway; and the match might be (in the common cases:
will be, if existant at all) different for the existing attachment.
|
|
|
|
on, not an int.
|
|
|
|
much nicer now.
ok claudio@
|
|
|
|
routes that belong to it as invalid, and invalidate all nexthops belonging
to it, and vice versa when it goes up
"looks good" claudio@ on the version from yesterday night '-)
|
|
this is also some preparation for v6 support.
"looks good" claudio@
|
|
after startup (due to addition of an ip to an interface) are handled
correctly.
|
|
|
|
|
|
|
|
where the nexthop is not in state NEXTHOP_REACH.
previously routes in state NEXTHOP_LOOKUP, i. e. not yet verified, were
send to the parent process causing unnecessary and of course failing route
add attempts, cluttering logs, etc. nexthops in state NEXTHOP_UNREACH were
handled correctly.
|
|
way
|
|
a session needs a reinit for the new conf to kick in. the logic is
condemned to fail, and implicitly taking sessions down is BAD.
after discussion with mickey@, ok claudio@
|
|
change. Until now rde_send_kroute tried to send a IMSG_KROUTE_DELETE if old
and new prefix where ineligible. OK henning@
|
|
comment-only lines) in the middle of neighbor/group blocks. as first or
last line in thise blocks they were accepted, but not in between.
ok deraadt@
|
|
control socket the given neighbor session is sent a START / STOP signal.
ok claudio@
|
|
before the mainloop started, and a speerate init for those coming in
on reloads. much easier this way.
ok claudio@
|
|
From Patrick Latifi <pat at eyeo.org> OK henning@
|
|
buffers, we need to check wether the buffers are still there before trying to
get the next message. the previous one might have caused the session to drop
back to the IDLE state, which implies that those buffers have been
deallocated.
ok claudio@
|
|
ok claudio@
|
|
90 is too much, and now that the punishment works as intended oscillating
peers get slowed down by that
|
|
previously we were to forgiving so the punishment didn't kick in as
intended
|
|
|
|
|
|
OK henning@
|
|
|
|
Dumping of incomming bgp messages is now possible and dumping the (not yet)
filtered updates works too. Per neighbor dumps are still missing.
OK henning@
|
|
OK henning@
|
|
fd leak pointed out by Patrick Latifi, but it was not so easy to fix before
I just killed the support for config from stdin and his fix didn't work.
however, this is the 16 bytes memory leak on config reload i was hunting for
some time, big thanks to Patrick!
|
|
SIGCHLD does _not_ translate to "a child process went kaboom".
waitpid() and check status; if the child exited or terminated log & quit
ok claudio@
|
|
that really does not make sense with a daemon and probably breaks horribly
on config reload
|
|
memleak fixes in error paths
From: Patrick Latifi <pat@eyeo.org>
|