summaryrefslogtreecommitdiff
path: root/usr.sbin
AgeCommit message (Collapse)Author
2015-07-21Document the "ldpctl show discovery" command.Renato Westphal
ok claudio@
2015-07-21Introduce two show commands for l2vpns.Renato Westphal
ok claudio@
2015-07-21Re-enable the reload command.Renato Westphal
ok claudio@
2015-07-21Improve the show lib command.Renato Westphal
ok claudio@
2015-07-21switch dpb from sudo to doas (and env as required); ok sthen@Christian Weisgerber
2015-07-21Call control_cleanup() from the ldpe process, where it belongs.Renato Westphal
ok claudio@
2015-07-21Rename, move and reuse mapping list functions.Renato Westphal
ok claudio@
2015-07-21Remove more unused defines.Renato Westphal
ok claudio@
2015-07-21Fix some awful ipc synchronization issues.Renato Westphal
Under some rare circumstances the following can happen: 1 - one neighbor sends a label withdraw followed by a fatal notification message; 2 - ldpe parses the label withdraw and sends it to lde; 3 - ldpe parses the fatal notification message and closes the session; 4 - lde processes the label withdraw and asks ldpe to send a label release; 5 - at around the same time, ldpe restarts the session with the neighbor; 6 - ldpe processes the lde message and then sends a label release to the new neighbor. The problem is that we don't want a message enqueue to a neighbor to be sent after the session is restarted. If a session is closed, all the enqueued messages should be discarded. To acomplish this, we update the peerid of the nbr structure everytime the session is established. ok claudio@
2015-07-21Validate ip addresses on configuration.Renato Westphal
ok claudio@
2015-07-21VPLS signaling support.Renato Westphal
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@
2015-07-21Record all fields of the received label mappings.Renato Westphal
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@
2015-07-21Validate ip addresses on configuration.Renato Westphal
ok claudio@
2015-07-21VPLS signaling support.Renato Westphal
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@
2015-07-21Rename structures and functions to be more generic.Renato Westphal
LDP work with FECs, where a FEC can be a prefix, a pseudowire and so on. ok claudio@
2015-07-21Reuse merge_config() logic to simplify the shutdown of each process.Renato Westphal
ok claudio@
2015-07-21Add configuration reload support.Renato Westphal
ok claudio@
2015-07-21Correct man pages. Update the config example, fix some options, fix theYASUOKA Masahiko
copyright and use $Mdocdate$.
2015-07-21Assorted fixes and code cleanup for targeted neighbors.Renato Westphal
ok claudio@
2015-07-21Improve handling of addresses on ldpe.Renato Westphal
This is a preliminary work for the the next patch (sigup config reload). We want to make sure that the ldpe process can handle duplicated addresses. The idea is to alloc two different if_addr structures for each address, and link one in the global list of addresses (used to send address messages) and link the other to the associated interface list of addresses. Doing that we will be able to call kif_redistribute() after reloading the config file and activate the new LDP enabled interfaces. NOTE: Interfaces are created at config parse time and the child processes inherit them on fork() so there's no need to send a status update at startup. ok claudio@
2015-07-21Add radiusd(8) and radiusctl(8). They are WIP. radiusd(8) is a RADIUSYASUOKA Masahiko
server and radiusctl(8) is to control the server. radiusd(8) currently supports bsdauth and radius (upstream radius servers) as authentication backends. fixes from jsg blambert ok deraadt
2015-07-20Fix a segfault at startup when if_change() ist called beforeSebastian Benoit
imsg_init() exposed by the second part of this diff which makes carp(4) interfaces be recognized to be in "backup" mode on start-up. Problem analyzed and fix provided by Johan Ymerson, thanks! ok claudio@, mpi@
2015-07-20properly encode IpAddress, Gauge32, and Counter32Bret Lambert
varbinds received from subagents ok reyk@
2015-07-20Do not reconnect outgoing TCP connections too aggressively. InAlexander Bluhm
case the receiver closes the connection, wait for a second to give him a chance to recover. OK benno@
2015-07-20Add size and NULL checks in debugutil.cYASUOKA Masahiko
Poined out by Yuuichi Someya at IIJ.
2015-07-20Pass the errcode when disconnecting L2TP call.YASUOKA Masahiko
From Yuuichi Someya at IIJ.
2015-07-20Remove old route to the tunnel interface when the interface's address isYASUOKA Masahiko
changed. From Yuuichi Someya at IIJ.
2015-07-20Add missing initializations in privsep.cYASUOKA Masahiko
From Yuuichi Someya at IIJ.
2015-07-20Do not accept sockets when syslogd reaches the file descriptorAlexander Bluhm
limit. Instead disable the listen event and wait for a second. Keep a reserve of 5 file descriptors. OK benno@
2015-07-20Make bgpd execute the RDE and session engine process instead of just forking.Claudio Jeker
This way ASLR and stack cookies are per process. With input from benno@ and deraadt@ OK benno@
2015-07-20ensure http_path is escaped before using it in Location redirection.Sebastien Marie
OK reyk@
2015-07-20tweak the /etc/random.seed interception so it provides a FILE* viaDavid Gwynne
fmemopen for the rest of the code to chew on, rather than having special casing for seed generation in the sending code. this also means our fake random.seed files will get proper netascii encoding by being read via the fgetc api instead of directly from a buffer. ok deraadt@ mcbride@
2015-07-19new sentence, new line;Jason McIntyre
2015-07-19Add missing LIST_INIT's.Renato Westphal
ok claudio@
2015-07-19Implement md5 authentication support.Renato Westphal
ok claudio@
2015-07-19Rework label mapping algorithms to be more in line with the RFC.Renato Westphal
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@
2015-07-19Remove incomplete support for unnecessary modes of operation.Renato Westphal
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@
2015-07-19For incoming TCP message streams autodetect wether the method isAlexander Bluhm
octet counting or non transparent framing. OK benno@
2015-07-19Uninstall associated label bindings when a neighbor is down.Renato Westphal
ok claudio@
2015-07-19Rework kroute.c to send only the best routes to lde.Renato Westphal
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;
2015-07-19remove unused compat files, ok florian@Stuart Henderson
b64_{ntop,pton} remain for now, they are in libc as __b64_{ntop,pton} but to use this we either need to pull in resolv.h (which does "#define b64_ntop __b64_ntop") or access the __ versions directly (as done in ssh).
2010-04-15NSD v3.2.5Jakob Schlyter
2010-01-15NSD v3.2.4Jakob Schlyter
2015-07-19handle error returns from bufferevent_write()Bret Lambert
ok florian@
2015-07-19knock out "Ns Li" before colons - the Li was being ignored anyway, and iJason McIntyre
don;t think the colon needs marked up.
2015-07-19Match change to fatal()'s prototype in bgpdPhilip Guenther
ok benno@
2015-07-19For the completeness of HSTS, add the non-standard preload option.Reyk Floeter
OK florian@
2015-07-19clarify how inet|inet6 work in filtersSebastian Benoit
mofified version by jmc@, ok phessler@ and claudio@ is fine with it (but notes that the details are more complicated)
2015-07-19In tcpdump, show 11n HTOP primary and secondary channel numbers for 40MHz BSS,Stefan Sperling
instead of showing just the primary one and "above" or "below" for secondary. ok sthen
2015-07-19revert previousSebastian Benoit
Properly handle carp(4) interfaces in "backup" mode on start-up. Problem analyzed and fix provided by Johan Ymerson, thanks! ok claudio@, benno@ it breaks on systems without carp because iev_ospfe is not initiallized at the time kif_init() is called in main.