#
38e65088 |
| 04-Mar-2017 |
renato <renato@openbsd.org> |
Send VPLS MAC withdrawals.
RFC 4762 says that MAC address withdrawal messages can be used to improve convergence time in VPLS networks. This patch makes ldpd send MAC withdrawals whenever a non-pseu
Send VPLS MAC withdrawals.
RFC 4762 says that MAC address withdrawal messages can be used to improve convergence time in VPLS networks. This patch makes ldpd send MAC withdrawals whenever a non-pseudowire interface pertaining to a VPLS goes down. The processing of received MAC withdrawals will be implemented later.
show more ...
|
#
6702dd25 |
| 04-Mar-2017 |
renato <renato@openbsd.org> |
Implement RFC 6667 (Typed Wildcard FEC for PWid).
|
#
2c06fdf4 |
| 04-Mar-2017 |
renato <renato@openbsd.org> |
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
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.
show more ...
|
#
60e1e0e7 |
| 01-Jul-2016 |
renato <renato@openbsd.org> |
More renaming and whitespace cleanup.
No binary change after "strip -s".
|
#
5ba85977 |
| 01-Jul-2016 |
renato <renato@openbsd.org> |
Be more compliant with RFC 4447.
When sending a label withdraw during the pseudowire Control Word negotiation, append a "Wrong C-bit" status TLV after the FEC TLV (in conformance to RFC 4447 section
Be more compliant with RFC 4447.
When sending a label withdraw during the pseudowire Control Word negotiation, append a "Wrong C-bit" status TLV after the FEC TLV (in conformance to RFC 4447 section 6.2). Apparently this has no use other than aiding in troubleshooting.
Also, extend the recv_labelmessage() function to accept Status TLVs and ignore them instead of shutting down the session.
show more ...
|
#
9c46b52f |
| 27-Jun-2016 |
renato <renato@openbsd.org> |
Remove superfluous call to l2vpn_pw_exit().
|
#
1fa6a9a7 |
| 18-Jun-2016 |
renato <renato@openbsd.org> |
Fix memory leak found with valgrind.
|
#
0c0343b7 |
| 18-Jun-2016 |
renato <renato@openbsd.org> |
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
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.
show more ...
|
#
5411bbb6 |
| 23-May-2016 |
renato <renato@openbsd.org> |
Remove superfluous includes.
|
#
c28a25a1 |
| 23-May-2016 |
renato <renato@openbsd.org> |
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
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.
show more ...
|
#
a8c39dc0 |
| 23-May-2016 |
renato <renato@openbsd.org> |
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 impl
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.
show more ...
|
#
19fce358 |
| 23-May-2016 |
renato <renato@openbsd.org> |
Assorted fixes and small cleanup.
Nothing really interesting here.
|
#
edf37f74 |
| 23-May-2016 |
renato <renato@openbsd.org> |
Don't create l2vpn targeted neighbors inside the config parser.
When removing a configured pseudowire, we remove the associated tnbr in ldpe_l2vpn_pw_exit(). So, when a new pseudowire is configured,
Don't create l2vpn targeted neighbors inside the config parser.
When removing a configured pseudowire, we remove the associated tnbr in ldpe_l2vpn_pw_exit(). So, when a new pseudowire is configured, it makes sense to create its tnbr in ldpe_l2vpn_pw_init() to keep things consistent.
show more ...
|
#
b5921293 |
| 23-May-2016 |
renato <renato@openbsd.org> |
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 t
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.
show more ...
|
#
a2da3f43 |
| 23-May-2016 |
renato <renato@openbsd.org> |
Fix bugs in pseudowire parameters negotiation.
|
#
3de94509 |
| 23-May-2016 |
renato <renato@openbsd.org> |
Fix mess caused by my commit script.
I screwed up everything... trying to fix now.
|
#
72bfe95e |
| 23-May-2016 |
renato <renato@openbsd.org> |
Rework L2VPN code.
|
#
ceebd37b |
| 23-May-2016 |
renato <renato@openbsd.org> |
Check for local label before trying to install pseudowire.
While here, add a comment about ECMP and pseudowires.
|
#
56dfb329 |
| 23-May-2016 |
renato <renato@openbsd.org> |
Do not accept incomplete pseudowires in the configuration.
There's no point on keeping in the config something that can not be used, it just adds unnecessary complexity. Also, it's better to warn th
Do not accept incomplete pseudowires in the configuration.
There's no point on keeping in the config something that can not be used, it just adds unnecessary complexity. Also, it's better to warn the user that there's something wrong rather than play nice and ignore the problem.
show more ...
|
#
1d5e7f63 |
| 23-May-2016 |
renato <renato@openbsd.org> |
Minor adjustments in l2vpn code.
* Define a new constant for the default pseudowire type; * On l2vpn_new(), initialize the l2vpn lists with LIST_NEW (cosmetic because the struct was calloc'ed); *
Minor adjustments in l2vpn code.
* Define a new constant for the default pseudowire type; * On l2vpn_new(), initialize the l2vpn lists with LIST_NEW (cosmetic because the struct was calloc'ed); * Add a const qualifier to the second parameter of l2vpn_find(); * Remove l2vpn_if_del() and use just free() instead.
show more ...
|
#
d99a8fc3 |
| 23-May-2016 |
renato <renato@openbsd.org> |
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 al
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.
show more ...
|
#
2d825b92 |
| 23-May-2016 |
renato <renato@openbsd.org> |
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_*/ (consistenc
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)
show more ...
|
#
33f6ccfe |
| 23-May-2016 |
renato <renato@openbsd.org> |
Move some code around.
This patch doesn't introduce any logical change.
|
#
6399cec1 |
| 21-Jul-2015 |
renato <renato@openbsd.org> |
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, b
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@
show more ...
|