Age | Commit message (Collapse) | Author |
|
processing after the MP withdraw block. OK henning@
|
|
is invalid. add check for these flags. shows up with v6, many reject routes
there. claudio ok
|
|
|
|
|
|
when a peer drops to IDLE, we have to force him in IDLE for some time to
prevent fast flapping. however, the forced idle time is annoying when the
connection could be re-established immediately, i. e. bgpctl nei $peer clear
or similar.
implement an error counter per peer, increased every time we receive a
notification. when we are in state IDLE and get a connection from the peer
in question, check if the error counter is 1 or smaller. if so, change state
to active and accept the connection, otherwise keep the current behaviour
and reject the connection.
the error counter gets scaled back by the IdleHoldResetTimer that scales the
IdleHoldTime back as well
|
|
|
|
when a new peer in initialized, the configured capailities are copied.
this copy is modified as part of the capabilities negotiation.
now if teh session drops we want to re-negotiate capabilities at the next
establishment, last not least because the configured capabilities might
have changed in between (that's how I stumbled over it, added v6 shitz)
so copy the configured capabilities over every time a session goes to
IDLE state, unless the reason is EVNT_RCVD_OPEN, because then we're in
capabilities negotiation.
|
|
|
|
- correct word order
- grammar
|
|
the peer where the prefix came from so that prepend-neighbor works.
Extend rde_filter() and make sure that the correct peer is passed.
Until now most cases resulted in a NULL peer causing a nasty crash that
was found by David Ulevitch. OK henning@
|
|
If set to always the med will also be compared between different AS.
The default is strict which is the way the RFC specifies it.
OK henning@
|
|
and some more obscure ones. With this is it possible to run IPv6 sessions
between two bgpd.
OK if it does not break IPv4 hummpa barman Henning
|
|
Does not affect IPv4 minimaly tested for IPv6 because we still don't have an
IPv6 capable neighbor. henning@ ya
|
|
(and of course it is marc balmer who's spreading the kaesefondue here,
not marcm) claudio ok
|
|
|
|
|
|
multiprotocol shitz
claudi needs this to proceed with v6 stuff in the RIB, print stuff and
manpage later
from whatthehack, claudio ok, marcm schnell schnell schnell
|
|
all cases, since session_connect can in turn cause events that cause
state changes in the FSM that reset the ConnectRetryTimer.
debugged with Leen Besselink <leen@consolejunkie.net> who was seeing
errnously running ConnectRetryTimers in a case with localhost connections
|
|
ok claudio@, king bula sez ok
|
|
some fatal()s to fatalx(). All done by dlg@. OK henning@
|
|
ok henning@
|
|
equality. This function is a bit more complicated than a memcmp() because there
are types that need to be considered equal e.g. ACTION_SET_MED and
ACTION_SET_RELATIVE_MED. Also ACTION_SET_COMMUNITY and ACTION_SET_NEXTHOP
need some special care. OK henning@
|
|
and hides possible typos. e.g. set { rtlabel foo localperf 100 } was a valid
syntax but the result was a route label with name "foo localperf 100".
OK henning@
|
|
|
|
|
|
|
|
rde_free_set(), I just missed it when I was looking for it.
Kill rde_free_set() and use the more correct filterset_free() from now on.
|
|
This saves 14 bytes per aspath. OK henning@
|
|
network and neighbor statements and the routes are labeled accordingly.
While doing that fix some mem-leaks by introducing filterset_free() and
remove the free on send option of send_filterset().
This took a bit longer because we need to carefully track the rtlabel id
refcnts or bad things may happen on reloads.
henning@ looks fine
|
|
u_int16_t so that "bgpctl show rib 4/8 all" works again.
|
|
|
|
the upcomming filter rewrite. OK henning@
|
|
are e.g. created by the PMTU code and are removed after some time.
OK henning@
|
|
zero prefixlen case (32 bit shift on 32 bit val -> undefined result)
spotted by Moritz Grimm and otto
|
|
rtlabel_id2name() so call rtlable_unref() after that.
OK henning@
|
|
interface changes. support in the filter language and rde to come. claudio ok
|
|
has been allocated until one knows the allocation has been successful.
|
|
smaller than 255 bytes.
|
|
plus header. Soon needed.
|
|
|
|
connected|static" so that it is possible to distinguish between IPv4 and IPv6
addresses. "network connected|static" is considered deprecated but will be
supported as an alias for "network inet connected|static" for some time (one
release) to simplify upgrades. This also solve a nasty crash when using
"network connected". OK henning@
|
|
as for other errors. Save the errno and only print a message if the errno
changed. So the log is not filled with "socket error: Connection refused"
when the peer is not yet listening on that address. OK henning@
|
|
bgpctl show fib output more logical, especially for INET6 because many
prfixes have the reject flag set. OK henning@
|
|
an own AF independent radix tree. So the passed sockaddrs are often smaller
than the actual AF specific struct, especially sockaddr_in6. So the crap
Henning saw in the mask was acctually the next struct sockaddr that was passed
in the routing message. So pass the struct sockaddr_in6 and compare only the
specified number of bytes (minus the offset of sin6_addr in the struct
sockaddr_in6). Amazing!..
OK henning@
|
|
|
|
|
|
the routing socket have crap in the lower bytes, so instead of
using a straightforward and rather simple algorithm to convert them to prefix
lengths we have to do quite some ugly manual fiddling... disgusting.
|
|
are in the v6 world. the lower 16 bits of the scope ID are embedded in
byte 3 and 4 of the address for link-local addresses... sometimes, at least.
these btes have to be 0 by definition, so we need to fiddle the scope ID out
and reset those bytes to 0. embedding the scopeID like that is the most
disgusting hack I have seen in a while.
|
|
|
|
want the session to be restarted automagically in that case.
|