Age | Commit message (Collapse) | Author |
|
Resolve neighbors using longest prefix match. Although interface ranges
should not generally collide, it may happen for unnumbered links.
Thanks to Kenth Eriksson for the bugreport.
|
|
Protocol can have specified VRF, in such case it is restricted to a set
of ifaces associated with the VRF, otherwise it can use all interfaces.
The patch allows to specify VRF as 'default', in which case it is
restricted to a set of iface not associated with any VRF.
|
|
Simplify neighbor cache code, fix several minor bugs, and improve
handling of ONLINK flag.
|
|
|
|
|
|
Actually much simpler than expected.
|
|
|
|
|
|
|
|
The patch adds support for channels, structures connecting protocols and
tables and handling most interactions between them. The documentation is
missing yet.
|
|
|
|
Explicit setting of AF_INET(6|) in IP socket creation. BFD set to listen
on v6, without setting the V6ONLY flag to catch both v4 and v6 traffic.
Squashing and minor changes by Ondrej Santiago Zajicek
|
|
Squashing and minor changes by Ondrej Santiago Zajicek
|
|
Use net_addr for interface address prefixes, support net_addr in
configuration parser.
|
|
|
|
|
|
And some minor fixes.
Thanks to Sergey Popovich for the patch.
|
|
When there are overlapping IP prefixes and one disappears,
neighbors associated with it was removed even if there
is another covering IP prefix.
|
|
Allows using NEF_STICKY neighbors with link-local addresses. This is
used for static route nexthops, they can be specified like fe80::1%eth0
.
|
|
Thanks Matthias Schiffer for the bugreport and the original patch.
|
|
Mainly changes IA_UNNUMBERED to IA_PEER and adds IA_HOST. Also do not
show broadcast addr in show interfaces. Nobody cares for that.
|
|
|
|
|
|
|
|
- BSD kernel syncer is now self-conscious and can learn alien routes
- important bugfix in BSD kernel syncer (crash after protocol restart)
- many minor changes and bugfixes in kernel syncers and neighbor cache
- direct protocol does not generate host and link local routes
- min_scope check is removed, all routes have SCOPE_UNIVERSE by default
- also fixes some remaining compiler warnings
|
|
Finally, it is working.
|
|
|
|
|
|
The core state machine was broken - it didn't free resources
in START -> DOWN transition and might freed resources after
UP -> STOP transition before protocol turned down. It leads
to deadlock on olock acquisition when lock was not freed
during previous stop.
The current behavior is that resources, allocated during
DOWN -> * transition, are freed in * -> DOWN transition,
and flushing (scheduled in UP -> *) just counteract
feeding (scheduled in * -> UP). Protocol fell down
when both flushing is done (if needed) and protocol
reports DOWN.
BTW, is thera a reason why neighbour cache item acquired
by protocol is not tracked by resource mechanism?
|
|
|
|
|
|
|
|
neighbor->scope now contains proper address scope which is zero (SCOPE_HOST)
for local addresses, higher (SCOPE_LINK, ..., SCOPE_UNIVERSE) for remote ones.
|
|
|
|
|
|
Introduced neigh_connected_to() to serve the same purpose efficiently.
|
|
|
|
several debug() calls converted to DBG().
|
|
|