OpenBSD CVS

CVS log for src/usr.sbin/ldpd/lde_lib.c


[BACK] Up to [local] / src / usr.sbin / ldpd

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.71 / (download) - annotate - [select for diffs], Wed Mar 8 04:43:13 2023 UTC (14 months, 3 weeks ago) by guenther
Branch: MAIN
CVS Tags: OPENBSD_7_5_BASE, OPENBSD_7_5, OPENBSD_7_4_BASE, OPENBSD_7_4, OPENBSD_7_3_BASE, OPENBSD_7_3, HEAD
Changes since 1.70: +1 -2 lines
Diff to previous 1.70 (colored)

Delete obsolete /* ARGSUSED */ lint comments.

ok miod@ millert@

Revision 1.70 / (download) - annotate - [select for diffs], Wed Dec 28 21:30:17 2022 UTC (17 months ago) by jmc
Branch: MAIN
Changes since 1.69: +2 -2 lines
Diff to previous 1.69 (colored)

spelling fixes; from paul tagliamonte
any parts of his diff not taken are noted on tech

Revision 1.69 / (download) - annotate - [select for diffs], Sat Mar 4 00:15:35 2017 UTC (7 years, 3 months ago) by renato
Branch: MAIN
CVS Tags: OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, OPENBSD_7_0_BASE, OPENBSD_7_0, OPENBSD_6_9_BASE, OPENBSD_6_9, OPENBSD_6_8_BASE, OPENBSD_6_8, OPENBSD_6_7_BASE, OPENBSD_6_7, OPENBSD_6_6_BASE, OPENBSD_6_6, OPENBSD_6_5_BASE, OPENBSD_6_5, OPENBSD_6_4_BASE, OPENBSD_6_4, OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.68: +44 -1 lines
Diff to previous 1.68 (colored)

Implement RFC 5919 (LDP End-of-LIB).

Revision 1.68 / (download) - annotate - [select for diffs], Sat Mar 4 00:12:26 2017 UTC (7 years, 3 months ago) by renato
Branch: MAIN
Changes since 1.67: +8 -1 lines
Diff to previous 1.67 (colored)

Implement RFC 6667 (Typed Wildcard FEC for PWid).

Revision 1.67 / (download) - annotate - [select for diffs], Sat Mar 4 00:09:17 2017 UTC (7 years, 3 months ago) by renato
Branch: MAIN
Changes since 1.66: +57 -1 lines
Diff to previous 1.66 (colored)

Implement RFC 5918 (Typed Wildcard FEC).

Revision 1.66 / (download) - annotate - [select for diffs], Sat Mar 4 00:03:04 2017 UTC (7 years, 3 months ago) by renato
Branch: MAIN
Changes since 1.65: +48 -11 lines
Diff to previous 1.65 (colored)

Implement support for PWid group wildcards.

This was missing from our original RFC 4447 VPLS implementation. Now
ldpd understands group wildcards as mandated by the RFC, but we still
don't send them ourselves. I can't see any case in which sending a group
wildcard would be useful, but nonetheless this patch provides a function
called lde_send_labelwithdraw_pwid_wcard() which is ready to be used in
the future anytime we feel like it might be useful.

Revision 1.65 / (download) - annotate - [select for diffs], Fri Mar 3 23:59:58 2017 UTC (7 years, 3 months ago) by renato
Branch: MAIN
Changes since 1.64: +10 -5 lines
Diff to previous 1.64 (colored)

Fix processing of Label Withdraw messages.

Whenever we receive a Label Withdraw message with an optional Label
TLV, we should check if this label matches the label previously
received from this neighbor for this FEC. If they don't match then we
shouldn't uninstall the previous label from the kernel. This fixes a
misinterpretation from the "Receive Label Withdraw" algorithm described
in the A.1.5 section of RFC 5036.

Also, simplify the check of pending withdraws in lde_check_release()
and lde_check_release_wcard().

Revision 1.64 / (download) - annotate - [select for diffs], Fri Mar 3 23:41:27 2017 UTC (7 years, 3 months ago) by renato
Branch: MAIN
Changes since 1.63: +4 -4 lines
Diff to previous 1.63 (colored)

Minor tweaks.

Revision 1.63 / (download) - annotate - [select for diffs], Fri Jul 1 23:36:38 2016 UTC (7 years, 11 months ago) by renato
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.62: +4 -4 lines
Diff to previous 1.62 (colored)

More renaming and whitespace cleanup.

No binary change after "strip -s".

Revision 1.62 / (download) - annotate - [select for diffs], Fri Jul 1 23:29:55 2016 UTC (7 years, 11 months ago) by renato
Branch: MAIN
Changes since 1.61: +9 -9 lines
Diff to previous 1.61 (colored)

Several minor tweaks.

Revision 1.61 / (download) - annotate - [select for diffs], Sat Jun 18 01:29:05 2016 UTC (7 years, 11 months ago) by renato
Branch: MAIN
Changes since 1.60: +6 -4 lines
Diff to previous 1.60 (colored)

Remove TODO comments about loop detection.

LDP loop detection is only necessary for ATM LSRs running in cell mode. We
are never going to implement this "feature".

Also, add two more comments in lde_check_request().

Revision 1.60 / (download) - annotate - [select for diffs], Sat Jun 18 01:25:53 2016 UTC (7 years, 11 months ago) by renato
Branch: MAIN
Changes since 1.59: +16 -10 lines
Diff to previous 1.59 (colored)

Fix small LIB<->LFIB synchronization issue.

ldpd operates only with the best routes of each IP prefix. In other words,
the routes with the lowest priorities.

When a route with a better priority is detected (possibly with a different
nexthop), we should uninstall the labels from the "old" routes and try
to install a new label for the new route (if there's one available in
the LIB).

In this specific case, ldpd was failing to uninstall the labels from the
old routes because it wasn't keeping track of each route's priority in
lde. With this missing bit of information, the parent process had no way
to get the correct label to uninstall when processing a IMSG_KLABEL_DELETE
message.

Revision 1.59 / (download) - annotate - [select for diffs], Sat Jun 11 02:03:36 2016 UTC (7 years, 11 months ago) by renato
Branch: MAIN
Changes since 1.58: +2 -2 lines
Diff to previous 1.58 (colored)

Add missing ntohl() when recording a label request.

Fixes the following ANVL LDP tests: 1.5 and 9.4.

Revision 1.58 / (download) - annotate - [select for diffs], Mon May 23 19:14:03 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.57: +2 -1 lines
Diff to previous 1.57 (colored)

Update copyright information.

Revision 1.57 / (download) - annotate - [select for diffs], Mon May 23 19:11:42 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.56: +3 -14 lines
Diff to previous 1.56 (colored)

Remove superfluous includes.

Revision 1.56 / (download) - annotate - [select for diffs], Mon May 23 19:09:25 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.55: +16 -21 lines
Diff to previous 1.55 (colored)

Make functions and variables static whenever possible.

The benefits of this include:
* clean up of the ldpd global namespace;
* improved readability;
* more hints to the compiler/linker to generate more efficient code.

Whenever possible, move global static variables to a smaller scope
(function).

All extern variables are now declared in header files to avoid unnecessary
duplication.

This patch also cleans up the indentation of all function prototypes
and global variables.

Revision 1.55 / (download) - annotate - [select for diffs], Mon May 23 18:58:48 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.54: +63 -30 lines
Diff to previous 1.54 (colored)

Add support for IPv6 (RFC 7552).

This includes:
* Full compliance to RFC 7552;
* Support for MD5 on LDPov6 sessions;
* Support for pseudowires over IPv6 LSPs (we're probably the world's
  first implementation doing this);
* Support for the IPv6 explicit-null label;
* Knob to specify the prefered address-family for TCP transport
  connections;
* Knob to use cisco non-compliant format to send and interpret the
  Dual-Stack capability TLV.

Revision 1.54 / (download) - annotate - [select for diffs], Mon May 23 18:55:21 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.53: +9 -11 lines
Diff to previous 1.53 (colored)

Assorted fixes and small cleanup.

Nothing really interesting here.

Revision 1.53 / (download) - annotate - [select for diffs], Mon May 23 18:46:13 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.52: +50 -1 lines
Diff to previous 1.52 (colored)

Introduce a garbage collector for dead entries in the LIB.

If we lose a route and all of its associated labels, then there's no
point on keeping an entry for it in the LIB.

Revision 1.52 / (download) - annotate - [select for diffs], Mon May 23 18:44:47 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.51: +7 -23 lines
Diff to previous 1.51 (colored)

Simplify label allocation.

Whenever we lose a route, unset the local label. If the same route is
learned again later, allocate a new label for it. No need to be economic
with labels, it's not worth the added complexity.

Revision 1.51 / (download) - annotate - [select for diffs], Mon May 23 18:32:24 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.50: +12 -9 lines
Diff to previous 1.50 (colored)

Reuse lde_address_find() inside lde_check_mapping().

Revision 1.50 / (download) - annotate - [select for diffs], Mon May 23 18:28:22 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.49: +4 -4 lines
Diff to previous 1.49 (colored)

Copy structs by assignment instead of memcpy.

Copying by straight assignment is shorter, easier to read and has a
higher level of abstraction. We'll only avoid it when copying from an
unaligned source (e.g., network buffers).

In addition, copy in_addr structs directly.

Revision 1.49 / (download) - annotate - [select for diffs], Mon May 23 17:43:42 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.48: +28 -13 lines
Diff to previous 1.48 (colored)

Fix mess caused by my commit script.

I screwed up everything... trying to fix now.

Revision 1.48 / (download) - annotate - [select for diffs], Mon May 23 16:54:22 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.47: +76 -28 lines
Diff to previous 1.47 (colored)

Rework L2VPN code.

Revision 1.47 / (download) - annotate - [select for diffs], Mon May 23 16:52:16 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.46: +3 -3 lines
Diff to previous 1.46 (colored)

Fix bug in the processing of label withdraws and releases.

The F_MAP_PW_ID flag is only set for PW-ID mappings, which means that we
were ignoring all label withdraws and label releases for non PW-ID FECs.

Revision 1.46 / (download) - annotate - [select for diffs], Mon May 23 16:43:57 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.45: +3 -6 lines
Diff to previous 1.45 (colored)

Make send_labelmessage() more robust.

Immediately return from this function if the given list of mappings
is empty. This way we have more freedom when sending label messages,
not having to care with corner cases.

Revision 1.45 / (download) - annotate - [select for diffs], Mon May 23 16:29:22 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.44: +3 -3 lines
Diff to previous 1.44 (colored)

Fix byte order issues with notification messages.

Revision 1.44 / (download) - annotate - [select for diffs], Mon May 23 16:25:11 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.43: +1 -3 lines
Diff to previous 1.43 (colored)

Remove unnecessary break statements.

Revision 1.43 / (download) - annotate - [select for diffs], Mon May 23 16:14:36 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.42: +2 -2 lines
Diff to previous 1.42 (colored)

More renaming.

Rename a few more things to improve readability.

* s/F_PW_CONTROLWORD_CONF/F_PW_CWORD_CONF/ (shorter)
* s/F_PW_CONTROLWORD/F_PW_CWORD/ (shorter)
* s/LDPD_FLAG_*/F_LDPD_*/ (consistency)
* s/lde_nbr_address/lde_addr/ (shorter)
* s/ldp_discovery_socket/ldp_disc_socket/ (shorter)
* s/ldp_ediscovery_socket/ldp_edisc_socket/ (shorter)
* s/ldp_sendboth/main_imsg_compose_both/ (consistency)
* s/cons/total/ (makes more sense)
* s/kaddr/ka/ (consistency with remaining code)
* Always use 'ln' for lde_nbrs (consistency)

Revision 1.42 / (download) - annotate - [select for diffs], Mon May 23 16:12:28 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.41: +4 -4 lines
Diff to previous 1.41 (colored)

Rename a few constants to avoid confusion.

In ldpd we have the map structure, which is used to represent a label message,
and the fec structure, used to store FECs in the LIB.

As of now, ldpd supports two type of FECs:
* IPv4 prefix (FEC_TYPE_IPV4);
* PWID (FEC_TYPE_PWID).

For the label messages, the following contants were being used:
* FEC_WILDCARD;
* FEC_PREFIX (IPv4 or IPv6);
* FEC_PWID.

Since these contants have similar names to the previous ones, rename
them to:
* MAP_TYPE_WILDCARD;
* MAP_TYPE_PREFIX;
* MAP_TYPE_PWID.

Revision 1.41 / (download) - annotate - [select for diffs], Mon May 23 15:14:07 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.40: +6 -6 lines
Diff to previous 1.40 (colored)

Replace manually written function names with __func__.

Revision 1.40 / (download) - annotate - [select for diffs], Tue Jul 21 04:52:29 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9, OPENBSD_5_8_BASE, OPENBSD_5_8
Changes since 1.39: +124 -87 lines
Diff to previous 1.39 (colored)

VPLS signaling support.

This patch introduces full support for pseudowire signaling in ldpd(8),
including Control Word and Status TLV negotiation.

As of now it's not possible to configure a VPWS, but the signaling is
the same. In the future, when VPWS support is available in the kernel,
ldpd(8) can be extended to support VPWS with only a few modifications.

Limitations:
* No support for FEC 129, only FEC 128 (more widely deployed);
* No support for group withdraws (not widely deployed);
* No support for MAC withdraws (not widely deployed).

Related RFCs:
* RFC 3916: Requirements for Pseudo-Wire Emulation Edge-to-Edge (PWE3)
* RFC 3985: Pseudo Wire Emulation Edge-to-Edge (PWE3) Architecture
* RFC 4385: Pseudowire Emulation Edge-to-Edge (PWE3) Control Word for
  Use over an MPLS PSN
* RFC 4446: IANA Allocations for Pseudowire Edge to Edge Emulation (PWE3)
* RFC 4447: Pseudowire Setup and Maintenance Using the Label Distribution
  Protocol (LDP)
* RFC 4448: Encapsulation Methods for Transport of Ethernet over MPLS
  Networks
* RFC 4905: Encapsulation Methods for Transport of Layer 2 Frames over
  MPLS Networks
* RFC 4906: Transport of Layer 2 Frames Over MPLS

ok claudio@

Revision 1.39 / (download) - annotate - [select for diffs], Tue Jul 21 04:48:42 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.38: +13 -20 lines
Diff to previous 1.38 (colored)

Record all fields of the received label mappings.

Since we implement the Liberal Label Retention mode, we need to record
all fields of the received label mappings so the messages can be processed
later when there is a matching nexthop for the advertised FECs.

This will be important when we implement VPLS because we need to retain
information like the pseudowire's interface MTU and Group ID.

ok claudio@

Revision 1.38 / (download) - annotate - [select for diffs], Tue Jul 21 04:46:51 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.37: +166 -167 lines
Diff to previous 1.37 (colored)

Rename structures and functions to be more generic.

LDP work with FECs, where a FEC can be a prefix, a pseudowire and so on.

ok claudio@

Revision 1.37 / (download) - annotate - [select for diffs], Sun Jul 19 20:54:16 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.36: +237 -163 lines
Diff to previous 1.36 (colored)

Rework label mapping algorithms to be more in line with the RFC.

This patch presents a thoroughly review of the label mapping
algorithms. Most of the changes are minor bug fixes in the handling of
received label messages.

Additional improvements:
* Add a few more references to the Appendix A of the RFC5036 ("LDP
  Label Distribution Procedures") into the code;
* Add full multipath support;
* Send label withdraws when appropriate;
* Add label withdraw/release wildcard support.

NOTE: As a result of implementing only the "Liberal Label Retention" and
"Downstream Unsolicited" modes, we will never send a label request
("Request  Never"). And that means that we can ignore the following
notification messages: "Label Request Aborted", "No Label Resources",
"No Route" and "Label Resources Available". The following algorithms
mentioned in the RFC can also be ignored: "Timeout of Deferred Label
Request", "Detect Local Label Resources Have Become Available" and
"Receive Label Abort Request".

Now, considering that we only support one combination of all modes of
operation, we can say that we have an almost complete implementation of
the protocol.

ok claudio@

Revision 1.36 / (download) - annotate - [select for diffs], Sun Jul 19 20:50:03 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.35: +1 -13 lines
Diff to previous 1.35 (colored)

Remove incomplete support for unnecessary modes of  operation.

LDP has several modes of operation, it was designed in that way so it
could run on legacy equipment like ATM/FR switches with very strict
memory limitations.

For modern hardware there's no point on using either the "Conservative
Label Retention" or "Downstream On Demand" modes of operation since they
save memory at cost of blackholing traffic when routing changes. Major
vendors implement only the "Liberal Label Retention" and "Downstream
Unsolicited" modes for non ATM/FR hardware. Let's do that too.

As for using either "Independent Control" or "Ordered Control", let's
stick with the first option mainly because it's easier to implement
and because it doesn't really matter which control mode is used. For
reference, Cisco implements only "Independent Control" and Juniper only
"Ordered Control". Both modes are interoperable.

The point of supporting only one combination of all modes of operation
is that it will allow for the writing of a simpler code without removing
useful functionality.

ok claudio@

Revision 1.35 / (download) - annotate - [select for diffs], Sun Jul 19 18:34:32 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.34: +1 -2 lines
Diff to previous 1.34 (colored)

Uninstall associated label bindings when a neighbor is down.

ok claudio@

Revision 1.34 / (download) - annotate - [select for diffs], Sun Jul 19 18:27:59 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.33: +11 -39 lines
Diff to previous 1.33 (colored)

Rework kroute.c to send only the best routes to lde.

This is major rework of the kroute.c code. The idea is remove complexity
from the lde process by making kroute.c advertise only the lowest priority
routes of each prefix.

kroute.c now keeps track of all routes using three different structures:
kroute_prefix, kroute_priority and kroute_node.

kroute_prefix represents a prefix and contains an ordered list of
priorities (kroute_priority) and for each priority there is a list of
nexthops (kroute_node). Arranging the routes using these three structures
allows for the writing of a simpler code, easier to understand.

Whenever a route is removed, if there's another route for the same prefix,
but with a lower priority, this route is immediately sent to lde.

Additional fixes:
* On RTM_CHANGE, remove the old route before installing the new one;
* On IMSG_CTL_KROUTE_ADDR, show all nexthops for multpath routes;

Revision 1.33 / (download) - annotate - [select for diffs], Wed Jun 10 20:50:05 2015 UTC (8 years, 11 months ago) by miod
Branch: MAIN
Changes since 1.32: +2 -2 lines
Diff to previous 1.32 (colored)

Typos: equalivant, fucntion, libary.

Revision 1.32 / (download) - annotate - [select for diffs], Sat Apr 4 15:15:44 2015 UTC (9 years, 2 months ago) by renato
Branch: MAIN
Changes since 1.31: +25 -22 lines
Diff to previous 1.31 (colored)

Show the full LIB in the "ldpctl show lib" command.

The LIB is a table where the router keeps all known MPLS labels. So,
we should loop over all the received label mappings from all neighbors
to show the full LIB.

The lde_nbr_is_nexthop() function was introduced to verify if a lib
entry is supposed to be installed in the fib (according to the fib entry's
nexthop and the addresses advertised by the lib entry's nexthop). This is
better than keeping track of lib<->fib entries with pointers and back
pointers because it keeps the lib/fib structures independent of each
other, which in turn makes the code less prone to bugs.

OK claudio@

Revision 1.31 / (download) - annotate - [select for diffs], Tue Oct 15 20:21:25 2013 UTC (10 years, 7 months ago) by renato
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE, OPENBSD_5_7, OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.30: +3 -5 lines
Diff to previous 1.30 (colored)

Fix whitespace and other style issues.
OK claudio@

Revision 1.30 / (download) - annotate - [select for diffs], Mon Jun 3 16:56:47 2013 UTC (11 years ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.29: +2 -2 lines
Diff to previous 1.29 (colored)

Advertise the implicit-null label for routes attached to loopback
interfaces to guarantee PHP. With this 'fib-update no' is not totaly
broken because of missing mappings for the loopbacks.
Diff by Renato Westphal

Revision 1.29 / (download) - annotate - [select for diffs], Thu Nov 4 09:49:07 2010 UTC (13 years, 7 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_5_3_BASE, OPENBSD_5_3, OPENBSD_5_2_BASE, OPENBSD_5_2, OPENBSD_5_1_BASE, OPENBSD_5_1, OPENBSD_5_0_BASE, OPENBSD_5_0, OPENBSD_4_9_BASE, OPENBSD_4_9
Changes since 1.28: +39 -11 lines
Diff to previous 1.28 (colored)

Only consider pathes with highest priority when replying to label
requests. Else a priority inversion may happen that would build
label switching pathes that use inactive routes.
OK michele@

Revision 1.28 / (download) - annotate - [select for diffs], Tue Oct 26 12:08:14 2010 UTC (13 years, 7 months ago) by claudio
Branch: MAIN
Changes since 1.27: +36 -54 lines
Diff to previous 1.27 (colored)

Change lde_check_request(), lde_check_mapping(), lde_send_labelmapping(),
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@

Revision 1.27 / (download) - annotate - [select for diffs], Thu Oct 21 08:24:06 2010 UTC (13 years, 7 months ago) by claudio
Branch: MAIN
Changes since 1.26: +122 -28 lines
Diff to previous 1.26 (colored)

Start implementing the missing lablemapping messages in the LDE and
fix the existing ones to correctly track outstanding request and
sent / recv mappings.
Looks good to michele@

Revision 1.26 / (download) - annotate - [select for diffs], Fri Aug 27 12:22:46 2010 UTC (13 years, 9 months ago) by claudio
Branch: MAIN
Changes since 1.25: +2 -2 lines
Diff to previous 1.25 (colored)

Fix format string that was not changed after the log_fec introduction.

Revision 1.25 / (download) - annotate - [select for diffs], Thu Aug 26 08:39:43 2010 UTC (13 years, 9 months ago) by claudio
Branch: MAIN
Changes since 1.24: +4 -2 lines
Diff to previous 1.24 (colored)

Fix a memory leak in an error path. Found and diff by Igor Zinovik.
OK michele@

Revision 1.24 / (download) - annotate - [select for diffs], Wed Jun 30 22:15:02 2010 UTC (13 years, 11 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE, OPENBSD_4_8
Changes since 1.23: +185 -165 lines
Diff to previous 1.23 (colored)

Make it possible to store multiple LSP to a FEC. This is another step to
handle multipath routes in MPLS.
Looks good to michele@

Revision 1.23 / (download) - annotate - [select for diffs], Wed Jun 30 05:21:38 2010 UTC (13 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.22: +2 -2 lines
Diff to previous 1.22 (colored)

Kill IMSG_KLABEL_INSERT and all the related functions around it.
IMSG_KLABEL_CHANGE is smart enough to know when something is a change
or an insert.

Revision 1.22 / (download) - annotate - [select for diffs], Wed Jun 30 01:47:11 2010 UTC (13 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.21: +5 -5 lines
Diff to previous 1.21 (colored)

Switch prefix in struct map to a struct in_addr instead of a u_int32_t.
Needed for further clean etc.

Revision 1.21 / (download) - annotate - [select for diffs], Wed Jun 9 14:01:03 2010 UTC (13 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.20: +18 -1 lines
Diff to previous 1.20 (colored)

Move the logging of FEC changes to the LDE and print the FEC and label
information. This is more useful.
OK michele

Revision 1.20 / (download) - annotate - [select for diffs], Mon Jun 7 13:24:23 2010 UTC (13 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.19: +8 -13 lines
Diff to previous 1.19 (colored)

Store all labels in ldpd in host byte order without any additional shifting.
Add the necessary ntohl() and shifts in various places and cleanup the byte
order mess we had before. michele@ agrees.

Revision 1.19 / (download) - annotate - [select for diffs], Wed Jun 2 11:56:29 2010 UTC (14 years ago) by claudio
Branch: MAIN
Changes since 1.18: +159 -221 lines
Diff to previous 1.18 (colored)

Start reworking the LDE. Implement a FEC RB tree that can be used for the
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@

Revision 1.18 / (download) - annotate - [select for diffs], Tue May 25 09:31:25 2010 UTC (14 years ago) by claudio
Branch: MAIN
Changes since 1.17: +6 -3 lines
Diff to previous 1.17 (colored)

Kill a bogus bzero() and introduce an empty lde_check_release().
That function will be needed soon.

Revision 1.17 / (download) - annotate - [select for diffs], Wed May 19 15:28:51 2010 UTC (14 years ago) by claudio
Branch: MAIN
Changes since 1.16: +1 -4 lines
Diff to previous 1.16 (colored)

Remove yet another ospf leftover that is not needed here. This time
neighbor self and all the madness surrounding this amazing concept.
LDP is not self aware so there is no need for this.
OK michele@

Revision 1.16 / (download) - annotate - [select for diffs], Tue May 11 14:54:52 2010 UTC (14 years ago) by claudio
Branch: MAIN
Changes since 1.15: +1 -2 lines
Diff to previous 1.15 (colored)

No need to do a rt_find() twice.

Revision 1.15 / (download) - annotate - [select for diffs], Tue Apr 13 15:39:29 2010 UTC (14 years, 1 month ago) by michele
Branch: MAIN
Changes since 1.14: +2 -2 lines
Diff to previous 1.14 (colored)

When a prefix has a implicit null label associated, force pop operation.
This allow us to correcly do penultimate hop popping.

From Thomas Habets. Thanks.
ok claudio@

Revision 1.14 / (download) - annotate - [select for diffs], Wed Mar 3 10:17:05 2010 UTC (14 years, 3 months ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.13: +5 -3 lines
Diff to previous 1.13 (colored)

Rework the kroute code by stealing some code from ospfd and massaging it
a lot more. Main reason for this is to add priority support. Additionally
add some additional NO_LABEL fixes.
OK michele@

Revision 1.13 / (download) - annotate - [select for diffs], Thu Feb 25 21:47:08 2010 UTC (14 years, 3 months ago) by michele
Branch: MAIN
Changes since 1.12: +2 -2 lines
Diff to previous 1.12 (colored)

One more substitution of label 0 with NO_LABEL.

ok claudio@

Revision 1.12 / (download) - annotate - [select for diffs], Thu Feb 25 21:07:31 2010 UTC (14 years, 3 months ago) by michele
Branch: MAIN
Changes since 1.11: +17 -17 lines
Diff to previous 1.11 (colored)

Whitespaces cleanup.

Revision 1.11 / (download) - annotate - [select for diffs], Thu Feb 25 21:02:46 2010 UTC (14 years, 3 months ago) by michele
Branch: MAIN
Changes since 1.10: +6 -4 lines
Diff to previous 1.10 (colored)

NO_LABEL (instead of zero) must be used to mean that no labels are associated
with the prefix.

ok claudio@

Revision 1.10 / (download) - annotate - [select for diffs], Fri Feb 19 12:49:21 2010 UTC (14 years, 3 months ago) by claudio
Branch: MAIN
Changes since 1.9: +32 -15 lines
Diff to previous 1.9 (colored)

If a neighbor goes down we need to cleanup the LIB from all FEC that point
via that neighbor. Fixes a use after free and an additional NULL dereference
in a log_debug is fixed as well.
OK michele

Revision 1.9 / (download) - annotate - [select for diffs], Tue Jan 19 18:03:08 2010 UTC (14 years, 4 months ago) by michele
Branch: MAIN
Changes since 1.8: +6 -8 lines
Diff to previous 1.8 (colored)

Don't fatalx() when a static route is deleted.

ok claudio@

Revision 1.8 / (download) - annotate - [select for diffs], Fri Jan 8 16:45:51 2010 UTC (14 years, 4 months ago) by michele
Branch: MAIN
Changes since 1.7: +39 -12 lines
Diff to previous 1.7 (colored)

Implement section A.1.6 of RFC 5036: "Recognize new FEC".

When a new prefix is learnt, redistribute the local label associated with
it to the other connected peers.

ok claudio@

Revision 1.7 / (download) - annotate - [select for diffs], Sat Jan 2 14:56:02 2010 UTC (14 years, 5 months ago) by michele
Branch: MAIN
Changes since 1.6: +6 -4 lines
Diff to previous 1.6 (colored)

In the "ldpctl show lib" output print every known label and make clear if it
is currently in use or not.

ok claudio@

Revision 1.6 / (download) - annotate - [select for diffs], Mon Sep 28 09:48:46 2009 UTC (14 years, 8 months ago) by michele
Branch: MAIN
Changes since 1.5: +34 -1 lines
Diff to previous 1.5 (colored)

When a route is deleted, ldpd should remove labels associated with it from
lfib (the kernel lib) but not from the lib. These could be used later on when
the route come back.

ok claudio@

Revision 1.5 / (download) - annotate - [select for diffs], Sun Aug 2 16:19:17 2009 UTC (14 years, 10 months ago) by michele
Branch: MAIN
Changes since 1.4: +9 -1 lines
Diff to previous 1.4 (colored)

"ldpctl show lib" output cleanup.

- Show only the remote/local labels of the prefixes currently present
in fib.

- Write a "-" instead of "0" when a remote label is not present (the
prefix is directly connected). It avoids confusion with explicit null label.

ok claudio@

Revision 1.4 / (download) - annotate - [select for diffs], Wed Jul 8 18:59:29 2009 UTC (14 years, 10 months ago) by michele
Branch: MAIN
Changes since 1.3: +30 -5 lines
Diff to previous 1.3 (colored)

Detect nexthop change.
React installing the label associated with the new nexthop
in the kernel routing table.

ok claudio@

Revision 1.3 / (download) - annotate - [select for diffs], Fri Jun 19 17:10:09 2009 UTC (14 years, 11 months ago) by michele
Branch: MAIN
CVS Tags: OPENBSD_4_6_BASE, OPENBSD_4_6
Changes since 1.2: +61 -16 lines
Diff to previous 1.2 (colored)

When operating in liberal mode, retain labels even if they aren't learnt
from current nexthop.

ok laurent@

Revision 1.2 / (download) - annotate - [select for diffs], Fri Jun 5 22:34:45 2009 UTC (14 years, 11 months ago) by michele
Branch: MAIN
Changes since 1.1: +5 -3 lines
Diff to previous 1.1 (colored)

Correctly send notification messages when errors occur.

ok claudio@ laurent@

Revision 1.1 / (download) - annotate - [select for diffs], Mon Jun 1 20:59:45 2009 UTC (15 years ago) by michele
Branch: MAIN

Welcome ldpd, the Label Distribution Protocol daemon.
Built using the imsg/three process framework, its main aim
is to redistribute MPLS labels between peers.

Right now it has some really basic functionalities,
the basic protocol works and peers are able to exchange
labels and insert them in the kernel.
It still does not react to changes of topology.

Not yet connected to the builds.

ok claudio@ deraadt@

This form allows you to request diff's between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.