Home | History | Annotate | only in /src/usr.sbin/ldpd
History log of /src/usr.sbin/ldpd
RevisionDateAuthorComments
 1.8 26-Jun-2022  riastradh ldpd(8): Fix address of misaligned packed members.

PR kern/56895
 1.7 23-Feb-2021  joerg Make use of packed member addreses non-fatal for clang, too
 1.6 03-Feb-2021  roy ldpd: Discard warning about accessing packed member

I don't see a good way of fixing this right now.
 1.5 18-Oct-2013  kefren Attempt to write a manpage for ldpd.conf
 1.4 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.3 30-Dec-2010  kefren branches: 1.3.6; 1.3.12;
* add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.2 18-Dec-2010  joerg Don't assign CFLAGS. Use default WARNS from usr.sbin/Makefile.inc.
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.3.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.3.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.6.1 16-Jan-2013  yamt sync with (a bit old) head
 1.2 30-Dec-2010  kefren * add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.15 20-Sep-2025  christos fix ctype cast.
 1.14 20-Sep-2025  christos Deduplicate the code and refactor in a way that gcc-14 is not confused.
 1.13 22-Apr-2020  joerg Avoid common symbol definitions
 1.12 10-Jan-2017  christos need <sys/stat.h>
 1.11 19-Nov-2013  christos branches: 1.11.8;
CVE 1129617: negative arg
 1.10 13-Nov-2013  christos CID 1125875: Fix memory leak
 1.9 13-Nov-2013  christos CID 1125876: File descriptor leak
 1.8 18-Oct-2013  kefren sync behaviour with man page: accept spaces, empty lines and comments
 1.7 17-Oct-2013  kefren allow setting transport addresses for interfaces into config file
also move passive-interface functionality under interface block
report the correct line for config parsing errors
 1.6 11-Jul-2013  kefren sprinkle more const
 1.5 26-Jan-2013  kefren * add a new keyword for config file - passive-if and check if it's
allowed to use the interface before join/send mcast
* check if interface supports multicast before join/send mcast
 1.4 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.3 14-Jun-2011  kefren branches: 1.3.2; 1.3.8;
* add no-default-route option into configuration file and check it before
rejecting default-route
* exit process in case of error into the main loop
* complete FSM for RTM_CHANGE
* Check if we overflow pollfd array
 1.2 30-Dec-2010  christos branches: 1.2.4;
- detect calloc failure
- int -> size_t
- cache strlen
- proper cast for ctype macro
 1.1 30-Dec-2010  kefren * add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.2.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.3.8.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.8.2 25-Feb-2013  tls resync with head
 1.3.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.3.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.11.8.1 20-Mar-2017  pgoyette Sync with HEAD
 1.5 22-Apr-2020  joerg Avoid common symbol definitions
 1.4 17-Oct-2013  kefren allow setting transport addresses for interfaces into config file
also move passive-interface functionality under interface block
report the correct line for config parsing errors
 1.3 11-Jul-2013  kefren sprinkle more const
 1.2 26-Jan-2013  kefren * add a new keyword for config file - passive-if and check if it's
allowed to use the interface before join/send mcast
* check if interface supports multicast before join/send mcast
 1.1 30-Dec-2010  kefren branches: 1.1.6; 1.1.12;
* add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.1.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.1 25-Feb-2013  tls resync with head
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.16 26-Jun-2022  riastradh ldpd(8): Fix address of misaligned packed members.

PR kern/56895
 1.15 18-Mar-2014  riastradh branches: 1.15.18; 1.15.28;
Merge riastradh-drm2 to HEAD.
 1.14 20-Jul-2013  kefren don't connect on first hello, there are chances that ours is not seen yet
setproctitle with ldp id - useful for rump kernels testing
fix a memory leak in ldp_peer_new
don't holddown if already holded down
peer sockets are now non-blocking
connected routes deletes are now processed
check if peer is connected before attempting to sending label mappings
 1.13 12-Jul-2013  kefren branches: 1.13.2;
correct loopback address test
correct addr add/del handling
 1.12 11-Jul-2013  kefren Local addresses vector is not needed anymore
 1.11 11-Jul-2013  kefren Constify a little bit
 1.10 05-Feb-2013  kefren Stop confusing peer hello source with peer transport address
 1.9 03-Feb-2013  kefren Don't try to connect to peers before sending hellos
 1.8 28-Jan-2013  kefren Fix the transport address TLV mess I created after INET6 convert
Use a single loop to decrement and check hello list keepalives
Display transport address in show hello output
 1.7 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.6 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.5 16-Jun-2011  kefren branches: 1.5.2; 1.5.8;
obey RFC3036 3.5.2 regarding holdtimes
wire SIGINT
 1.4 14-Jun-2011  kefren Use IN_LOOPBACKNET where is the case
Don't forget to freeifaddrs() in case of error
Update a couple of debug messages
 1.3 13-Dec-2010  christos branches: 1.3.4;
fix possibly uninitialized variable
 1.2 09-Dec-2010  christos - no cast for malloc
- malloc + memset = calloc
- sizeof(type) -> sizeof(*var)
- small indents
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.3.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.5.8.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.5.8.2 25-Feb-2013  tls resync with head
 1.5.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.5.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.13.2.1 23-Jul-2013  riastradh sync with HEAD
 1.15.28.1 04-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #1702):

usr.sbin/ldpd/socketops.c: revision 1.36
usr.sbin/ldpd/fsm.c: revision 1.16
usr.sbin/ldpd/ldp_peer.c: revision 1.19

ldpd(8): Fix address of misaligned packed members.

PR kern/56895
 1.15.18.1 04-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #1881):

usr.sbin/ldpd/socketops.c: revision 1.36
usr.sbin/ldpd/fsm.c: revision 1.16
usr.sbin/ldpd/ldp_peer.c: revision 1.19

ldpd(8): Fix address of misaligned packed members.

PR kern/56895
 1.4 11-Jul-2013  kefren Constify a little bit
 1.3 03-Feb-2013  kefren Don't try to connect to peers before sending hellos
 1.2 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.1 08-Dec-2010  kefren branches: 1.1.6; 1.1.12;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.1 25-Feb-2013  tls resync with head
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11 31-Jul-2013  kefren Store local bindings in a rbtree
 1.10 24-Jul-2013  kefren * use a flag in label struct in order to determine if we should treat the
associated routes using RTF_HOST
* clean the mess in flush_mpls_routes that could result in accessing
uninitialized memory
 1.9 18-Jul-2013  kefren * rework the reattachment code
* build an implnull label when a route is added and let mpls_add_label
to take care of relabelling
* take out last piece of the code where we do route lookups - we should have
every information we need in labels
* tested these changes using a number of rump kernels and some couple of
thousands of flapping routes
 1.8 18-Jul-2013  kefren Make sure labels are always updated when a route is added and when a peer
is added
Rework mpls_add_label according to that so no route refresh is done anymore
Use poll when reading the PF_ROUTE socket
setsockopt SO_USELOOPBACK on the PF_ROUTE socket
Output some information on SIGINFO
Allow map changing for a ldp peer
Finally fix the connected routes admission into labels
Correct the route trigger when a label map is received
 1.7 16-Jul-2013  kefren branches: 1.7.2;
retire union_ntoa, replace it with satos
check for valid sizes on PF_ROUTE socket
minor comment update
 1.6 11-Jul-2013  kefren sprinkle more const
 1.5 11-Jul-2013  kefren Constify a little bit
 1.4 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.3 30-Dec-2010  kefren branches: 1.3.6; 1.3.12;
* add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.2 09-Dec-2010  christos - no cast for malloc
- malloc + memset = calloc
- sizeof(type) -> sizeof(*var)
- small indents
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.3.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.12.1 25-Feb-2013  tls resync with head
 1.3.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.7.2.1 23-Jul-2013  riastradh sync with HEAD
 1.8 31-Jul-2013  kefren Store local bindings in a rbtree
 1.7 24-Jul-2013  kefren * use a flag in label struct in order to determine if we should treat the
associated routes using RTF_HOST
* clean the mess in flush_mpls_routes that could result in accessing
uninitialized memory
 1.6 18-Jul-2013  kefren * rework the reattachment code
* build an implnull label when a route is added and let mpls_add_label
to take care of relabelling
* take out last piece of the code where we do route lookups - we should have
every information we need in labels
* tested these changes using a number of rump kernels and some couple of
thousands of flapping routes
 1.5 18-Jul-2013  kefren Make sure labels are always updated when a route is added and when a peer
is added
Rework mpls_add_label according to that so no route refresh is done anymore
Use poll when reading the PF_ROUTE socket
setsockopt SO_USELOOPBACK on the PF_ROUTE socket
Output some information on SIGINFO
Allow map changing for a ldp peer
Finally fix the connected routes admission into labels
Correct the route trigger when a label map is received
 1.4 11-Jul-2013  kefren branches: 1.4.2;
sprinkle more const
 1.3 11-Jul-2013  kefren Constify a little bit
 1.2 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.1 08-Dec-2010  kefren branches: 1.1.6; 1.1.12;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.1 25-Feb-2013  tls resync with head
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.2.1 23-Jul-2013  riastradh sync with HEAD
 1.2 08-Dec-2010  kefren Remove accidentally added file
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.6 26-Jan-2013  kefren use predefined group consts/macros instead of ptoning strings
 1.5 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.4 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.3 16-Jun-2011  kefren branches: 1.3.2; 1.3.8;
obey RFC3036 3.5.2 regarding holdtimes
wire SIGINT
 1.2 30-Dec-2010  kefren branches: 1.2.4;
* add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.2.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.3.8.2 25-Feb-2013  tls resync with head
 1.3.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.3.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.14 02-Aug-2013  kefren Use rbtree for storing peers FEC label bindings
 1.13 31-Jul-2013  kefren Store local bindings in a rbtree
 1.12 18-Jul-2013  kefren Make sure labels are always updated when a route is added and when a peer
is added
Rework mpls_add_label according to that so no route refresh is done anymore
Use poll when reading the PF_ROUTE socket
setsockopt SO_USELOOPBACK on the PF_ROUTE socket
Output some information on SIGINFO
Allow map changing for a ldp peer
Finally fix the connected routes admission into labels
Correct the route trigger when a label map is received
 1.11 16-Jul-2013  kefren branches: 1.11.2;
retire union_ntoa, replace it with satos
check for valid sizes on PF_ROUTE socket
minor comment update
 1.10 28-Jan-2013  kefren Use satos instead of inet_ntop
Fix an alloc problem
 1.9 28-Jan-2013  kefren Fix the transport address TLV mess I created after INET6 convert
Use a single loop to decrement and check hello list keepalives
Display transport address in show hello output
 1.8 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.7 24-Dec-2011  christos branches: 1.7.6;
avoid reusing inet_addr twice.
 1.6 24-Dec-2011  christos PR/45662: Henning Petersen: Overlapping buffer in lpd_command.c
 1.5 16-Jun-2011  kefren branches: 1.5.2;
Introduce 'show labels' command that reports about labels received from
unsolicited label-maps. Statify.
 1.4 31-Dec-2010  kefren branches: 1.4.4;
show in neighbour information if peer is MD5 authenticated
 1.3 30-Dec-2010  kefren * add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.2 14-Dec-2010  christos fix uninitialized variable by elimination.
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.4.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.5.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5.2.1 17-Apr-2012  yamt sync with head
 1.7.6.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.7.6.1 25-Feb-2013  tls resync with head
 1.11.2.1 23-Jul-2013  riastradh sync with HEAD
 1.4 18-Mar-2014  riastradh Merge riastradh-drm2 to HEAD.
 1.3 18-Jul-2013  kefren Make sure labels are always updated when a route is added and when a peer
is added
Rework mpls_add_label according to that so no route refresh is done anymore
Use poll when reading the PF_ROUTE socket
setsockopt SO_USELOOPBACK on the PF_ROUTE socket
Output some information on SIGINFO
Allow map changing for a ldp peer
Finally fix the connected routes admission into labels
Correct the route trigger when a label map is received
 1.2 16-Jun-2011  kefren branches: 1.2.2; 1.2.8; 1.2.12;
Introduce 'show labels' command that reports about labels received from
unsolicited label-maps. Statify.
 1.1 08-Dec-2010  kefren branches: 1.1.4;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.2.12.1 23-Jul-2013  riastradh sync with HEAD
 1.2.8.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4 16-Jul-2013  kefren retire union_ntoa, replace it with satos
check for valid sizes on PF_ROUTE socket
minor comment update
 1.3 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.2 15-Mar-2012  joerg branches: 1.2.2;
Add __printflike attribution to use vprintf and friends with an argument
as format string.
 1.1 08-Dec-2010  kefren branches: 1.1.6;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.1 17-Apr-2012  yamt sync with head
 1.2.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.2.1 25-Feb-2013  tls resync with head
 1.5 28-Jan-2013  kefren Be a little more strict when sending notifications and checking PDU
 1.4 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.3 15-Mar-2012  joerg branches: 1.3.2;
Add __printflike attribution to use vprintf and friends with an argument
as format string.
 1.2 14-Jun-2011  kefren branches: 1.2.2;
* add no-default-route option into configuration file and check it before
rejecting default-route
* exit process in case of error into the main loop
* complete FSM for RTM_CHANGE
* Check if we overflow pollfd array
 1.1 08-Dec-2010  kefren branches: 1.1.4;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.2.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.2.1 17-Apr-2012  yamt sync with head
 1.3.2.1 25-Feb-2013  tls resync with head
 1.19 26-Jun-2022  riastradh ldpd(8): Fix address of misaligned packed members.

PR kern/56895
 1.18 22-Jun-2020  msaitoh s/successfuly/successfully/ in comment. No functional change.
 1.17 22-Apr-2020  joerg Avoid common symbol definitions
 1.16 02-Aug-2013  kefren branches: 1.16.18; 1.16.28;
Use rbtree for storing peers FEC label bindings
 1.15 20-Jul-2013  kefren don't connect on first hello, there are chances that ours is not seen yet
setproctitle with ldp id - useful for rump kernels testing
fix a memory leak in ldp_peer_new
don't holddown if already holded down
peer sockets are now non-blocking
connected routes deletes are now processed
check if peer is connected before attempting to sending label mappings
 1.14 18-Jul-2013  kefren Make sure labels are always updated when a route is added and when a peer
is added
Rework mpls_add_label according to that so no route refresh is done anymore
Use poll when reading the PF_ROUTE socket
setsockopt SO_USELOOPBACK on the PF_ROUTE socket
Output some information on SIGINFO
Allow map changing for a ldp peer
Finally fix the connected routes admission into labels
Correct the route trigger when a label map is received
 1.13 11-Jul-2013  kefren branches: 1.13.2;
Local addresses vector is not needed anymore
 1.12 11-Jul-2013  kefren Constify a little bit
 1.11 04-Feb-2013  kefren move code around a little bit in order to call get_ldp_peer correctly
check also for transport_address in get_ldp_peer
 1.10 04-Feb-2013  kefren * Don't assume INET in connection path
* Lookup in hello list in order to get the correct LDP ID, instead of
transport address
* Improve an error message
 1.9 04-Feb-2013  kefren correct the sockaddr compare
modify a couple of debug messages
 1.8 28-Jan-2013  kefren Be a little more strict when sending notifications and checking PDU
 1.7 28-Jan-2013  kefren Use satos instead of inet_ntop
Fix an alloc problem
 1.6 27-Jan-2013  kefren re-enable peer authentication
 1.5 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.4 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.3 30-Dec-2010  kefren branches: 1.3.6; 1.3.12;
* add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.2 09-Dec-2010  christos - no cast for malloc
- malloc + memset = calloc
- sizeof(type) -> sizeof(*var)
- small indents
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.3.12.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.3.12.2 25-Feb-2013  tls resync with head
 1.3.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.3.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.6.1 16-Jan-2013  yamt sync with (a bit old) head
 1.13.2.1 23-Jul-2013  riastradh sync with HEAD
 1.16.28.1 04-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #1702):

usr.sbin/ldpd/socketops.c: revision 1.36
usr.sbin/ldpd/fsm.c: revision 1.16
usr.sbin/ldpd/ldp_peer.c: revision 1.19

ldpd(8): Fix address of misaligned packed members.

PR kern/56895
 1.16.18.1 04-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #1881):

usr.sbin/ldpd/socketops.c: revision 1.36
usr.sbin/ldpd/fsm.c: revision 1.16
usr.sbin/ldpd/ldp_peer.c: revision 1.19

ldpd(8): Fix address of misaligned packed members.

PR kern/56895
 1.9 22-Apr-2020  joerg Avoid common symbol definitions
 1.8 02-Aug-2013  kefren Use rbtree for storing peers FEC label bindings
 1.7 20-Jul-2013  kefren don't connect on first hello, there are chances that ours is not seen yet
setproctitle with ldp id - useful for rump kernels testing
fix a memory leak in ldp_peer_new
don't holddown if already holded down
peer sockets are now non-blocking
connected routes deletes are now processed
check if peer is connected before attempting to sending label mappings
 1.6 11-Jul-2013  kefren branches: 1.6.2;
Local addresses vector is not needed anymore
 1.5 11-Jul-2013  kefren Constify a little bit
 1.4 04-Feb-2013  kefren * Don't assume INET in connection path
* Lookup in hello list in order to get the correct LDP ID, instead of
transport address
* Improve an error message
 1.3 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.2 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.1 08-Dec-2010  kefren branches: 1.1.6; 1.1.12;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.12.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.2 25-Feb-2013  tls resync with head
 1.1.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.1.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.1 16-Jan-2013  yamt sync with (a bit old) head
 1.6.2.1 23-Jul-2013  riastradh sync with HEAD
 1.9 04-Feb-2013  wiz Grammar. Sort sections.
 1.8 04-Feb-2013  kefren Mention IPv6, operation mode and re-section a bit
 1.7 12-Nov-2012  wiz New sentence, new line. Bump date for previous.
 1.6 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.5 07-Jul-2011  kefren branches: 1.5.2; 1.5.8;
Mention that it doesn't support Path Vectors and Hop Counts
Mention RFC3037 and xref ldpd.conf
 1.4 31-Dec-2010  wiz Sort SYNOPSIS, use Pa for path.
 1.3 30-Dec-2010  kefren * add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.2 08-Dec-2010  wiz Add all options to SYNOPSIS. New sentence, new line. Some rewording.
Use more macros.
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.5.8.2 25-Feb-2013  tls resync with head
 1.5.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.5.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.5.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.2 18-Oct-2013  wiz branches: 1.2.4; 1.2.8;
Sort SEE ALSO. Grammar consistency.
 1.1 18-Oct-2013  kefren Attempt to write a manpage for ldpd.conf
 1.2.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.1 18-Oct-2013  tls file ldpd.conf.5 was added on branch tls-maxphys on 2014-08-20 00:05:09 +0000
 1.2.4.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.4.1 18-Oct-2013  yamt file ldpd.conf.5 was added on branch yamt-pagecache on 2014-05-22 11:43:05 +0000
 1.9 31-Jul-2013  kefren Store local bindings in a rbtree
 1.8 25-Jul-2013  kefren * don't request explicitly for uid 0 as various system policies may make that
unnecessary
* correct the mplsif message. We don't need an IP address assigned on it
anymore
 1.7 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.6 02-Jul-2011  kefren branches: 1.6.2; 1.6.8;
return EXIT_SUCCESS and EXIT_FAILURE instead on 0 and -1
 1.5 14-Jun-2011  kefren * add no-default-route option into configuration file and check it before
rejecting default-route
* exit process in case of error into the main loop
* complete FSM for RTM_CHANGE
* Check if we overflow pollfd array
 1.4 31-Dec-2010  wiz branches: 1.4.4;
Make usage match SYNOPSIS.
 1.3 30-Dec-2010  kefren * add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.2 08-Dec-2010  wiz Add all options to usage.
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.4.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.6.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.6.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.6.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.13 02-Aug-2013  kefren Use rbtree for storing peers FEC label bindings
 1.12 24-Jul-2013  kefren * use a flag in label struct in order to determine if we should treat the
associated routes using RTF_HOST
* clean the mess in flush_mpls_routes that could result in accessing
uninitialized memory
 1.11 18-Jul-2013  kefren * rework the reattachment code
* build an implnull label when a route is added and let mpls_add_label
to take care of relabelling
* take out last piece of the code where we do route lookups - we should have
every information we need in labels
* tested these changes using a number of rump kernels and some couple of
thousands of flapping routes
 1.10 18-Jul-2013  kefren Make sure labels are always updated when a route is added and when a peer
is added
Rework mpls_add_label according to that so no route refresh is done anymore
Use poll when reading the PF_ROUTE socket
setsockopt SO_USELOOPBACK on the PF_ROUTE socket
Output some information on SIGINFO
Allow map changing for a ldp peer
Finally fix the connected routes admission into labels
Correct the route trigger when a label map is received
 1.9 11-Jul-2013  kefren branches: 1.9.2;
Constify a little bit
 1.8 23-Jun-2013  kefren allow INET6 gateways, split some long lines
 1.7 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.6 14-Jun-2011  kefren branches: 1.6.2; 1.6.8;
* add no-default-route option into configuration file and check it before
rejecting default-route
* exit process in case of error into the main loop
* complete FSM for RTM_CHANGE
* Check if we overflow pollfd array
 1.5 09-Feb-2011  kefren branches: 1.5.2;
use RT_ROUNDUP provided by net/route.h
 1.4 04-Jan-2011  kefren branches: 1.4.2;
Fix more memory leaks in case malloc fails
 1.3 04-Jan-2011  wiz Fix memory leak in error case. Found by cppcheck.

XXX: so_tag has same problem?
 1.2 09-Dec-2010  christos - no cast for malloc
- malloc + memset = calloc
- sizeof(type) -> sizeof(*var)
- small indents
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.4.2.1 17-Feb-2011  bouyer Sync with HEAD
 1.5.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.6.8.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.6.8.1 25-Feb-2013  tls resync with head
 1.6.2.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.9.2.1 23-Jul-2013  riastradh sync with HEAD
 1.5 18-Mar-2014  riastradh Merge riastradh-drm2 to HEAD.
 1.4 18-Jul-2013  kefren Make sure labels are always updated when a route is added and when a peer
is added
Rework mpls_add_label according to that so no route refresh is done anymore
Use poll when reading the PF_ROUTE socket
setsockopt SO_USELOOPBACK on the PF_ROUTE socket
Output some information on SIGINFO
Allow map changing for a ldp peer
Finally fix the connected routes admission into labels
Correct the route trigger when a label map is received
 1.3 11-Jul-2013  kefren branches: 1.3.2;
Constify a little bit
 1.2 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.1 08-Dec-2010  kefren branches: 1.1.6; 1.1.12;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.1 25-Feb-2013  tls resync with head
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3.2.1 23-Jul-2013  riastradh sync with HEAD
 1.25 07-Apr-2022  andvar fix various typos in comments.
 1.24 04-Apr-2016  ozaki-r Separate nexthop caches from the routing table

By this change, nexthop caches (IP-MAC address pair) are not stored
in the routing table anymore. Instead nexthop caches are stored in
each network interface; we already have lltable/llentry data structure
for this purpose. This change also obsoletes the concept of cloning/cloned
routes. Cloned routes no longer exist while cloning routes still exist
with renamed to connected routes.

Noticeable changes are:
- Nexthop caches aren't listed in route show/netstat -r
- sysctl(NET_RT_DUMP) doesn't return them
- If RTF_LLDATA is specified, it returns nexthop caches
- Several definitions of routing flags and messages are removed
- RTF_CLONING, RTF_XRESOLVE, RTF_LLINFO, RTF_CLONED and RTM_RESOLVE
- RTF_CONNECTED is added
- It has the same value of RTF_CLONING for backward compatibility
- route's -xresolve, -[no]cloned and -llinfo options are removed
- -[no]cloning remains because it seems there are users
- -[no]connected is introduced and recommended
to be used instead of -[no]cloning
- route show/netstat -r drops some flags
- 'L' and 'c' are not seen anymore
- 'C' now indicates a connected route
- Gateway value of a route of an interface address is now not
a L2 address but "link#N" like a connected (cloning) route
- Proxy ARP: "arp -s ... pub" doesn't create a route

You can know details of behavior changes by seeing diffs under tests/.

Proposed on tech-net and tech-kern:
http://mail-index.netbsd.org/tech-net/2016/03/11/msg005701.html
 1.23 12-Oct-2013  kefren zeroize the rest of the comparable struct before adding it to the rb tree
 1.22 31-Jul-2013  kefren Store local bindings in a rbtree
 1.21 27-Jul-2013  kefren check route messages sizes more carefully
cache pid
treat every message at a time, even if there are more messages to read
interpret also cloning routes

The latter two should fix the ldp_regen test
 1.20 24-Jul-2013  kefren * use a flag in label struct in order to determine if we should treat the
associated routes using RTF_HOST
* clean the mess in flush_mpls_routes that could result in accessing
uninitialized memory
 1.19 20-Jul-2013  kefren don't connect on first hello, there are chances that ours is not seen yet
setproctitle with ldp id - useful for rump kernels testing
fix a memory leak in ldp_peer_new
don't holddown if already holded down
peer sockets are now non-blocking
connected routes deletes are now processed
check if peer is connected before attempting to sending label mappings
 1.18 18-Jul-2013  kefren * rework the reattachment code
* build an implnull label when a route is added and let mpls_add_label
to take care of relabelling
* take out last piece of the code where we do route lookups - we should have
every information we need in labels
* tested these changes using a number of rump kernels and some couple of
thousands of flapping routes
 1.17 18-Jul-2013  kefren Make sure labels are always updated when a route is added and when a peer
is added
Rework mpls_add_label according to that so no route refresh is done anymore
Use poll when reading the PF_ROUTE socket
setsockopt SO_USELOOPBACK on the PF_ROUTE socket
Output some information on SIGINFO
Allow map changing for a ldp peer
Finally fix the connected routes admission into labels
Correct the route trigger when a label map is received
 1.16 16-Jul-2013  kefren branches: 1.16.2;
create binding for connected routes on startup
decay an warning message to debug only
 1.15 16-Jul-2013  kefren retire union_ntoa, replace it with satos
check for valid sizes on PF_ROUTE socket
minor comment update
 1.14 12-Jul-2013  kefren correct loopback address test
correct addr add/del handling
 1.13 11-Jul-2013  kefren add code for address and address withdraw messages
get rid of unused fields in tlv struct
 1.12 11-Jul-2013  kefren sprinkle more const
 1.11 11-Jul-2013  kefren speed up a little bit the string<->prefixlen transforms
 1.10 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.9 15-Mar-2012  joerg branches: 1.9.2;
Add __printflike attribution to use vprintf and friends with an argument
as format string.
 1.8 16-Jun-2011  kefren branches: 1.8.2;
Correct prefixlen->sockaddr calculation. Now ldpd may finally allow MPLS
forwarding for default route.
 1.7 16-Jun-2011  kefren shorten some execution paths related to check_route() and get_route()
statify a bit
don't assume AF_INET in a debug message
 1.6 14-Jun-2011  kefren * add no-default-route option into configuration file and check it before
rejecting default-route
* exit process in case of error into the main loop
* complete FSM for RTM_CHANGE
* Check if we overflow pollfd array
 1.5 14-Feb-2011  kefren branches: 1.5.2;
get rid of unused variable/assignments
 1.4 09-Feb-2011  kefren use RT_ROUNDUP provided by net/route.h
 1.3 04-Jan-2011  kefren branches: 1.3.2;
check from_cidr_to_union() result
 1.2 09-Dec-2010  christos - no cast for malloc
- malloc + memset = calloc
- sizeof(type) -> sizeof(*var)
- small indents
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.3.2.1 17-Feb-2011  bouyer Sync with HEAD
 1.5.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.8.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.8.2.1 17-Apr-2012  yamt sync with head
 1.9.2.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.9.2.1 25-Feb-2013  tls resync with head
 1.16.2.1 23-Jul-2013  riastradh sync with HEAD
 1.7 02-Aug-2013  martin Do not pack struct rt_msg - this voids the alignement restrictions and
causes crashes on alignemen critical archs.
From Matt Thomas.
 1.6 18-Jul-2013  kefren * rework the reattachment code
* build an implnull label when a route is added and let mpls_add_label
to take care of relabelling
* take out last piece of the code where we do route lookups - we should have
every information we need in labels
* tested these changes using a number of rump kernels and some couple of
thousands of flapping routes
 1.5 16-Jul-2013  kefren branches: 1.5.2;
retire union_ntoa, replace it with satos
check for valid sizes on PF_ROUTE socket
minor comment update
 1.4 11-Jul-2013  kefren sprinkle more const
 1.3 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.2 16-Jan-2013  kefren Make sure there is enough space for sockaddr subtypes
Use u_char for IP_MULTICAST_LOOP as specified in in.h
 1.1 08-Dec-2010  kefren branches: 1.1.6; 1.1.12;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.1 25-Feb-2013  tls resync with head
 1.1.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.1 23-Jan-2013  yamt sync with head
 1.5.2.1 23-Jul-2013  riastradh sync with HEAD
 1.3 11-Jul-2013  kefren Constify a little bit
 1.2 09-Dec-2010  christos branches: 1.2.6; 1.2.12;
- no cast for malloc
- malloc + memset = calloc
- sizeof(type) -> sizeof(*var)
- small indents
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.2.12.1 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3 11-Jul-2013  kefren Constify a little bit
 1.2 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.1 08-Dec-2010  kefren branches: 1.1.6; 1.1.12;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.1.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.1 16-Jan-2013  yamt sync with (a bit old) head
 1.5 11-Jul-2013  kefren Constify a little bit
 1.4 04-Feb-2013  kefren * Don't assume INET in connection path
* Lookup in hello list in order to get the correct LDP ID, instead of
transport address
* Improve an error message
 1.3 28-Jan-2013  kefren Be a little more strict when sending notifications and checking PDU
 1.2 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.1 08-Dec-2010  kefren branches: 1.1.6; 1.1.12;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.1 25-Feb-2013  tls resync with head
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.3 11-Jul-2013  kefren Constify a little bit
 1.2 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.1 08-Dec-2010  kefren branches: 1.1.6; 1.1.12;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.1 25-Feb-2013  tls resync with head
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.36 26-Jun-2022  riastradh ldpd(8): Fix address of misaligned packed members.

PR kern/56895
 1.35 22-Apr-2020  joerg Avoid common symbol definitions
 1.34 12-Apr-2017  roy branches: 1.34.4; 1.34.14;
Use RO_MSGFILTER.
 1.33 30-Oct-2013  mrg branches: 1.33.8; 1.33.12;
ensure variables are initialised
 1.32 17-Oct-2013  kefren allow setting transport addresses for interfaces into config file
also move passive-interface functionality under interface block
report the correct line for config parsing errors
 1.31 27-Jul-2013  kefren check route messages sizes more carefully
cache pid
treat every message at a time, even if there are more messages to read
interpret also cloning routes

The latter two should fix the ldp_regen test
 1.30 20-Jul-2013  kefren don't connect on first hello, there are chances that ours is not seen yet
setproctitle with ldp id - useful for rump kernels testing
fix a memory leak in ldp_peer_new
don't holddown if already holded down
peer sockets are now non-blocking
connected routes deletes are now processed
check if peer is connected before attempting to sending label mappings
 1.29 18-Jul-2013  kefren Make sure labels are always updated when a route is added and when a peer
is added
Rework mpls_add_label according to that so no route refresh is done anymore
Use poll when reading the PF_ROUTE socket
setsockopt SO_USELOOPBACK on the PF_ROUTE socket
Output some information on SIGINFO
Allow map changing for a ldp peer
Finally fix the connected routes admission into labels
Correct the route trigger when a label map is received
 1.28 11-Jul-2013  kefren branches: 1.28.2;
Constify a little bit
 1.27 08-May-2013  kefren First send initialize and keep alive after that. Fixes inter-operability
issues regarding session initialization.
 1.26 04-Feb-2013  kefren move code around a little bit in order to call get_ldp_peer correctly
check also for transport_address in get_ldp_peer
 1.25 04-Feb-2013  kefren * Don't assume INET in connection path
* Lookup in hello list in order to get the correct LDP ID, instead of
transport address
* Improve an error message
 1.24 03-Feb-2013  kefren Don't try to connect to peers before sending hellos
 1.23 28-Jan-2013  kefren Be a little more strict when sending notifications and checking PDU
 1.22 28-Jan-2013  kefren permit notifications even if session not fully established
 1.21 28-Jan-2013  kefren Fix the transport address TLV mess I created after INET6 convert
Use a single loop to decrement and check hello list keepalives
Display transport address in show hello output
 1.20 26-Jan-2013  kefren * add a new keyword for config file - passive-if and check if it's
allowed to use the interface before join/send mcast
* check if interface supports multicast before join/send mcast
 1.19 26-Jan-2013  kefren use predefined group consts/macros instead of ptoning strings
 1.18 26-Jan-2013  kefren allow compile without -DINET6
 1.17 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.16 16-Jan-2013  kefren Make sure there is enough space for sockaddr subtypes
Use u_char for IP_MULTICAST_LOOP as specified in in.h
 1.15 13-Nov-2012  kefren Use local-link address as source for hellos
 1.14 13-Nov-2012  pgoyette Repair another %lu --> %zd - this one was caught by building for
evbmips port
 1.13 12-Nov-2012  christos fix the build; ssize_t is %zd not %lu
 1.12 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.11 31-Aug-2011  joerg branches: 1.11.2; 1.11.8;
Use __dead
 1.10 16-Jun-2011  kefren obey RFC3036 3.5.2 regarding holdtimes
wire SIGINT
 1.9 16-Jun-2011  kefren clear the error condition
KNF a little bit
 1.8 15-Jun-2011  kefren simplify the rtsock read sequence
apply a little bit of KNF
 1.7 14-Jun-2011  kefren * add no-default-route option into configuration file and check it before
rejecting default-route
* exit process in case of error into the main loop
* complete FSM for RTM_CHANGE
* Check if we overflow pollfd array
 1.6 24-May-2011  joerg branches: 1.6.2;
Packed pointers are non-sense
 1.5 22-Jan-2011  kefren avoid advertising 0/8 transport address (conforming RFC1122
Section 3.2.1.3)
 1.4 22-Jan-2011  kefren use SLIST_FOREACH_SAFE when deleting a peer in loop
 1.3 30-Dec-2010  kefren branches: 1.3.2;
* add config file so one can control id, timers and label assignment and
use neighbour specific options - XXX: needs documentation
* add peer authentication using TCP_MD5SIG. Interoperability tested with
Cisco IOS
* use SLIST_FOREACH_SAFE when deleting labels instead of re-looping.
 1.2 09-Dec-2010  christos - no cast for malloc
- malloc + memset = calloc
- sizeof(type) -> sizeof(*var)
- small indents
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.3.2.1 08-Feb-2011  bouyer Sync with HEAD
 1.6.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.11.8.4 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.11.8.3 23-Jun-2013  tls resync from head
 1.11.8.2 25-Feb-2013  tls resync with head
 1.11.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.11.2.3 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.11.2.2 23-Jan-2013  yamt sync with head
 1.11.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.28.2.1 23-Jul-2013  riastradh sync with HEAD
 1.33.12.1 21-Apr-2017  bouyer Sync with HEAD
 1.33.8.1 26-Apr-2017  pgoyette Sync with HEAD
 1.34.14.1 04-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #1702):

usr.sbin/ldpd/socketops.c: revision 1.36
usr.sbin/ldpd/fsm.c: revision 1.16
usr.sbin/ldpd/ldp_peer.c: revision 1.19

ldpd(8): Fix address of misaligned packed members.

PR kern/56895
 1.34.4.1 04-Aug-2023  martin Pull up following revision(s) (requested by riastradh in ticket #1881):

usr.sbin/ldpd/socketops.c: revision 1.36
usr.sbin/ldpd/fsm.c: revision 1.16
usr.sbin/ldpd/ldp_peer.c: revision 1.19

ldpd(8): Fix address of misaligned packed members.

PR kern/56895
 1.7 22-Apr-2020  joerg Avoid common symbol definitions
 1.6 11-Jul-2013  kefren Constify a little bit
 1.5 28-Jan-2013  kefren Fix the transport address TLV mess I created after INET6 convert
Use a single loop to decrement and check hello list keepalives
Display transport address in show hello output
 1.4 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.3 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.2 14-Jun-2011  kefren branches: 1.2.2; 1.2.8;
* add no-default-route option into configuration file and check it before
rejecting default-route
* exit process in case of error into the main loop
* complete FSM for RTM_CHANGE
* Check if we overflow pollfd array
 1.1 08-Dec-2010  kefren branches: 1.1.4;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.4.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.2.8.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.2.8.2 25-Feb-2013  tls resync with head
 1.2.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.2.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.2.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.5 07-Feb-2022  rillig ldpd: remove unused bit-field member from anonymous union

The struct common_hello_tlv contained an anonymous union, which is a C11
feature. That union contained a bit-field, which is very unusual since
the C standards answer basically all interesting questions about
bit-fields in unions with "implementation-defined" or "unspecified".
GCC passes these questions further down by saying "Determined by ABI".

This was the only occurrence of a bit-field union member in the whole
NetBSD tree, and it caused the lint diagnostic 41 to be downgraded from
error to warning on 2021-09-17 since this exotic construct is allowed by
the C standards but practically unused.

No binary change.
 1.4 11-Jul-2013  kefren add code for address and address withdraw messages
get rid of unused fields in tlv struct
 1.3 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.2 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.1 08-Dec-2010  kefren branches: 1.1.6; 1.1.12;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.12.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.2 25-Feb-2013  tls resync with head
 1.1.12.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.1.6.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.1.6.1 16-Jan-2013  yamt sync with (a bit old) head
 1.13 31-Jul-2013  kefren Store local bindings in a rbtree
 1.12 20-Jul-2013  kefren don't connect on first hello, there are chances that ours is not seen yet
setproctitle with ldp id - useful for rump kernels testing
fix a memory leak in ldp_peer_new
don't holddown if already holded down
peer sockets are now non-blocking
connected routes deletes are now processed
check if peer is connected before attempting to sending label mappings
 1.11 18-Jul-2013  kefren * rework the reattachment code
* build an implnull label when a route is added and let mpls_add_label
to take care of relabelling
* take out last piece of the code where we do route lookups - we should have
every information we need in labels
* tested these changes using a number of rump kernels and some couple of
thousands of flapping routes
 1.10 18-Jul-2013  kefren Make sure labels are always updated when a route is added and when a peer
is added
Rework mpls_add_label according to that so no route refresh is done anymore
Use poll when reading the PF_ROUTE socket
setsockopt SO_USELOOPBACK on the PF_ROUTE socket
Output some information on SIGINFO
Allow map changing for a ldp peer
Finally fix the connected routes admission into labels
Correct the route trigger when a label map is received
 1.9 16-Jul-2013  kefren branches: 1.9.2;
send the actual prefix on the wire instead of struct headers
statify
 1.8 11-Jul-2013  kefren sprinkle more const
 1.7 11-Jul-2013  kefren Constify a little bit
 1.6 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.5 12-Nov-2012  kefren * add initial IPv6 support - still incomplete at this moment, but it sends
out there IPv6 hellos. Interoperability not yet tested.
* sync man page with reality
 1.4 15-Jun-2011  kefren branches: 1.4.2; 1.4.8;
we need to add mapping even if there is no route for the prefix
 1.3 10-Feb-2011  kefren branches: 1.3.2;
stop processing a label mapping message if we don't have a route for it.
This way we avoid failing an assert later in mpls_add_label()
 1.2 09-Dec-2010  christos branches: 1.2.2;
- no cast for malloc
- malloc + memset = calloc
- sizeof(type) -> sizeof(*var)
- small indents
 1.1 08-Dec-2010  kefren Add ldpd, a RFC 3036 compatible LDP speaker.
 1.2.2.1 17-Feb-2011  bouyer Sync with HEAD
 1.3.2.1 23-Jun-2011  cherry Catchup with rmind-uvmplock merge.
 1.4.8.3 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.4.8.2 25-Feb-2013  tls resync with head
 1.4.8.1 20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.4.2.2 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")
 1.4.2.1 16-Jan-2013  yamt sync with (a bit old) head
 1.9.2.1 23-Jul-2013  riastradh sync with HEAD
 1.4 11-Jul-2013  kefren sprinkle more const
 1.3 11-Jul-2013  kefren Constify a little bit
 1.2 26-Jan-2013  kefren modify structures in order to accomodate IPv6 according to
draft-ietf-mpls-ldp-ipv6. Correct a little bit IPv6 hello path
 1.1 08-Dec-2010  kefren branches: 1.1.6; 1.1.12;
Add ldpd, a RFC 3036 compatible LDP speaker.
 1.1.12.2 20-Aug-2014  tls Rebase to HEAD as of a few days ago.
 1.1.12.1 25-Feb-2013  tls resync with head
 1.1.6.1 22-May-2014  yamt sync with head.

for a reference, the tree before this commit was tagged
as yamt-pagecache-tag8.

this commit was splitted into small chunks to avoid
a limitation of cvs. ("Protocol error: too many arguments")

RSS XML Feed