Age | Commit message (Collapse) | Author |
|
RTABLE_ANY.
OK henning@
|
|
|
|
(verified by both sthen@ and me).
ok sthen@; "just commit it" claudio@
|
|
ok claudio@
|
|
to use an end pointer to compare against. Looks less scary and makes
gcc4 happy. OK henning@
|
|
have MPLS information connected to them and the kernel requires the flag now.
OK michele@
|
|
Only existing tables should keep their fib sync state, new ones should set
the current fib sync flag to the configured one at the end of the config
load. Found the hard way by sthen@, OK sthen@
|
|
This adds a bit of new config to specify the mapping between an rdomain and
the BGP MPLS VPN instance, example:
rdomain 1 {
descr "CUSTOMER1"
rd 65003:1
import-target rt 65003:3
export-target rt 65003:1
depend on mpe0
network 192.168.224/24
}
The "depend on mpe0" is a but ugly but for now this is the quickest way to
figure out which interface bgp should use to insert the MPLS routes.
A big side-effect of this diff is that networks are now internally
distributed through kroute.c.
This needs some kernel changes that will follow hopefully soon.
OK henning@
|
|
those for alternate RIBs. This allows to use "rde rib TESTIT rtable 1".
NOTE: nexthop verification has changed for alternate tables. For now
nexthop will only be verified against the main routing table (id 0).
Because of this "nexthop qualify via bgp" may now compare the nexthops
against bgpd routes from a different RIB.
Tested by sthen@, OK to move on by henning@
|
|
kroute_full structure that is AF independent and has all information in
it. Simplifies the communication between processes and reduces the number
of imsg types. This is another step to add FIB support to BGP MPLS VPNs.
|
|
struct kroute or kroute6 pack the needed info into a struct bgpd_addr.
No flames comming out of my and sthen@'s bgpd routers.
|
|
right flags when protecting the IPv6 loopback addr (instead of reassigning
the IPv4 ones) and install the IPv4 loopback blocker as 127/8 and not as
127.0.0.1/8. First two found by Hiroki Sato hrs (at) allbsd org and I found
the 127/8 issue all by myself.
|
|
|
|
else. Adds conversion functions to map AFI/SAFI and the Unix AF_ values
from and into AID used in bgpd. This is needed to support things like MPLS
VPN and other upcomming changes that need to play a lot with AFI/SAFI pairs.
Mostly mechanical change, henning@ has no particular issues with this.
Must go in so that I can continue working.
|
|
to show all necessary information in bgpctl show next. OK henning@
|
|
possible to corrupt the nexthop RB tree. Use the same compare logic used
in the kroute compare functions. Nice side effect is a nicely sorted list
in bgpctl show next. OK sthen@ henning@
|
|
gateway used for non-connected routes. This info was missing all the time
and often resulted in massive confusion when the nexthop selection choosed
a bad nexthop.
|
|
Tested and OK sthen@, OK henning@
|
|
copies in bgpctl.
|
|
ok claudio@, henning@
|
|
sure why it happens but it is not a fatal condition. A warning should still
be logged because it is not good to miss updates.
|
|
to add some pading on 64bit archs. Use a helper struct plus some ROUNDUP()
magic to get the size correct.
Tested on i386 and amd64 by Graeme Lee "graeme (at) omni (dot) net (dot) au"
Some sort of OK by henning@ (he ignores the non-v4 code)
|
|
misc@
|
|
|
|
track multipath routes. Code is mostly stolen from similar fixes to ospfd but
a bit different as this kroute.c implementation is more complex because of
additional task (nexthop verification for example).
This change and the similar ospfd change were desperatly needed on larger
complex network setups which tended to end up in situation where the kernel
had a different oppinion about routing than the daemon. Now the situation
should be a lot better.
Tested and OK sthen@ gollo@
|
|
were only resolved when they were added. This calls for troubles if something
like ospfd starts to change the underlying routes.
Tested by gollo@, OK henning@
|
|
this is mostly cosmetical for the moment, there are bigger changes required
to make full use of the route priorities, but this is the first step to do.
discussed with claudio
|
|
|
|
wemust stop walking the list once werun into a stopped timer, or
eventually all stopped timers will queue up at the very front (instead of
at the tail)
|
|
seen on startup.
|
|
|
|
127.0.0.1 / ::1 unconditioally, since RTF_BLACKHOLE/REJECT are not
actually checked in the forwarding path and the gw doesn't matter otherwise.
makes them work.. found teh hard way by me. claudio ok
|
|
|
|
using a static message structure. This is more flexible and needed if
multipath comes into play. looks good henning@
|
|
|
|
|
|
|
|
not 6 any more (rtableid added). need to tell sysctl so.
|
|
messages for any other tables.
real multi-table support is more adventurous (will come tho)
|
|
These may be leftovers from a crash or so and result in an strange
behaving bgpd parent process additionally it causes huge CPU loads because
of a linear list walk done on every insert. Code stolen from ospfd which
does the same thing since a long time ago. This is a temporary fix until
we have real routing priorities and all this PROTO1 flagging can be removed.
PROTO1 is not exclusive to bgpd but for correct operation we currently need
to enforce it.
OK because it is only temporary henning@
Found and fix tested by Sylwester S. Biernacki
|
|
if_msghdr, etc. they only share the first 3 fields, and then differ.
this leads to a bug in RTM_IFINFO handling. We did abort on
rtm->rtm_errno != 0,
but if_msghdr has no errno, so we look at something in the data part
instead. Surprising that this didn't bite us before!
So we must only do these checks for RTM_ADD/CHANGE/DELETE that actually
use rt_msghdr.
found whiel checking strange behaviour tony sarendal <dualcyclone@gmail.com>
saw, and then totally strange behaviour on my amd64 hackbox. claudio ok
|
|
when calculating the nexthop. Now only non BGP routes and not the default
route are used unless forced with the new config options
nexthop qualify via bgp
nexthop qualify via default
This change is required for complex setups e.g. where an additional IGP is
running. OK henning@
|
|
RTM_CHANGE. Until now it was not possible to get rid of these flags.
Until now a fib decouple, fib couple combo was needed to get rid from
blackholed routes. OK henning@
|
|
Sure henning@
|
|
not a C string and strlcpy() only works on C strings -- returns length of
the source. Found by tedu@ OK deraadt@ tedu@
|
|
is invalid. add check for these flags. shows up with v6, many reject routes
there. claudio ok
|
|
|
|
are e.g. created by the PMTU code and are removed after some time.
OK henning@
|
|
rtlabel_id2name() so call rtlable_unref() after that.
OK henning@
|
|
interface changes. support in the filter language and rde to come. claudio ok
|