Revision tags: OPENBSD_6_1_BASE OPENBSD_6_2_BASE
|
#
1.34 |
|
21-Mar-2017 |
bluhm |
From a syslog perspective it does not make sense to log fatal and warn with the same severity. Switch log_warn() to LOG_ERR and keep fatal() at LOG_CRIT. OK reyk@ florian@
|
#
1.33 |
|
20-Jan-2017 |
benno |
work on making log.c similar in all daemons:
move daemon-local functions into new logmsg.c, and reduce the (mostly whitespace) differences so that log.c's can be diffed easily.
removal of log_rtmsg() aproved by claudio@
ok claudio@ krw@
|
#
1.32 |
|
02-Sep-2016 |
renato |
Improve logging of sent and received messages.
* Standardize the logging format of sent and received messages: "msg-[in|out]: message type: lsr-id A.B.C.D [additional info]";
* Log sent label messages as well, not only the received ones;
* Move the logging of sent notification messages from send_notification_nbr() to send_notification_full(), this way notification triggered by the lde process are logged as well;
* Minor clean-up.
|
#
1.31 |
|
08-Aug-2016 |
renato |
Use exit(3) instead of _exit(2) in the child processes.
Since recently the child processes call exec() after fork(), so they should stop using _exit(2) and use exit(3) instead when shutting down.
Ok claudio@
|
#
1.30 |
|
08-Aug-2016 |
renato |
Normalize the received prefixes.
We need to use ldp_applymask() to normalize the received prefixes. Example: 10.1.1.0/16 -> 10.1.0.0/16.
Additionally, stop using IANA's AF numbers in map->fec.prefix.af and use AF_INET/AF_INET6 instead. This makes the code much simpler, use AF_IPV[46] only when necessary (decoding/encoding prefixes).
ok claudio@
|
Revision tags: OPENBSD_6_0_BASE
|
#
1.29 |
|
15-Jul-2016 |
renato |
Improve logging of reserved labels.
Print "exp-null" and "imp-null" instead of "0" and "3", for example. Also, remove print_label() and print_pw_type() from ldpctl.c and use the equivalent functions from ldpd's log.c.
While here, be more paranoid and use UINT32_MAX instead of UINT_MAX for NO_LABEL.
|
#
1.28 |
|
01-Jul-2016 |
renato |
More renaming and whitespace cleanup.
No binary change after "strip -s".
|
#
1.27 |
|
23-May-2016 |
renato |
Remove superfluous includes.
|
#
1.26 |
|
23-May-2016 |
renato |
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.
|
#
1.25 |
|
23-May-2016 |
renato |
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.
|
#
1.24 |
|
23-May-2016 |
renato |
Assorted fixes and small cleanup.
Nothing really interesting here.
|
#
1.23 |
|
23-May-2016 |
renato |
Create network sockets on the parent process.
We drop our privileges in ldpe right after we create the network sockets. The problem is that we might want to change the transport-address and reload the config, in which case we need new sockets. To allow that, always create the network sockets in the parent process and pass them to ldpe via imsg.
|
#
1.22 |
|
23-May-2016 |
renato |
Fix mess caused by my commit script.
I screwed up everything... trying to fix now.
|
#
1.21 |
|
23-May-2016 |
renato |
Rework L2VPN code.
|
#
1.20 |
|
23-May-2016 |
renato |
Standardize some log messages and fix some inconsistencies.
We were using several different names for the same thing in our log messages: neighbor, neighbor ID, nbr ID and LSR ID.
Standardize to always use "lsr-id" to refer to a neighbor.
Also: * Use log_warnx() instead of log_warn() when appropriate; * Use fatal(x) instead of err(x) when appropriate; * Fix some inconsistent log messages.
|
#
1.19 |
|
23-May-2016 |
renato |
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.
|
#
1.18 |
|
23-May-2016 |
renato |
Move some code around.
This patch doesn't introduce any logical change.
|
#
1.17 |
|
23-May-2016 |
renato |
Fix logging of wildcard label mappings.
If snprintf fails, a value less than 0 is returned.
|
#
1.16 |
|
23-May-2016 |
renato |
Replace manually written function names with __func__.
|
Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE
|
#
1.15 |
|
21-Jul-2015 |
renato |
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@
|
#
1.14 |
|
19-Jul-2015 |
renato |
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 tags: OPENBSD_5_7_BASE
|
#
1.13 |
|
03-Nov-2014 |
bluhm |
Convert the logic in yyerror(). Instead of creating a temporary format string, create a temporary message. OK claudio@
|
Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
|
#
1.12 |
|
04-Jun-2013 |
claudio |
Implement support for adjacencies and targeted hellos Refactor adjacencies out of the neighbor handling so that it is possible to have more complex topologies with targeted sessions. From Renato Westphal
|
#
1.11 |
|
01-Jun-2013 |
claudio |
Filter out route messages we don't need and log kernel messages in super verbose mode. From Renato Westphal
|
#
1.10 |
|
01-Jun-2013 |
claudio |
Don't allow enabling LDP on loopback and carp interfaces. LDP should be allowed only on physical or tunnel interfaces. Diff by Renato Westphal
|
Revision tags: OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
|
#
1.9 |
|
20-Aug-2011 |
sthen |
Decouple log_verbose() from log_init() so the verbose flag stays set with "-v" (previously only "-vd" worked). Similar to recent ospfd commit. ok claudio@
|
Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE
|
#
1.8 |
|
02-Sep-2010 |
claudio |
NBR_STA_SESSION, NBR_STA_UP, and NBR_STA_ACTIVE represent all the same group of states (all but NBR_STA_DOWN). Clean up this confusion and remove NBR_STA_UP and NBR_STA_ACTIVE. OK michele@
|
Revision tags: OPENBSD_4_8_BASE
|
#
1.7 |
|
10-Jun-2010 |
claudio |
No need to print FEC twice. Remove it in the log function.
|
#
1.6 |
|
09-Jun-2010 |
claudio |
Move the logging of FEC changes to the LDE and print the FEC and label information. This is more useful. OK michele
|
#
1.5 |
|
29-Apr-2010 |
claudio |
Remove some more ospfd-ism from the interface code. This time remove of most of the IF_TYPE_ special cases and most interface types. Point-to-point and broadcast still present because of find_iface() which needs addtional fixing. OK michele@
|
#
1.4 |
|
15-Apr-2010 |
claudio |
Log recieved notifications in a human understanable way. Makes debugging a bit easier. OK michele@
|
#
1.3 |
|
15-Apr-2010 |
claudio |
Cleanup the interface FSM by removing most of the ospfd specific states that have nothing to do with LDP. OK michele@
|
Revision tags: OPENBSD_4_7_BASE
|
#
1.2 |
|
02-Nov-2009 |
claudio |
More IMSG_CTL_LOG_VERBOSE, still doing the same toggeling of log_debug().
|
Revision tags: OPENBSD_4_6_BASE
|
#
1.1 |
|
01-Jun-2009 |
michele |
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@
|