| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
|
|
|
|
|
| |
struct prefix will be slowly becomming the hub of the rib.
OK phessler@ job@
|
| |
|
|
|
|
|
|
| |
them whereever possible. In some places (path_update, softreconfig_out
handler) the nexthop state is temporarily folded back into the rde_aspath.
Tested and OK benno@
|
| |
|
|
|
|
|
|
| |
functions like rde_update_update and path_update. This will allow to
move more pointers from rde_aspath to the prefix.
Looks good benno@
|
|
|
|
|
|
| |
most other attrs into the hash as well). At the same time use the full
64 bit of SipHash in various places.
Tested by and OK benno@ phessler@
|
|
|
|
|
|
| |
hash structures used in the RDE. Makes it fairly obvious that more
is needed in that area.
OK phessler@ benno@
|
|
|
|
|
|
| |
passing the asp. This is no longer using asp_get() and should be therefor
be a bit lighter. Will also allow to put more stuff into the state.
OK denis@ sthen@
|
|
|
|
|
|
|
|
|
|
| |
To do this path_copy() gets a second argument (dst, src) and a new function
path_prep() is introduced to initialize an aspath object. The current
path_copy() usage is replaced with path_copy(path_get(), asp) which does
the same. Additionally some const where added to the *_copy functions to
make it more obvious which is the source and target. Also the pftable_ref()
and rtlabel_ref() functions return now the id instead of void.
OK sthen@
|
|
|
|
|
| |
from the prefix instead. While there also switch to prefix_peer from asp->peer
in rde_dump_rib_as(). Makes the code easier overall.
|
|
|
|
| |
the nexthop and the flags.
|
|
|
|
|
|
| |
are now fetched from struct prefix. Currently some trickery is needed
for export default-route but this will get better once Adj-RIB-Out comes.
OK benno@
|
|
|
|
| |
Needed for upcoming changes.
|
|
|
|
|
|
|
| |
some ugly workaround to make sure nexthop objects don't disapear while
still being referenced. During initial lookup of a nexthop a extra reference
is pulled but even that is now a bit cleaner than before.
Tested by job@, dennis@, benno@ OK job@ dennis@
|
|
|
|
|
| |
Remove them to make the code simpler.
OK deraadt@ gsoares@
|
|
|
|
|
| |
withdraws they way other systems are doing it. Interop problem discovered
by Andrew Thrift. Tested by Andrew and job@.
|
|
|
|
|
|
| |
prefix in a filter rule. Initial idea hashed out with job@ in Toronto.
This is WIP, i'm commiting it now so we can work on it in the tree.
ok florian@ claudio@
|
|
|
|
|
|
|
| |
prefixes or updates list depending on flags passed to the functions.
While there also introduce a similar flag for rde_aspath and adjust
path_compare so that this flag is ignored (liked the linked one).
OK benno@
|
|
|
|
|
| |
to be a queue so that we can use it in the Adj-RIB-Out case.
OK benno@
|
|
|
|
|
|
| |
direct pointer to the pt_prefix struct. To getter functions prefix_aspath()
and prefix_peer() added to make access of the opaque pointers possible.
Looks good henning@ and benno@
|
|
|
|
|
| |
Adj-RIB-Out and use them consistently. Makes code easier to read.
OK benno@
|
|
|
|
|
|
| |
routes announced to an ebgp peer (ref. rfc4360). While here remove the
pratial flag from extended and large communities.
ok claudio@
|
|
|
|
|
|
|
|
|
| |
per control session and peer the generation of imsg in the RDE. This
reduces the memory pressure in the SE substantially and also a bit in
the RDE. Makes the RDE more responsive for bgpctl commands.
Tested by me with 100 peers * 2000 prefixes and by phessler@ on an AMS-IX
border router with 200+ session. Convergance time got quite a bit better.
OK phessler@
|
|
|
|
|
| |
struct rib and not rib_desc since the full descriptor is almost never needed.
This should now allow the update code to be changed.
|
|
|
|
|
| |
of the id. For this we move the rtableid into struct rib. Also move the update
code in rib.c up to where the kroute code is. Makes more senses like that.
|
|
|
|
|
|
|
| |
Doing this by folding the lock flag into a pointer and providing an accessor
function for the rib pointer. This is an acceptable middle path for this
important structure.
OK benno@ on an earlier version
|
|
|
|
|
| |
While there also remove a comment that is since a few years at least.
OK gcc
|
|
|
|
| |
This way the tree becomes a bit better decoupled.
|
|
|
|
| |
how struct rib_entry is used.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
IANA moved the Large Communities attribute to 32, which is a nice pun on
the problem it is solving.
|
|
|
|
|
| |
Joint work with Job Snijders, many thanks!
OK benno@ deraadt@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
steps (and uses much of the same code).
In a torture test of ~600k prefix filters and 65k prefixes, convergance
time goes from 35 minutes to 30 seconds.
Many thanks to LONAP for providing a base configuration for torture
testing.
many discussions with claudio@, benno@, sthen@ and the rest of the bgpd crowd
OK sthen@ benno@
|
|
|
|
|
| |
of the RDE to free the filterlists. Also refactor common code to merge
filterlists into its own function. Makes the code look nicer.
|
|
|
|
|
|
|
|
| |
This is the first step to make bgpd reload non blocking in the RDE.
It also speeds up the reload time a fair bit in some cases (mainly if
you run with multiple RIBs and have larger filtersets) and it should also
fix a few edge cases on reloads.
Testing done by benno@, florian@ and sthen@ OK henning@ and benno@
|
|
|
|
|
|
|
| |
triping max-prefix. fix it this way, at least until prefix accounting
is done better.
diff from florian@
ok claudio@
|
| |
|
|
|
|
|
|
|
|
| |
This implements only the "Restarting Client" bits of the RFC -- in other
words bgpd will keep the FIB when the client restarts but it will not do GR
when restarting itself. The capability is still off by default (you need
"announce restart yes" to enable it).
Tested by Anders Berggren. OK sthen@
|
|
|
|
|
|
|
|
| |
flags field. Some systems seem to start sending bad flags around which
cause session failures in bgpd. Make sure that bgpd ignores the must be
zero flags correctly and ensure that they are always reset to zero when
sending updates out.
Reported and patch tested by Laurent CARON, OK henning@
|
|
|
|
|
|
| |
set nexthop-self was sticky and so later set nexthop <IP> were
not applied.
Problem found and fix tested by Tony Sarendal. OK henning@
|
| |
|
|
|
|
| |
mrt.h. Now mrt.h includes only protocol specific defines.
|
|
|
|
|
| |
Tested with IP and IPv6 sessions and against the libbgpdump parser.
OK henning@
|
|
|
|
|
|
| |
segments. Bgpd does not support confederations but it is too extreme
to close a session because a path contained such elements.
OK henning@, sthen@
|
|
|
|
|
|
| |
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.
ok henning gilles claudio jacekm deraadt
|
|
|
|
|
|
|
| |
the old RIB and then via softreconfig in and a special softreconfig out loading
the new RIB.
Feature requested and testeded by Elisa Jasinska.
OK henning@
|
|
|
|
|
|
|
|
|
|
| |
the length of an AS path (matches if the path is longer then the specified
lenght) the second matches when a sequence of the same AS number is longer
then the specified length).
max-as-len is good to protect crappy comercial bgp boxes from other crappy
comercial bgp boxes. max-as-seq was a feature request from SwissIX and maybe
EuroIX to find and filter prepends.
Additinal testing and OK sthen@
|