Age | Commit message (Collapse) | Author |
|
are now 4-byte instead of the old 2-byte numbers. The only exception are
communities because they can not be switched. The RDE will inflate and deflate
the ASPATH and AGGREGATOR attributes on demand and create the NEW_ASPATH and
NEW_AGGREGATOR field whenever needed. Both old and new stile sessions are
supported and can be mixed. Currently new stile sessions with the 4-byte AS
number capability turned on are only enabled if one of the AS numbers involved
is a 4-byte one.
This is based on an initial diff by Geoff Huston gih (at) apnic (dot) net
Cleanup, testing and bug-fixes by myself (via AS 3.10).
Currently mrt table dumps are producing incompatible output this will be fixed
afterwards -- this diff is already big enough.
"get it in if you think it is ready" henning@
|
|
use it, instead of always telling "unknown suberror code X"
From: Leen Besselink <leen@consolejunkie.net>
if memory serves, cease didn't have suberror codes defined in the original
RFC 1771 and they were added later
|
|
one hip hip hooray from Henning.
|
|
link between bgpctl and bgpd mostly because of rde_attr.c.
|
|
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.
|
|
up more. OK henning@
|
|
|
|
|
|
writing to a member of a const struct is no good, so un-const struct peer
for log_statechange()
|
|
-the session alternates between Active and Connect. Other states reset logging
-the error is the same as the last connect() error seen
jajajaja claudio
|
|
Connect -> Active state changes, just clutters logs, claudio ok
|
|
|
|
|
|
|
|
|
|
log_conn_attempt
|
|
|
|
instead of the neighbor's IP address. WHen a connection comes in matching
that mask we clone the neighbor spec.
IPv6 match code by itojun, rde feeding by claudio, ok claudio
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
->remote_addr for easier multiprotocol support
ok claudio@
|
|
intended to replace log_ntoa in most cases becaus that is IPv4 only by design
|
|
with this, logit() can be a private function.
we don't need to include syslog.h in bgpd.h any more; log.c and parse.y
who need it include it directly now.
|
|
specific struct peer, and move their prototypes to bgpd.h to make it available
to whole bgpd
ok claudio@
|
|
|
|
log_peer_errx -> log_peer_warnx
|
|
it is like warn(3), nor err(3). so use a less confusing name.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
the error number as parameter instead of accessing errno, because in one
place the error number was not in errno but fetched from a socket.
now, of course it makes much more sense to just set errno to the error number
just fecthed in this one place instead of having hundreds of fatal() calls
all transfer the errno round and round and round...
fix this, and also provide a fatalx, which does not care for errno and doesn't
invoke strerror.
oh, btw, in the place where we fetch the err # from the socket, we don't
call fatal anymore anyway...
|
|
|
|
log_errx -> log_peer_errx
because that is what they really are, peer specific.
|
|
|
|
not used anywhere anyway
|
|
|
|
|
|
condition happened. fatal()s from subsystems used by all 3 processes like
the imsg subsystem were hard to track down without knowing in which process
the condition happened.
|
|
|
|
started by me some time ago with moral support from theo, the proceeded up to
the point where the session engine worked correctly. claudio jeker joined
then and did a lot of work in the RDE.
it is not particulary usefull as application right now as parts are still
missing but is imported to enable more people to work on it.
status:
BGP sessions get established fine, OPEN messages and then KEEPALIVEs
exchanged etc. session FSM works fine; NOTIFICATIONs are handled fine, and
all connection drops etc I provoked get handled fine.
Incoming UPDATE messgages are parsed well and the data entered to the RIB,
the decision process is not yet there, neither is outgoing UPDATEs or sync
to the kernel routing table.
not connected to the builds yet.
|