OpenBSD CVS

CVS log for src/usr.sbin/ldpd/parse.y


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

Request diff between arbitrary revisions


Default branch: MAIN


Revision 1.72 / (download) - annotate - [select for diffs], Fri Oct 15 15:01:28 2021 UTC (2 years, 7 months ago) by naddy
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, OPENBSD_7_2_BASE, OPENBSD_7_2, OPENBSD_7_1_BASE, OPENBSD_7_1, HEAD
Changes since 1.71: +8 -8 lines
Diff to previous 1.71 (colored)

Don't declare variables as "unsigned char *" that are passed to
functions that take "char *" arguments.  Where such chars are
assigned to int or passed to ctype functions, explicitly cast them
to unsigned char.

For OpenBSD's clang, -Wpointer-sign has been disabled by default,
but when the parse.y code was built elsewhere, the compiler would
complain.

With help from millert@
ok benno@ deraadt@

Revision 1.71 / (download) - annotate - [select for diffs], Wed Feb 13 22:57:08 2019 UTC (5 years, 3 months ago) by deraadt
Branch: MAIN
CVS Tags: 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
Changes since 1.70: +3 -3 lines
Diff to previous 1.70 (colored)

(unsigned) means (unsigned int) which on ptrdiff_t or size_t or other
larger types really is a range reduction...
Almost any cast to (unsigned) is a bug.
ok millert tb benno

Revision 1.70 / (download) - annotate - [select for diffs], Wed Jan 23 08:43:45 2019 UTC (5 years, 4 months ago) by dlg
Branch: MAIN
Changes since 1.69: +3 -2 lines
Diff to previous 1.69 (colored)

teach ldpd to ask if a potential pseudowire interface can do pwe3

this makes ldpd open the ioctl socket early so the config parser
can run the SIOCGPWE3 ioctl against the requested interface.

ok claudio@

Revision 1.69 / (download) - annotate - [select for diffs], Wed Jan 23 03:35:14 2019 UTC (5 years, 4 months ago) by dlg
Branch: MAIN
Changes since 1.68: +26 -42 lines
Diff to previous 1.68 (colored)

factor out parsing of ldp router ids by making it part of the grammar

this way we do the inet_aton and bad address check in one place,
and just reuse it in the router-id, neighbor, and pseudowire bits.

ok claudio@

Revision 1.68 / (download) - annotate - [select for diffs], Wed Jan 23 02:02:04 2019 UTC (5 years, 4 months ago) by dlg
Branch: MAIN
Changes since 1.67: +165 -15 lines
Diff to previous 1.67 (colored)

rework how tcp md5 signatures are configured.

previously ldpd only allowed tcp md5 to be configured against a
neighbor (by ldp router id), but other vendors supported configuring
tcp md5sig by prefix as well as neighbor. this reworks the config
so auth is maintained globally as a list of prefixes that you do
and do not want to do tcp md5sig auth with.

the config statements look more like what is in bgpd.conf now too.

an example of the new config for interoperating with my baby cisco
test network:

on ios:

	mpls ldp password required for MPLS
	mpls ldp password option 1 for MPLS key-chain LDPAUTH

	key chain LDPAUTH
	 key 1
	  key-string secret

	interface Loopback0
	 ip address 192.168.0.0 255.255.255.255
	end

	ip prefix-list MPLS seq 5 permit 192.168.0.0/24
	ip access-list standard MPLS

	mpls ldp router-id Loopback0 force

and in ldpd.conf:

	router-id 192.168.0.25
	tcp md5sig password secret 192.168.0.0/24
	address-family ipv4 { interface vmx1 }

this still supports specifying tcp md5sig on neighbors, but that
is syntactic sugar around adding entries to the list of auths.

ok (and lots of help from) claudio@

Revision 1.67 / (download) - annotate - [select for diffs], Thu Nov 1 00:18:44 2018 UTC (5 years, 7 months ago) by sashan
Branch: MAIN
Changes since 1.66: +3 -2 lines
Diff to previous 1.66 (colored)

- odd condition/test in PF lexer
  (and other lexers too)

This commit rectifies earlier change:

    in the lex... even inside quotes, a \ followed by space or tab should
    expand to space or tab, and a \ followed by newline should be ignored
    (as a line continuation).  compatible with the needs of hoststated
    (which has the most strict quoted string requirements), and ifstated
    (where one commonly does line continuations in strings).

OK deraadt@, OK millert@

Revision 1.66 / (download) - annotate - [select for diffs], Fri Sep 7 07:35:31 2018 UTC (5 years, 9 months ago) by miko
Branch: MAIN
CVS Tags: OPENBSD_6_4_BASE, OPENBSD_6_4
Changes since 1.65: +4 -9 lines
Diff to previous 1.65 (colored)

replace malloc()+strlcpy() with strndup() in cmdline_symset().

"looks good" gilles@ halex@

Revision 1.65 / (download) - annotate - [select for diffs], Wed Jul 11 07:39:22 2018 UTC (5 years, 10 months ago) by krw
Branch: MAIN
Changes since 1.64: +4 -4 lines
Diff to previous 1.64 (colored)

Do for most running out of memory err() what was done for most running
out of memory log_warn(). i.e. ("%s", __func__) instead of manual
function names and redundant verbiage about which wrapper detected the
out of memory condition.

ok henning@

Revision 1.64 / (download) - annotate - [select for diffs], Mon Jul 9 12:05:11 2018 UTC (5 years, 11 months ago) by krw
Branch: MAIN
Changes since 1.63: +5 -5 lines
Diff to previous 1.63 (colored)

No need to mention which memory allocation entry point failed (malloc,
calloc or strdup), we just need to log that we ran out of memory in a
particular function.

Recommended by florian@ and deraadt@

ok benno@ henning@ tb@

Revision 1.63 / (download) - annotate - [select for diffs], Mon Jun 11 09:34:46 2018 UTC (5 years, 11 months ago) by denis
Branch: MAIN
Changes since 1.62: +83 -51 lines
Diff to previous 1.62 (colored)

Fix an off-by-one line count when using include statements.

Thanks to otto@ for the initial diff.

OK benno@

Revision 1.62 / (download) - annotate - [select for diffs], Thu Apr 26 14:12:19 2018 UTC (6 years, 1 month ago) by krw
Branch: MAIN
Changes since 1.61: +3 -1 lines
Diff to previous 1.61 (colored)

Plug leak in error case of the common 'varset' implementations.

ok benno@

Revision 1.61 / (download) - annotate - [select for diffs], Fri Mar 3 23:41:27 2017 UTC (7 years, 3 months ago) by renato
Branch: MAIN
CVS Tags: OPENBSD_6_3_BASE, OPENBSD_6_3, OPENBSD_6_2_BASE, OPENBSD_6_2, OPENBSD_6_1_BASE, OPENBSD_6_1
Changes since 1.60: +3 -3 lines
Diff to previous 1.60 (colored)

Minor tweaks.

Revision 1.60 / (download) - annotate - [select for diffs], Fri Mar 3 23:36:06 2017 UTC (7 years, 3 months ago) by renato
Branch: MAIN
Changes since 1.59: +32 -2 lines
Diff to previous 1.59 (colored)

Allow to run on a non-default rdomain.

OK claudio@

Revision 1.59 / (download) - annotate - [select for diffs], Thu Jan 5 13:53:09 2017 UTC (7 years, 5 months ago) by krw
Branch: MAIN
Changes since 1.58: +2 -3 lines
Diff to previous 1.58 (colored)

Replace hand-rolled for(;;) emptying of 'symhead' TAILQ with more
modern TAILQ_FOREACH_SAFE().

No intentional functional change.

ok millert@ bluhm@ gilles@

Revision 1.58 / (download) - annotate - [select for diffs], Thu Jan 5 12:42:18 2017 UTC (7 years, 5 months ago) by krw
Branch: MAIN
Changes since 1.57: +7 -5 lines
Diff to previous 1.57 (colored)

Replace symset()'s hand-rolled for(;;) traversal of 'symhead' TAILQ
with more modern TAILQ_FOREACH(). This what symget() was already
doing.

Add paranoia '{}' around body of symget()'s TAILQ_FOREACH().

No intentional functional change.

ok bluhm@ otto@

Revision 1.57 / (download) - annotate - [select for diffs], Fri Jul 1 23:14:31 2016 UTC (7 years, 11 months ago) by renato
Branch: MAIN
CVS Tags: OPENBSD_6_0_BASE, OPENBSD_6_0
Changes since 1.56: +20 -2 lines
Diff to previous 1.56 (colored)

Add GTSM support (RFC 6720).

This also finishes the missing bits from our RFC 7552 implementation
because GTSM is mandatory for LDPv6.

To avoid any kind of interoperability problems, I included a few
knobs to enable/disable GTSM on a per-address-family and per-neighbor
basis. Cisco's LDPv6 implementation, for instance, doesn't support GTSM.

"reads good" claudio@

Revision 1.56 / (download) - annotate - [select for diffs], Tue Jun 21 21:35:24 2016 UTC (7 years, 11 months ago) by benno
Branch: MAIN
Changes since 1.55: +9 -1 lines
Diff to previous 1.55 (colored)

do not allow whitespace in macro names, i.e. "this is" = "a variable".
change this in all config parsers in our tree that support macros.
problem reported by sven falempin.

feedback from henning@, stsp@, deraadt@
ok florian@ mikeb@

Revision 1.55 / (download) - annotate - [select for diffs], Sat Jun 18 01:33:02 2016 UTC (7 years, 11 months ago) by renato
Branch: MAIN
Changes since 1.54: +30 -20 lines
Diff to previous 1.54 (colored)

Do not allow configuring the same interface for both LDP and VPLS.

Configuring an interface for both LDP signaling and as a member of a
VPLS instance doesn't cause any harm as far as ldpd is concerned. But
it certainly doesn't make any sense, so it's better to reject the
configuration and warn the user instead of ignoring this silently.

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

Improve security by calling exec after fork.

For each child process (lde and ldpe), re-exec ldpd with a special
"per-role" getopt flag. This way we have seperate ASLR/cookies per
process.

Based on a similar patch for bgpd, from claudio@

Requested by deraadt@

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

Update copyright information.

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

Remove superfluous includes.

Revision 1.51 / (download) - annotate - [select for diffs], Mon May 23 19:09:25 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.50: +82 -81 lines
Diff to previous 1.50 (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.50 / (download) - annotate - [select for diffs], Mon May 23 18:58:48 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.49: +227 -73 lines
Diff to previous 1.49 (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.49 / (download) - annotate - [select for diffs], Mon May 23 18:55:21 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.48: +41 -50 lines
Diff to previous 1.48 (colored)

Assorted fixes and small cleanup.

Nothing really interesting here.

Revision 1.48 / (download) - annotate - [select for diffs], Mon May 23 18:41:59 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.47: +5 -6 lines
Diff to previous 1.47 (colored)

Enable changing the router-id via config reload.

Now ldpd can start without a router-id, since it can be set later. Since
a router-id of 0.0.0.0 is invalid, interfaces and targeted-neighbors
will check for a valid router-id in order to be activated.

When the router-id is changed, all the neighborships are reset.

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

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.

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

Fix bugs in pseudowire parameters negotiation.

Revision 1.45 / (download) - annotate - [select for diffs], Mon May 23 18:28:22 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.44: +6 -6 lines
Diff to previous 1.44 (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.44 / (download) - annotate - [select for diffs], Mon May 23 17:43:42 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.43: +37 -41 lines
Diff to previous 1.43 (colored)

Fix mess caused by my commit script.

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

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

Rework L2VPN code.

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

clear_config() should only deallocate memory and nothing else.

clear_config() is called when the parser fails (at startup or config
reload). While cleaning up the allocated memory, the parser should not
log anything, after all the daemon's running configuration is untouched.
So, in this case, we se should clear the partial config by hand and
avoid functions like if_del().

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

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.

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

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.

Revision 1.39 / (download) - annotate - [select for diffs], Mon May 23 16:18:51 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.38: +5 -5 lines
Diff to previous 1.38 (colored)

Make neighbor parameters per lsr-id not per transport-address.

With the advent of IPv6 support, a single neighbor can have two different
transport-addresses: one for ipv4 and one for ipv6. In order to define
neighbor-specific parameters in an indistinguishable way, define them
by lsr-id. This way we can switch between LDPov4 and LDPov6 and keep
the same configuration.

Revision 1.38 / (download) - annotate - [select for diffs], Mon May 23 16:14:36 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.37: +7 -7 lines
Diff to previous 1.37 (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.37 / (download) - annotate - [select for diffs], Mon May 23 16:08:18 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.36: +1 -3 lines
Diff to previous 1.36 (colored)

Several improvements in the parsing of UDP/Hello packets.

* Fix check of the packet's size and the "PDU Length" field;
* Add check for the "Message Length" field;
* Check for invalid labelspace earlier.
* Use if_lookup() on disc_recv_iface() to reduce one level of identation;

Additionally, add the following safeguards:
* Check for unicast link hellos;
* Check for multicast targeted hellos;
* Validate packet's source address;
* Validate received transport-address.

Put the ancillary function bad_ip_addr() into a new file, util.c, which
will be used later for several other things.

Revision 1.36 / (download) - annotate - [select for diffs], Mon May 23 15:43:11 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.35: +17 -2 lines
Diff to previous 1.35 (colored)

Add knob to configure the transport address.

This will be especially important when we add support for IPv6, because
we'll not be able to use the router-id as the transport-address in
this case.

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

Allow setting the session holdtime per neighbor.

Revision 1.34 / (download) - annotate - [select for diffs], Mon May 23 15:32:48 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.33: +19 -1 lines
Diff to previous 1.33 (colored)

Add support for including additional configuration files.

Pulled from ospfd. Original author: dlg@

Revision 1.33 / (download) - annotate - [select for diffs], Mon May 23 15:30:43 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.32: +2 -2 lines
Diff to previous 1.32 (colored)

Fix router-id selection if static router-id is not given.

First convert IP addresses to host byte-order before checking which one
is smaller. Additionally fix the check to find the lowest configured IP
as suggested by the RFC.

Pulled from ospfd. Original author: claudio@

Revision 1.32 / (download) - annotate - [select for diffs], Mon May 23 15:28:39 2016 UTC (8 years ago) by renato
Branch: MAIN
Changes since 1.31: +5 -3 lines
Diff to previous 1.31 (colored)

Bring in the findeol() fix from pfctl.

Pulled from ospfd. Original author: henning@

Revision 1.31 / (download) - annotate - [select for diffs], Sun Sep 27 17:30:38 2015 UTC (8 years, 8 months ago) by stsp
Branch: MAIN
CVS Tags: OPENBSD_5_9_BASE, OPENBSD_5_9
Changes since 1.30: +9 -9 lines
Diff to previous 1.30 (colored)

As done for bgpd recently, rename if_mediatype to if_type in ldpd.
And some ifmedia64 fixes.
"move forward" deraadt@

Revision 1.30 / (download) - annotate - [select for diffs], Tue Jul 21 04:56:44 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
CVS Tags: OPENBSD_5_8_BASE, OPENBSD_5_8
Changes since 1.29: +25 -1 lines
Diff to previous 1.29 (colored)

Validate ip addresses on configuration.

ok claudio@

Revision 1.29 / (download) - annotate - [select for diffs], Tue Jul 21 04:52:29 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.28: +320 -9 lines
Diff to previous 1.28 (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.28 / (download) - annotate - [select for diffs], Tue Jul 21 04:45:21 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.27: +15 -3 lines
Diff to previous 1.27 (colored)

Reuse merge_config() logic to simplify the shutdown of each process.

ok claudio@

Revision 1.27 / (download) - annotate - [select for diffs], Tue Jul 21 04:40:56 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.26: +5 -2 lines
Diff to previous 1.26 (colored)

Assorted fixes and code cleanup for targeted neighbors.

ok claudio@

Revision 1.26 / (download) - annotate - [select for diffs], Sun Jul 19 21:04:38 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.25: +6 -1 lines
Diff to previous 1.25 (colored)

Add missing LIST_INIT's.

ok claudio@

Revision 1.25 / (download) - annotate - [select for diffs], Sun Jul 19 21:01:56 2015 UTC (8 years, 10 months ago) by renato
Branch: MAIN
Changes since 1.24: +73 -5 lines
Diff to previous 1.24 (colored)

Implement md5 authentication support.

ok claudio@

Revision 1.24 / (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.23: +1 -50 lines
Diff to previous 1.23 (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.23 / (download) - annotate - [select for diffs], Thu Nov 20 05:51:20 2014 UTC (9 years, 6 months ago) by jsg
Branch: MAIN
CVS Tags: OPENBSD_5_7_BASE, OPENBSD_5_7
Changes since 1.22: +4 -1 lines
Diff to previous 1.22 (colored)

Don't allow embedded nul characters in strings.
Fixes a pfctl crash with an anchor name containing
an embedded nul found with the afl fuzzer.

pfctl parse.y patch from and ok deraadt@

Revision 1.22 / (download) - annotate - [select for diffs], Fri Nov 14 03:20:37 2014 UTC (9 years, 6 months ago) by doug
Branch: MAIN
Changes since 1.21: +4 -2 lines
Diff to previous 1.21 (colored)

Add gcc printf format attributes to yyerror() in parse.y files.
No yyerror() calls needed to be changed.

ok bluhm@

Revision 1.21 / (download) - annotate - [select for diffs], Mon Nov 3 18:44:36 2014 UTC (9 years, 7 months ago) by bluhm
Branch: MAIN
Changes since 1.20: +6 -6 lines
Diff to previous 1.20 (colored)

Convert the logic in yyerror().  Instead of creating a temporary
format string, create a temporary message.
OK claudio@

Revision 1.20 / (download) - annotate - [select for diffs], Wed Jan 22 00:21:16 2014 UTC (10 years, 4 months ago) by henning
Branch: MAIN
CVS Tags: OPENBSD_5_6_BASE, OPENBSD_5_6, OPENBSD_5_5_BASE, OPENBSD_5_5
Changes since 1.19: +2 -2 lines
Diff to previous 1.19 (colored)

relax the cfg file secrecy check slightly to allow group readability
default permissions and mtree NOT changed.
prodded by benno, ok phessler benno jmatthew theo pelikan florian

Revision 1.19 / (download) - annotate - [select for diffs], Mon Nov 25 12:57:42 2013 UTC (10 years, 6 months ago) by benno
Branch: MAIN
Changes since 1.18: +7 -7 lines
Diff to previous 1.18 (colored)

use u_char for buffers in yylex, for ctype calls
found by millert@, ok deraadt@

Revision 1.18 / (download) - annotate - [select for diffs], Tue Oct 15 20:13:47 2013 UTC (10 years, 7 months ago) by renato
Branch: MAIN
Changes since 1.17: +2 -2 lines
Diff to previous 1.17 (colored)

Since a targeted neighbor can be created both by configuration and
on runtime, the ldpd_conf structure used should be passed as an
argument to avoid segfaults.

Revision 1.17 / (download) - annotate - [select for diffs], Tue Jun 4 02:25:28 2013 UTC (11 years ago) by claudio
Branch: MAIN
CVS Tags: OPENBSD_5_4_BASE, OPENBSD_5_4
Changes since 1.16: +129 -30 lines
Diff to previous 1.16 (colored)

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

Revision 1.16 / (download) - annotate - [select for diffs], Mon Jun 3 16:58:14 2013 UTC (11 years ago) by claudio
Branch: MAIN
Changes since 1.15: +2 -1 lines
Diff to previous 1.15 (colored)

Fix bug in the fib-update command
The "fib-update" directive wasn't accepting "no" as an option.
Diff by Renato Westphal

Revision 1.15 / (download) - annotate - [select for diffs], Mon Jun 3 16:53:49 2013 UTC (11 years ago) by claudio
Branch: MAIN
Changes since 1.14: +7 -32 lines
Diff to previous 1.14 (colored)

Implement support for multiple addresses per interface.
This replaces the way addresses and interface are chained together.
In ospfd there was a 1 to 1 mapping (with iface clones) but LDP does
not have that limitation.
Diff from Renato Westphal

Revision 1.14 / (download) - annotate - [select for diffs], Sat Jun 1 19:28:55 2013 UTC (11 years ago) by claudio
Branch: MAIN
Changes since 1.13: +11 -14 lines
Diff to previous 1.13 (colored)

The keepalive timeout should be configured on a global basis and not per
interface.
Remove the iface pointer from the 'nbr' structure because it's not
needed anymore.
Diff from Renato Westphal

Revision 1.13 / (download) - annotate - [select for diffs], Sat Jun 1 18:47:07 2013 UTC (11 years ago) by claudio
Branch: MAIN
Changes since 1.12: +2 -4 lines
Diff to previous 1.12 (colored)

Drop support for per-interface labelspaces.
Support for per-interface labelspaces is only necessary for legacy ATM/FR
interfaces running in cell-mode. We shouldn't worry about this.
For platform-wide label spaces the label space id is always 0.
Diff by Renato Westphal

Revision 1.12 / (download) - annotate - [select for diffs], Sat Jun 1 18:35:02 2013 UTC (11 years ago) by claudio
Branch: MAIN
Changes since 1.11: +4 -9 lines
Diff to previous 1.11 (colored)

Drop support for passive interfaces.
Support for passive interfaces was inherited from ospfd but it doesn't
make any sense at all for ldpd.
Diff from Renato Westphal

Revision 1.11 / (download) - annotate - [select for diffs], Sat Jun 1 18:30:32 2013 UTC (11 years ago) by claudio
Branch: MAIN
Changes since 1.10: +3 -3 lines
Diff to previous 1.10 (colored)

A bit nicer error message.

Revision 1.10 / (download) - annotate - [select for diffs], Sat Jun 1 18:26:40 2013 UTC (11 years ago) by claudio
Branch: MAIN
Changes since 1.9: +8 -1 lines
Diff to previous 1.9 (colored)

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 1.9 / (download) - annotate - [select for diffs], Thu May 30 15:44:37 2013 UTC (11 years ago) by claudio
Branch: MAIN
Changes since 1.8: +3 -1 lines
Diff to previous 1.8 (colored)

Do not use a carp address as ldp router id because it is not unique.
Pulled from ospfd.
Diff from Renato Westphal [renatowestphal at gmail.com]

Revision 1.8 / (download) - annotate - [select for diffs], Wed Mar 6 21:42:40 2013 UTC (11 years, 3 months ago) by sthen
Branch: MAIN
Changes since 1.7: +8 -5 lines
Diff to previous 1.7 (colored)

as done in ospf{,6}d/relayd, sync yyerror in various other daemons with
that from bgpd, so that it logs to syslog when daemonized.

Revision 1.7 / (download) - annotate - [select for diffs], Wed Sep 1 13:54:54 2010 UTC (13 years, 9 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.6: +6 -6 lines
Diff to previous 1.6 (colored)

s/lfib/fib/ for more consitency with the other routing daemons.
This started manly because of ldpctl beeing inconsistent and me misstyping
lfib almost every time.
OK michele@

Revision 1.6 / (download) - annotate - [select for diffs], Tue Aug 3 18:42:40 2010 UTC (13 years, 10 months ago) by henning
Branch: MAIN
CVS Tags: OPENBSD_4_8_BASE, OPENBSD_4_8
Changes since 1.5: +4 -3 lines
Diff to previous 1.5 (colored)

fix linecount bug with comments spanning multiple lines
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?

Revision 1.5 / (download) - annotate - [select for diffs], Mon Jun 21 19:41:44 2010 UTC (13 years, 11 months ago) by claudio
Branch: MAIN
Changes since 1.4: +2 -1 lines
Diff to previous 1.4 (colored)

Requiring { } blocks for interfaces is dumb since most don't need any
additional options.

Revision 1.4 / (download) - annotate - [select for diffs], Tue May 25 13:29:45 2010 UTC (14 years ago) by claudio
Branch: MAIN
Changes since 1.3: +2 -12 lines
Diff to previous 1.3 (colored)

Remove another leftover from ospfd. ldpd does not have a concept of ext_tag
and so there is no need to carry ext_tag and rtlabels around.
"Yes! kill kill kill" michele@

Revision 1.3 / (download) - annotate - [select for diffs], Thu Feb 18 15:25:28 2010 UTC (14 years, 3 months ago) by michele
Branch: MAIN
CVS Tags: OPENBSD_4_7_BASE, OPENBSD_4_7
Changes since 1.2: +3 -2 lines
Diff to previous 1.2 (colored)

Set the correct defaults for label advertisement, retention and distribution.

ok claudio@

Revision 1.2 / (download) - annotate - [select for diffs], Tue Feb 16 08:02:21 2010 UTC (14 years, 3 months ago) by michele
Branch: MAIN
Changes since 1.1: +7 -3 lines
Diff to previous 1.1 (colored)

Plug a memory leak in pushfile().

ok claudio@

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

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.