Age | Commit message (Collapse) | Author |
|
|
|
not fully understand but at least no flames are comming out of my test
box anymore.
|
|
|
|
Still a bit hackish, reload is missing and printconf as well. Looks good h@
|
|
This will make interruptable walks a lot easier.
|
|
|
|
|
|
because path_remove was changed to remove the prefixes in a slightly different
way.
|
|
|
|
rib_context instead of the ctl specific rde_dump_ctx to make it more general.
|
|
where it was beforhands.
|
|
when interrupting rib dumps and now we no longer need evil RB magic to find
the next entry on restart.
|
|
space for a flags field and the RIB id. In the end bgpd will be able to
lock RIB elements and therefore make it possible to interrupt all tree
walks.
|
|
changes to make multiple RIB functional. Also change the way we account the
prefixes per peer (for maxprefix check). Every prefix that was added to any
RIB is counted. OK henning@
|
|
used for the Adj-Rib-In. Also initialize the Adj-Rib-In correctly and mark
it a noevaluate.
|
|
Fix pf table code by checking if the aspath has a pftableid set or not
instead of doing the F_LOCAL dance. This works because the in the
Adj-Rib-In it is impossible to set pftableid.
|
|
address family. In rib_restart fix a possible use after free.
|
|
work by changing the way the RDE DB is built. struct prefix and struct
pt_entry are simplified and extended with a rib_entry where the decision
tree is run on. From now on a prefix can only reside on one particular RIB
which simplifies the code a bit. Currently there are two fixed ribs
(adj-rib-in and the local-rib) which needs to be made more dynamic in
upcomming commits.
This is work in progress, the RDE seems to work for me and sthen@ (no flames
comming out of our testrouters but there is still a lot missing)
Move into the tree to simplify developement -- henning@
|
|
use one that is less freaky. Merge bgpctl and config networks into one tree.
First step of a larger change in the RDE and this goes now in to allow to
move forward.
|
|
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@
|
|
function with the same arguments.
|
|
|
|
|
|
|
|
Previously prefix changes of neighbors with softreconfig in disabled where
using prefix_add() instead of prefix_move(). Luckily prefix_add() has
additional logic to detect this case and calls prefix_move() itself.
This made backtraces of a totaly different issue so strange that I was
hunting a bug for weeks at the completely wrong spot. Doh!
|
|
change. OK henning@
|
|
struct in6_addr later on. OK henning@
|
|
OK henning@
|
|
path_copy and path_put. Diff from Kevin Brintnall, looks good henning@
|
|
by filter sets or if the nexthop is currently looked up. With this the
"nexthop_update: non-existent nexthop" warning should be history. OK henning@
|
|
This will fix problems with set nexthop on outgoing filters. Found by
gluk@ OK henning@
|
|
requested & tested Falk Brockerhoff <fb@smartterra.de>, and tony sarendal
tested this too. claudio ok
|
|
the odds are better than good that there is no difference.
|
|
of path_update(). There are about 10 different ways how to update a path and
some of them are tricky. Looks good henning@
|
|
needs to be extra careful and only remove the prefix from the specified RIB.
Looks good henning@
|
|
|
|
as soon as F_ORIGINAL come the counters would no longer be correct and in the
end max-prefix would no longer work. Add additinal counters for F_ORIGINAL
prefixes and bump the correct conter depending on the prefix flags.
OK henning@
|
|
F_LOCAL set can be moved correctly. This is more like a add as we have one
prefix more afterwards. Looks good henning@
|
|
First step is to define two flags F_LOCAL and F_ORIGINAL. These flags
are used to distinguish prefix in the Local-RIB and those in the Adj-
RIB-In. Adapt prefix API and add additional checks so that no Adj-RIB-
In prefixes get mistakenly selected. Currently no F_ORIGINAL prefixes
are created but this may change soon. Looks good Henning.
|
|
rde_filter(). Adapt path_update() to this change too. path_update() does
a path_copy before linking the rde_aspath into the RIB. Looks good Henning.
|
|
|
|
one hip hip hooray from Henning.
|
|
pointer plus a ref counter to link the attributes to the path object.
Saves +/- 10M on 11 full feeds. Looks good Henning
|
|
to the RIB without checking if there was a equal path already available.
Modify path_update() so that we do not link a new aspath without calling
path_lookup() before to check if the aspath is not already in the RIB.
Found via bgpctl show rib mem. OK henning
|
|
|
|
While there reorder some structs to help with alignment.
|
|
pointer so that the size does not grow. Adding 4 bytes to struct prefix would
result in 64MB more memory usage on one of my systems.
|
|
Does not affect IPv4 minimaly tested for IPv6 because we still don't have an
IPv6 capable neighbor. henning@ ya
|
|
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
|