Age | Commit message (Collapse) | Author |
|
Do not insert neighbors first to the address tree and then assign the
address to the struct. Instead pass the address to nbr_new() so all
keys for the various RB trees are available when setting the neighbor up.
|
|
|
|
ok sthen@
|
|
They are not bound as strongly as in ospf and causes problems when the
TCP connection is established from an not connected IP (e.g. a loopback).
Use three RB trees to sort the neighbor list by id, addr and peerid.
More cleanup is needed but this makes ldpd work against peers using
loopback IPs. Problem found, reported and fix tested again by Marcel Wiget.
|
|
|
|
This will now correctly ignore TLV with U flag set -- like the FT
extension used by JunOS. The function is built after
tlv_decode_opt_hello_prms().
Problem reported and fix tested by Marcel Wiget.
|
|
the U flag set. Kill struct hello_opt_parms_tlv since it is now
unused.
|
|
TLV header which will be used in different places shortly.
Cleanup the ldp.h header file a tiny bit.
|
|
Problem found and fix provided by Marcel Wiget <mwiget () gmail ! com>
|
|
the needed bits
ok deraadt@, millert@
|
|
now ldpd had no chance to run on a strict alignment architecture but
this makes ldpd happy on sparc64. Be careful to do all needed overflow
checks and try to make all parsing functions look similar.
OK michele@
|
|
requests. Else a priority inversion may happen that would build
label switching pathes that use inactive routes.
OK michele@
|
|
Currently on the genaration side is done.
|
|
FEC is the one and only FEC of that message. This is required by
the RFC. While it is not correct to have multiple FEC in anything
but label mapping messages ldpd will accept those since the RFC
is extra vague about this feature and it does not hurt.
|
|
definition of a FEC mapping. This makes extending struct map simpler
and makes it possible to access the additional data in struct map.
|
|
lde_send_labelrequest(), and lde_nbr_do_mappings() to follow the
algorithms defined in Appendix A of RFC 5036. Added comments and
markers for better understanding and to find missing bits.
OK michele@
|
|
OK michele@
|
|
fix the existing ones to correctly track outstanding request and
sent / recv mappings.
Looks good to michele@
|
|
it needs to be set to 0 afterwards again, because the FIB was decoupled
right before and now no "route vanished before delete" messages are
printed on shutdown.
|
|
routing daemons. Change the way the kroute tree is indexed (by FEC with
a linked list in case there is a priority conflict -- same route + nexthop
at different priorities). This needs a mpath capable MPLS routing table.
Still work in progress but works a lot better in close meshed networks.
|
|
The kernel has now a static entry for them and they should not hit the
wire anyway.
|
|
|
|
the tcp session). Calling nbr_act_session_establish() on slave systems can
crash ldpd because active events are reinitialized.
OK michele@
|
|
So replace the few calls to the reset function with nbr_start_*().
OK michele@
|
|
group of states (all but NBR_STA_DOWN). Clean up this confusion and remove
NBR_STA_UP and NBR_STA_ACTIVE.
OK michele@
|
|
This started manly because of ldpctl beeing inconsistent and me misstyping
lfib almost every time.
OK michele@
|
|
|
|
OK michele@
|
|
problem reported with the obvious fix for bgpd by Sebastian Benoit
<benoit-lists at fb12.de>, also PR 6432
applied to all the others by yours truly. ok theo
isn't it amazing how far this parser (and more) spread?
|
|
ok claudio@
|
|
since it does not care that much about reachability of routes. The idea is
to have diverse LSP in the kernel and the kernel should then decide which
path should be used.
OK michele@
|
|
handle multipath routes in MPLS.
Looks good to michele@
|
|
allows kr_redist_eval() to call kr_redist_remove(0 instead of hand rolling
the same code.
|
|
IMSG_KLABEL_CHANGE is smart enough to know when something is a change
or an insert.
|
|
to the lde so we can assign remote labels to all of those pathes.
|
|
multipath routes.
|
|
Needed for further clean etc.
|
|
Therefor the list holds the recv mappings and not the sent mappings.
ldpd sends his mappings upstream.
|
|
|
|
fix printing of multipath routes.
|
|
additional options.
|
|
|
|
The LDE only tracks neighbors with a running sessions, no session no
neighbor needed. So do not wait until the neighbor is removed in the
engine to signal the LDE since that happens a lot later.
Solves a fatal in LDE when restarting a remote ldpd quickly.
OK michele
|
|
information. This is more useful.
OK michele
|
|
|
|
Add the necessary ntohl() and shifts in various places and cleanup the byte
order mess we had before. michele@ agrees.
|
|
reason why ldpd needs to check for ip forwarding so remove that check
as well. Reminded by phessler@
|
|
route table and the per neighbor request and mapping lists.
The received and sent mappings are added to the per neighbor RB tree and
additionally linked to the route table. This makes lookups, etc. a lot
easier. While there flip the neighbor hash list over to a RB tree.
OK michele@
|
|
status instead upon creation (when the first HELLO is received). The LDE
needs only to know about operational neighbors or it may happen that the
LDE is sending messages to neighbors that have no session open resulting
in a crash because of unitialized structures.
OK michele@
|
|
Minor bump for libutil.
Previous versions of this diff and man page looked at by various people.
"you should just commit" deraadt
|