Age | Commit message (Collapse) | Author |
|
|
|
mpeX' config was a bit redundant. Also to make it more flexible (e.g. having
more than one mpeX interface per rdomain the syntax was changed.
To make this possible especially the network distribution logic had to be
adjusted and cleaned up. This should in general make network statements
well defined and conflicts between 'network A.B.C.D/N' and e.g. 'network static'
are handled in a well defined way ('network A.B.C.D/N' has preference).
With and OK dlg@, OK denis@
|
|
|
|
local AS in AS paths. This is sometimes needed in bigger transport networks
where private AS numbers are used in multiple locations.
The implementation is done using a filterset which modifies the AS path -
somewhat inspired by the set attribute code. Setting as-override yes will add
match from <neighbor> set { as-override }
to the start of the filter rules. Since this is filters the Adj-RIB-In still
holds the original path and so reloads changing the setting just work.
With and OK markus@
|
|
set of RB trees of prefixes and atribute. Refactor most of the update code
which removes some strange buffer handling. By building the output queue
directly in the Adj-RIB-Out the top memory usage during startup is greatly
reduced which should help busy server.
Tested by phessler@ and myself
|
|
description. With this it is possible to show rib a group of peers, to show
or signal a group of peers all at once.
OK sthen@ benno@
|
|
ok claudio@
|
|
ifindex from the RDE over. This will allow to import prefixes to multiple
mpe interfaces in one rdomain.
OK dlg@
|
|
Should hopefully fix the error seen on systems after a few reloads where
the size became negative.
OK benno@
|
|
|
|
The kernel bits are missing as of now. With input from claudio@ and kn@
OK claudio@
|
|
ok claudio@
|
|
No need to scan the list if we return early.
OK claudio@
|
|
OK claudio@
|
|
|
|
If it is used abort startup or let a reload fail.
Sockets are now not unlinked anymore on regular shutdown.
This helps a lot when one tries to do a config check without -n.
Inputs and OK claudio@
|
|
OK claudio@
|
|
but then bgpctl can quickly exit and bgpd still has to do all the work.
Instead introduce a terminate imsg to stop such long running commands if
bgpctl closes the connection before the run is over.
OK benno@, sthen@, deraadt@
|
|
multiple ext-communities at the same time as well. Additionally this fixes
parsing some of the ext-community types. Now all communities are handled
by one common struct.
OK benno@ plus some input from denis@
|
|
|
|
into struct aspath and pass that struct to aspath_match().
OK denis@
|
|
Make sure we never return a value bigger than 128.
OK remi@
|
|
only differ in the filter sets. Since this is still rather common it is able
to reduce the number of rules by 5% on an autogenerated config.
OK job@
|
|
the config and no longer live next to each other. Because of this step 13
in the decision process is no longer needed.
OK benno@
|
|
is PEER_DOWN no updates will be processed anymore and quick flush can be made.
Fixes a memory leak and a use-after-free of the peer id in a bgpctl code path.
OK job@
|
|
nlen > 0. So in those cases it is important to free() that memory after
use in all cases.
OK phessler@
|
|
communities into one filter_community struct and allow it that more then
one community can be used in filter rules (currently up to 3).
Also rework the code handling bgpctl show rib commands. The special IMSG
types for the various filters are gone and the code is in general simpler.
OK job@, phessler@
|
|
|
|
is not found. Fixes crash reported by Tom Smyth.
|
|
OK claudio@
|
|
OK phessler@
|
|
|
|
OK claudio@
|
|
if there are any neighbors that have pending updates. If so the timeout of
the poll loop is set to 0 so that the work is completet ASAP.
The regress test was not working because of this. The RDE was stuck in poll()
instead of sending the updates out.
Tested and OK denis@
|
|
config and not the old flags. Needed so that changing flags and rtableid
at the same time works.
|
|
or the rtableid changed and there is a FIB. In the NOFIB case changing the
rtableid has no effect. Fixes a problem introduced with keeping the default
ribs alive and Adj-RIB-In/Out.
Probelm found, tested and OK denis@
|
|
OK claudio@
|
|
OK job@, benno@
|
|
introduced before 6.4 because it now can be replaced with the real RIB.
Main changes are:
- simplified 'show rib' handling since everything is now a real RIB
- path_update() is now returning if a prefix was not modified, added or moved
- softreconfig out case is simpler since path_update does all the magic now
- Adjust shutdown code to work with the Adj-RIB-Out
Tested and OK denis@, benno@
|
|
(and other lexers too)
This commit rectifies earlier change:
in the lex... even inside quotes, a \ followed by space or tab should
expand to space or tab, and a \ followed by newline should be ignored
(as a line continuation). compatible with the needs of hoststated
(which has the most strict quoted string requirements), and ifstated
(where one commonly does line continuations in strings).
OK deraadt@, OK millert@
|
|
lists are no longer needed and make it possible to share rde_aspath between
peers & prefixes. Instead of the lists the rde_aspath is now reference counted.
With this struct prefix is now the central place where everything is connected
to making the RIB a bit easier to handle.
With input and OK denis@
|
|
OK denis@
|
|
network_flush() is now using rib_dump_new to walk the Adj-RIB-In and
remove all dynamically added announcements. peer_flush() got generalized
and is now used also in peer_down(). It also uses a walker to remove all
prefixes of a peer but does it in a synchronous way for now.
OK benno@
|
|
on reload but after that not allowing it to be re-enabled. So now it is
possible to enable route-collector mode again but it is still not possible
to turn it of via reload. Problem reported by Aaron A. Glenn.
OK benno@
|
|
OK deraadt@
|
|
OK phessler@
|
|
rib_valid() check. The list of ribs can have holes.
OK benno@
|
|
sizeof calculation that did not respect possible padding bytes.
OK sthen@ denis@
|
|
walked. rib_dump_r() is now an internal function and instead the code gets
an additional callback for throttling the rib_dump code. This removes a
lot of similar code used to make sure the RDE is not walking to fast and
replaces it with simpler callbacks. The other big change is the removal
of struct rib pointers in other data structures. The rib pointers are not
stable because of a realloc() call happening when extending the array so
instead use the RIB ID as a reference.
Tested and OK denis@ and benno@
|
|
Adj-RIB-Out prints the right (modified) nexthop. Found by Marko Cupac.
OK benno@
|