History log of /openbsd-current/usr.sbin/ospf6d/packet.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.23 18-May-2024 jsg

remove prototypes with no matching function; ok claudio@


Revision tags: OPENBSD_7_4_BASE OPENBSD_7_5_BASE
# 1.22 03-Jul-2023 claudio

Use ibuf_data() instead of direct access to ibuf->buf,
use ibuf_size() instead of direct access to ibuf->wpos,
use ibuf_left() in places where the code checks if there is enough
space left in the ibuf.
OK tb@


# 1.21 21-Jun-2023 claudio

Update ospf6d to use new ibuf api.

This mostly moves away from memcpy(ibuf_seek(buf, off, size), data, size) to
ibuf_set(buf, off, data, size). Also ibuf_reserve() is replaced with
ibuf_add_zero().

OK tb@


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.20 19-Jan-2021 claudio

Like ospfd allocate the recv buffer with malloc() on first call.
This code assumes some alignment of the buffer which may not be
the case with bss memory.


# 1.19 19-Jan-2021 claudio

Like in ospfd use a static pkt_ptr buffer.


# 1.18 12-Jan-2021 claudio

In recv_packet() verify that non-multicast packets where sent to the right
IPv6 address. Compare against all possible interface addresses instead of
only against iface->addr which is set to the last link-local address and
so there is a high chance of failure when multiple link-local addresses
are present.

Also simplify send_packet(), there is no need to use sendmsg() just use
sendto().

OK benno@


Revision tags: OPENBSD_6_7_BASE OPENBSD_6_8_BASE
# 1.17 23-Dec-2019 denis

Area is now part of struct iface

OK remi@


# 1.16 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.15 10-May-2019 guenther

Delete superfluous #includes of <ifaddrs.h>, <net/if_dl.h>, and <net/if_enc.h>

ok krw@, jsg@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.14 05-May-2015 jsg

use the sizeof the struct not the sizeof a pointer to the struct
ok claudio@


Revision tags: OPENBSD_5_7_BASE
# 1.13 25-Oct-2014 lteo

Remove unnecessary netinet/in_systm.h include.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.12 24-Mar-2014 mpi

Passing MSG_DONTROUTE to sendto() here has no effect since SO_DONTROUTE
is only implemented for IPv4. Just remove it.

Tested by and ok florian@


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.11 31-Dec-2010 guenther

Add missing #includes instead of assuming that some system header pulls in
the needed bits

ok deraadt@, millert@


Revision tags: OPENBSD_4_8_BASE
# 1.10 26-May-2010 nicm

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.9 24-Mar-2008 deraadt

msg_controllen has to be CMSG_SPACE so that the kernel can account for
each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
works now that kernel fd passing has been fixed to accept a bit of
sloppiness because of this ABI repair.
lots of discussion with kettenis


# 1.8 15-Mar-2008 deraadt

Repair more msg_controllen dealing with structures or arrays of
descriptors; ok hshoexer, also looked at by kettenis and henning


# 1.7 13-Mar-2008 deraadt

Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
an extensive discussion with otto, kettenis, millert, and hshoexer


Revision tags: OPENBSD_4_3_BASE
# 1.6 13-Dec-2007 claudio

Monster commit of stuff I did mostly last month. What it does:
* removes kif and uses iface for everything interface related.
This removes unneeded data redundancy which makes the code more complex.
* adds the link local prefix to struct iface and attaches a list with
the other prefixes to the struct iface. This is needed to generate the
link LSA.
* disconnects struct iface from struct area (the backpointer is gone)
this will make the reload code a bit easier.
norby@ agrees with the direction we're heading with this


# 1.5 16-Oct-2007 claudio

remove log_debug() packet sending is now solid so no need to fill the log
with it.


# 1.4 14-Oct-2007 claudio

Switch log_sockaddr() to take a void * so it is not necessary to cast the
sockaddr_in6 or sockaddr_in to a sockaddr.


# 1.3 10-Oct-2007 claudio

send_packet() now takes a struct in6_addr as destination instead of a
struct sockaddr_in6 and builds the struct sockaddr_in6 internaly adding scope
if necessary. While there switch to sendto() we don't need any of the sendmsg()
features here.
OK norby@


# 1.2 09-Oct-2007 claudio

Remaining bit of last night work. Make packet reception use all the goodies
introduced (checksumming is no longer needed, no IP header checking is needed,
get a in6_pktinfo with the ifindex and dest addr, cleanup and remove a lot
of other code). With this ospf6d is able to send and receive first hello
packets. OK norby@


# 1.1 08-Oct-2007 norby

Welcome ospf6d

The new ospf6d daemon will support OSPFv3, basically OSPF for IPv6 networks.

It is heavily based on ospfd(8), it is more or less a copy and paste of it.
Currently some unneeded stuff has been removed and the trasition from
IPv4 to IPv6 has begun.

ospf6d is not very usefull at the moment, it is being imported to allow more
people to work on it concurrently.

Not yet connected to the builds.

ok claudio@ dlg@


# 1.22 03-Jul-2023 claudio

Use ibuf_data() instead of direct access to ibuf->buf,
use ibuf_size() instead of direct access to ibuf->wpos,
use ibuf_left() in places where the code checks if there is enough
space left in the ibuf.
OK tb@


# 1.21 21-Jun-2023 claudio

Update ospf6d to use new ibuf api.

This mostly moves away from memcpy(ibuf_seek(buf, off, size), data, size) to
ibuf_set(buf, off, data, size). Also ibuf_reserve() is replaced with
ibuf_add_zero().

OK tb@


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.20 19-Jan-2021 claudio

Like ospfd allocate the recv buffer with malloc() on first call.
This code assumes some alignment of the buffer which may not be
the case with bss memory.


# 1.19 19-Jan-2021 claudio

Like in ospfd use a static pkt_ptr buffer.


# 1.18 12-Jan-2021 claudio

In recv_packet() verify that non-multicast packets where sent to the right
IPv6 address. Compare against all possible interface addresses instead of
only against iface->addr which is set to the last link-local address and
so there is a high chance of failure when multiple link-local addresses
are present.

Also simplify send_packet(), there is no need to use sendmsg() just use
sendto().

OK benno@


Revision tags: OPENBSD_6_7_BASE OPENBSD_6_8_BASE
# 1.17 23-Dec-2019 denis

Area is now part of struct iface

OK remi@


# 1.16 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.15 10-May-2019 guenther

Delete superfluous #includes of <ifaddrs.h>, <net/if_dl.h>, and <net/if_enc.h>

ok krw@, jsg@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.14 05-May-2015 jsg

use the sizeof the struct not the sizeof a pointer to the struct
ok claudio@


Revision tags: OPENBSD_5_7_BASE
# 1.13 25-Oct-2014 lteo

Remove unnecessary netinet/in_systm.h include.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.12 24-Mar-2014 mpi

Passing MSG_DONTROUTE to sendto() here has no effect since SO_DONTROUTE
is only implemented for IPv4. Just remove it.

Tested by and ok florian@


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.11 31-Dec-2010 guenther

Add missing #includes instead of assuming that some system header pulls in
the needed bits

ok deraadt@, millert@


Revision tags: OPENBSD_4_8_BASE
# 1.10 26-May-2010 nicm

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.9 24-Mar-2008 deraadt

msg_controllen has to be CMSG_SPACE so that the kernel can account for
each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
works now that kernel fd passing has been fixed to accept a bit of
sloppiness because of this ABI repair.
lots of discussion with kettenis


# 1.8 15-Mar-2008 deraadt

Repair more msg_controllen dealing with structures or arrays of
descriptors; ok hshoexer, also looked at by kettenis and henning


# 1.7 13-Mar-2008 deraadt

Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
an extensive discussion with otto, kettenis, millert, and hshoexer


Revision tags: OPENBSD_4_3_BASE
# 1.6 13-Dec-2007 claudio

Monster commit of stuff I did mostly last month. What it does:
* removes kif and uses iface for everything interface related.
This removes unneeded data redundancy which makes the code more complex.
* adds the link local prefix to struct iface and attaches a list with
the other prefixes to the struct iface. This is needed to generate the
link LSA.
* disconnects struct iface from struct area (the backpointer is gone)
this will make the reload code a bit easier.
norby@ agrees with the direction we're heading with this


# 1.5 16-Oct-2007 claudio

remove log_debug() packet sending is now solid so no need to fill the log
with it.


# 1.4 14-Oct-2007 claudio

Switch log_sockaddr() to take a void * so it is not necessary to cast the
sockaddr_in6 or sockaddr_in to a sockaddr.


# 1.3 10-Oct-2007 claudio

send_packet() now takes a struct in6_addr as destination instead of a
struct sockaddr_in6 and builds the struct sockaddr_in6 internaly adding scope
if necessary. While there switch to sendto() we don't need any of the sendmsg()
features here.
OK norby@


# 1.2 09-Oct-2007 claudio

Remaining bit of last night work. Make packet reception use all the goodies
introduced (checksumming is no longer needed, no IP header checking is needed,
get a in6_pktinfo with the ifindex and dest addr, cleanup and remove a lot
of other code). With this ospf6d is able to send and receive first hello
packets. OK norby@


# 1.1 08-Oct-2007 norby

Welcome ospf6d

The new ospf6d daemon will support OSPFv3, basically OSPF for IPv6 networks.

It is heavily based on ospfd(8), it is more or less a copy and paste of it.
Currently some unneeded stuff has been removed and the trasition from
IPv4 to IPv6 has begun.

ospf6d is not very usefull at the moment, it is being imported to allow more
people to work on it concurrently.

Not yet connected to the builds.

ok claudio@ dlg@


# 1.21 21-Jun-2023 claudio

Update ospf6d to use new ibuf api.

This mostly moves away from memcpy(ibuf_seek(buf, off, size), data, size) to
ibuf_set(buf, off, data, size). Also ibuf_reserve() is replaced with
ibuf_add_zero().

OK tb@


Revision tags: OPENBSD_6_9_BASE OPENBSD_7_0_BASE OPENBSD_7_1_BASE OPENBSD_7_2_BASE OPENBSD_7_3_BASE
# 1.20 19-Jan-2021 claudio

Like ospfd allocate the recv buffer with malloc() on first call.
This code assumes some alignment of the buffer which may not be
the case with bss memory.


# 1.19 19-Jan-2021 claudio

Like in ospfd use a static pkt_ptr buffer.


# 1.18 12-Jan-2021 claudio

In recv_packet() verify that non-multicast packets where sent to the right
IPv6 address. Compare against all possible interface addresses instead of
only against iface->addr which is set to the last link-local address and
so there is a high chance of failure when multiple link-local addresses
are present.

Also simplify send_packet(), there is no need to use sendmsg() just use
sendto().

OK benno@


Revision tags: OPENBSD_6_7_BASE OPENBSD_6_8_BASE
# 1.17 23-Dec-2019 denis

Area is now part of struct iface

OK remi@


# 1.16 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.15 10-May-2019 guenther

Delete superfluous #includes of <ifaddrs.h>, <net/if_dl.h>, and <net/if_enc.h>

ok krw@, jsg@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.14 05-May-2015 jsg

use the sizeof the struct not the sizeof a pointer to the struct
ok claudio@


Revision tags: OPENBSD_5_7_BASE
# 1.13 25-Oct-2014 lteo

Remove unnecessary netinet/in_systm.h include.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.12 24-Mar-2014 mpi

Passing MSG_DONTROUTE to sendto() here has no effect since SO_DONTROUTE
is only implemented for IPv4. Just remove it.

Tested by and ok florian@


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.11 31-Dec-2010 guenther

Add missing #includes instead of assuming that some system header pulls in
the needed bits

ok deraadt@, millert@


Revision tags: OPENBSD_4_8_BASE
# 1.10 26-May-2010 nicm

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.9 24-Mar-2008 deraadt

msg_controllen has to be CMSG_SPACE so that the kernel can account for
each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
works now that kernel fd passing has been fixed to accept a bit of
sloppiness because of this ABI repair.
lots of discussion with kettenis


# 1.8 15-Mar-2008 deraadt

Repair more msg_controllen dealing with structures or arrays of
descriptors; ok hshoexer, also looked at by kettenis and henning


# 1.7 13-Mar-2008 deraadt

Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
an extensive discussion with otto, kettenis, millert, and hshoexer


Revision tags: OPENBSD_4_3_BASE
# 1.6 13-Dec-2007 claudio

Monster commit of stuff I did mostly last month. What it does:
* removes kif and uses iface for everything interface related.
This removes unneeded data redundancy which makes the code more complex.
* adds the link local prefix to struct iface and attaches a list with
the other prefixes to the struct iface. This is needed to generate the
link LSA.
* disconnects struct iface from struct area (the backpointer is gone)
this will make the reload code a bit easier.
norby@ agrees with the direction we're heading with this


# 1.5 16-Oct-2007 claudio

remove log_debug() packet sending is now solid so no need to fill the log
with it.


# 1.4 14-Oct-2007 claudio

Switch log_sockaddr() to take a void * so it is not necessary to cast the
sockaddr_in6 or sockaddr_in to a sockaddr.


# 1.3 10-Oct-2007 claudio

send_packet() now takes a struct in6_addr as destination instead of a
struct sockaddr_in6 and builds the struct sockaddr_in6 internaly adding scope
if necessary. While there switch to sendto() we don't need any of the sendmsg()
features here.
OK norby@


# 1.2 09-Oct-2007 claudio

Remaining bit of last night work. Make packet reception use all the goodies
introduced (checksumming is no longer needed, no IP header checking is needed,
get a in6_pktinfo with the ifindex and dest addr, cleanup and remove a lot
of other code). With this ospf6d is able to send and receive first hello
packets. OK norby@


# 1.1 08-Oct-2007 norby

Welcome ospf6d

The new ospf6d daemon will support OSPFv3, basically OSPF for IPv6 networks.

It is heavily based on ospfd(8), it is more or less a copy and paste of it.
Currently some unneeded stuff has been removed and the trasition from
IPv4 to IPv6 has begun.

ospf6d is not very usefull at the moment, it is being imported to allow more
people to work on it concurrently.

Not yet connected to the builds.

ok claudio@ dlg@


# 1.20 19-Jan-2021 claudio

Like ospfd allocate the recv buffer with malloc() on first call.
This code assumes some alignment of the buffer which may not be
the case with bss memory.


# 1.19 19-Jan-2021 claudio

Like in ospfd use a static pkt_ptr buffer.


# 1.18 12-Jan-2021 claudio

In recv_packet() verify that non-multicast packets where sent to the right
IPv6 address. Compare against all possible interface addresses instead of
only against iface->addr which is set to the last link-local address and
so there is a high chance of failure when multiple link-local addresses
are present.

Also simplify send_packet(), there is no need to use sendmsg() just use
sendto().

OK benno@


Revision tags: OPENBSD_6_7_BASE OPENBSD_6_8_BASE
# 1.17 23-Dec-2019 denis

Area is now part of struct iface

OK remi@


# 1.16 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.15 10-May-2019 guenther

Delete superfluous #includes of <ifaddrs.h>, <net/if_dl.h>, and <net/if_enc.h>

ok krw@, jsg@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.14 05-May-2015 jsg

use the sizeof the struct not the sizeof a pointer to the struct
ok claudio@


Revision tags: OPENBSD_5_7_BASE
# 1.13 25-Oct-2014 lteo

Remove unnecessary netinet/in_systm.h include.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.12 24-Mar-2014 mpi

Passing MSG_DONTROUTE to sendto() here has no effect since SO_DONTROUTE
is only implemented for IPv4. Just remove it.

Tested by and ok florian@


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.11 31-Dec-2010 guenther

Add missing #includes instead of assuming that some system header pulls in
the needed bits

ok deraadt@, millert@


Revision tags: OPENBSD_4_8_BASE
# 1.10 26-May-2010 nicm

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.9 24-Mar-2008 deraadt

msg_controllen has to be CMSG_SPACE so that the kernel can account for
each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
works now that kernel fd passing has been fixed to accept a bit of
sloppiness because of this ABI repair.
lots of discussion with kettenis


# 1.8 15-Mar-2008 deraadt

Repair more msg_controllen dealing with structures or arrays of
descriptors; ok hshoexer, also looked at by kettenis and henning


# 1.7 13-Mar-2008 deraadt

Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
an extensive discussion with otto, kettenis, millert, and hshoexer


Revision tags: OPENBSD_4_3_BASE
# 1.6 13-Dec-2007 claudio

Monster commit of stuff I did mostly last month. What it does:
* removes kif and uses iface for everything interface related.
This removes unneeded data redundancy which makes the code more complex.
* adds the link local prefix to struct iface and attaches a list with
the other prefixes to the struct iface. This is needed to generate the
link LSA.
* disconnects struct iface from struct area (the backpointer is gone)
this will make the reload code a bit easier.
norby@ agrees with the direction we're heading with this


# 1.5 16-Oct-2007 claudio

remove log_debug() packet sending is now solid so no need to fill the log
with it.


# 1.4 14-Oct-2007 claudio

Switch log_sockaddr() to take a void * so it is not necessary to cast the
sockaddr_in6 or sockaddr_in to a sockaddr.


# 1.3 10-Oct-2007 claudio

send_packet() now takes a struct in6_addr as destination instead of a
struct sockaddr_in6 and builds the struct sockaddr_in6 internaly adding scope
if necessary. While there switch to sendto() we don't need any of the sendmsg()
features here.
OK norby@


# 1.2 09-Oct-2007 claudio

Remaining bit of last night work. Make packet reception use all the goodies
introduced (checksumming is no longer needed, no IP header checking is needed,
get a in6_pktinfo with the ifindex and dest addr, cleanup and remove a lot
of other code). With this ospf6d is able to send and receive first hello
packets. OK norby@


# 1.1 08-Oct-2007 norby

Welcome ospf6d

The new ospf6d daemon will support OSPFv3, basically OSPF for IPv6 networks.

It is heavily based on ospfd(8), it is more or less a copy and paste of it.
Currently some unneeded stuff has been removed and the trasition from
IPv4 to IPv6 has begun.

ospf6d is not very usefull at the moment, it is being imported to allow more
people to work on it concurrently.

Not yet connected to the builds.

ok claudio@ dlg@


# 1.19 19-Jan-2021 claudio

Like in ospfd use a static pkt_ptr buffer.


# 1.18 12-Jan-2021 claudio

In recv_packet() verify that non-multicast packets where sent to the right
IPv6 address. Compare against all possible interface addresses instead of
only against iface->addr which is set to the last link-local address and
so there is a high chance of failure when multiple link-local addresses
are present.

Also simplify send_packet(), there is no need to use sendmsg() just use
sendto().

OK benno@


Revision tags: OPENBSD_6_7_BASE OPENBSD_6_8_BASE
# 1.17 23-Dec-2019 denis

Area is now part of struct iface

OK remi@


# 1.16 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.15 10-May-2019 guenther

Delete superfluous #includes of <ifaddrs.h>, <net/if_dl.h>, and <net/if_enc.h>

ok krw@, jsg@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.14 05-May-2015 jsg

use the sizeof the struct not the sizeof a pointer to the struct
ok claudio@


Revision tags: OPENBSD_5_7_BASE
# 1.13 25-Oct-2014 lteo

Remove unnecessary netinet/in_systm.h include.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.12 24-Mar-2014 mpi

Passing MSG_DONTROUTE to sendto() here has no effect since SO_DONTROUTE
is only implemented for IPv4. Just remove it.

Tested by and ok florian@


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.11 31-Dec-2010 guenther

Add missing #includes instead of assuming that some system header pulls in
the needed bits

ok deraadt@, millert@


Revision tags: OPENBSD_4_8_BASE
# 1.10 26-May-2010 nicm

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.9 24-Mar-2008 deraadt

msg_controllen has to be CMSG_SPACE so that the kernel can account for
each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
works now that kernel fd passing has been fixed to accept a bit of
sloppiness because of this ABI repair.
lots of discussion with kettenis


# 1.8 15-Mar-2008 deraadt

Repair more msg_controllen dealing with structures or arrays of
descriptors; ok hshoexer, also looked at by kettenis and henning


# 1.7 13-Mar-2008 deraadt

Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
an extensive discussion with otto, kettenis, millert, and hshoexer


Revision tags: OPENBSD_4_3_BASE
# 1.6 13-Dec-2007 claudio

Monster commit of stuff I did mostly last month. What it does:
* removes kif and uses iface for everything interface related.
This removes unneeded data redundancy which makes the code more complex.
* adds the link local prefix to struct iface and attaches a list with
the other prefixes to the struct iface. This is needed to generate the
link LSA.
* disconnects struct iface from struct area (the backpointer is gone)
this will make the reload code a bit easier.
norby@ agrees with the direction we're heading with this


# 1.5 16-Oct-2007 claudio

remove log_debug() packet sending is now solid so no need to fill the log
with it.


# 1.4 14-Oct-2007 claudio

Switch log_sockaddr() to take a void * so it is not necessary to cast the
sockaddr_in6 or sockaddr_in to a sockaddr.


# 1.3 10-Oct-2007 claudio

send_packet() now takes a struct in6_addr as destination instead of a
struct sockaddr_in6 and builds the struct sockaddr_in6 internaly adding scope
if necessary. While there switch to sendto() we don't need any of the sendmsg()
features here.
OK norby@


# 1.2 09-Oct-2007 claudio

Remaining bit of last night work. Make packet reception use all the goodies
introduced (checksumming is no longer needed, no IP header checking is needed,
get a in6_pktinfo with the ifindex and dest addr, cleanup and remove a lot
of other code). With this ospf6d is able to send and receive first hello
packets. OK norby@


# 1.1 08-Oct-2007 norby

Welcome ospf6d

The new ospf6d daemon will support OSPFv3, basically OSPF for IPv6 networks.

It is heavily based on ospfd(8), it is more or less a copy and paste of it.
Currently some unneeded stuff has been removed and the trasition from
IPv4 to IPv6 has begun.

ospf6d is not very usefull at the moment, it is being imported to allow more
people to work on it concurrently.

Not yet connected to the builds.

ok claudio@ dlg@


# 1.18 12-Jan-2021 claudio

In recv_packet() verify that non-multicast packets where sent to the right
IPv6 address. Compare against all possible interface addresses instead of
only against iface->addr which is set to the last link-local address and
so there is a high chance of failure when multiple link-local addresses
are present.

Also simplify send_packet(), there is no need to use sendmsg() just use
sendto().

OK benno@


Revision tags: OPENBSD_6_7_BASE OPENBSD_6_8_BASE
# 1.17 23-Dec-2019 denis

Area is now part of struct iface

OK remi@


# 1.16 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.15 10-May-2019 guenther

Delete superfluous #includes of <ifaddrs.h>, <net/if_dl.h>, and <net/if_enc.h>

ok krw@, jsg@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.14 05-May-2015 jsg

use the sizeof the struct not the sizeof a pointer to the struct
ok claudio@


Revision tags: OPENBSD_5_7_BASE
# 1.13 25-Oct-2014 lteo

Remove unnecessary netinet/in_systm.h include.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.12 24-Mar-2014 mpi

Passing MSG_DONTROUTE to sendto() here has no effect since SO_DONTROUTE
is only implemented for IPv4. Just remove it.

Tested by and ok florian@


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.11 31-Dec-2010 guenther

Add missing #includes instead of assuming that some system header pulls in
the needed bits

ok deraadt@, millert@


Revision tags: OPENBSD_4_8_BASE
# 1.10 26-May-2010 nicm

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.9 24-Mar-2008 deraadt

msg_controllen has to be CMSG_SPACE so that the kernel can account for
each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
works now that kernel fd passing has been fixed to accept a bit of
sloppiness because of this ABI repair.
lots of discussion with kettenis


# 1.8 15-Mar-2008 deraadt

Repair more msg_controllen dealing with structures or arrays of
descriptors; ok hshoexer, also looked at by kettenis and henning


# 1.7 13-Mar-2008 deraadt

Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
an extensive discussion with otto, kettenis, millert, and hshoexer


Revision tags: OPENBSD_4_3_BASE
# 1.6 13-Dec-2007 claudio

Monster commit of stuff I did mostly last month. What it does:
* removes kif and uses iface for everything interface related.
This removes unneeded data redundancy which makes the code more complex.
* adds the link local prefix to struct iface and attaches a list with
the other prefixes to the struct iface. This is needed to generate the
link LSA.
* disconnects struct iface from struct area (the backpointer is gone)
this will make the reload code a bit easier.
norby@ agrees with the direction we're heading with this


# 1.5 16-Oct-2007 claudio

remove log_debug() packet sending is now solid so no need to fill the log
with it.


# 1.4 14-Oct-2007 claudio

Switch log_sockaddr() to take a void * so it is not necessary to cast the
sockaddr_in6 or sockaddr_in to a sockaddr.


# 1.3 10-Oct-2007 claudio

send_packet() now takes a struct in6_addr as destination instead of a
struct sockaddr_in6 and builds the struct sockaddr_in6 internaly adding scope
if necessary. While there switch to sendto() we don't need any of the sendmsg()
features here.
OK norby@


# 1.2 09-Oct-2007 claudio

Remaining bit of last night work. Make packet reception use all the goodies
introduced (checksumming is no longer needed, no IP header checking is needed,
get a in6_pktinfo with the ifindex and dest addr, cleanup and remove a lot
of other code). With this ospf6d is able to send and receive first hello
packets. OK norby@


# 1.1 08-Oct-2007 norby

Welcome ospf6d

The new ospf6d daemon will support OSPFv3, basically OSPF for IPv6 networks.

It is heavily based on ospfd(8), it is more or less a copy and paste of it.
Currently some unneeded stuff has been removed and the trasition from
IPv4 to IPv6 has begun.

ospf6d is not very usefull at the moment, it is being imported to allow more
people to work on it concurrently.

Not yet connected to the builds.

ok claudio@ dlg@


# 1.17 23-Dec-2019 denis

Area is now part of struct iface

OK remi@


# 1.16 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.15 10-May-2019 guenther

Delete superfluous #includes of <ifaddrs.h>, <net/if_dl.h>, and <net/if_enc.h>

ok krw@, jsg@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.14 05-May-2015 jsg

use the sizeof the struct not the sizeof a pointer to the struct
ok claudio@


Revision tags: OPENBSD_5_7_BASE
# 1.13 25-Oct-2014 lteo

Remove unnecessary netinet/in_systm.h include.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.12 24-Mar-2014 mpi

Passing MSG_DONTROUTE to sendto() here has no effect since SO_DONTROUTE
is only implemented for IPv4. Just remove it.

Tested by and ok florian@


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.11 31-Dec-2010 guenther

Add missing #includes instead of assuming that some system header pulls in
the needed bits

ok deraadt@, millert@


Revision tags: OPENBSD_4_8_BASE
# 1.10 26-May-2010 nicm

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.9 24-Mar-2008 deraadt

msg_controllen has to be CMSG_SPACE so that the kernel can account for
each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
works now that kernel fd passing has been fixed to accept a bit of
sloppiness because of this ABI repair.
lots of discussion with kettenis


# 1.8 15-Mar-2008 deraadt

Repair more msg_controllen dealing with structures or arrays of
descriptors; ok hshoexer, also looked at by kettenis and henning


# 1.7 13-Mar-2008 deraadt

Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
an extensive discussion with otto, kettenis, millert, and hshoexer


Revision tags: OPENBSD_4_3_BASE
# 1.6 13-Dec-2007 claudio

Monster commit of stuff I did mostly last month. What it does:
* removes kif and uses iface for everything interface related.
This removes unneeded data redundancy which makes the code more complex.
* adds the link local prefix to struct iface and attaches a list with
the other prefixes to the struct iface. This is needed to generate the
link LSA.
* disconnects struct iface from struct area (the backpointer is gone)
this will make the reload code a bit easier.
norby@ agrees with the direction we're heading with this


# 1.5 16-Oct-2007 claudio

remove log_debug() packet sending is now solid so no need to fill the log
with it.


# 1.4 14-Oct-2007 claudio

Switch log_sockaddr() to take a void * so it is not necessary to cast the
sockaddr_in6 or sockaddr_in to a sockaddr.


# 1.3 10-Oct-2007 claudio

send_packet() now takes a struct in6_addr as destination instead of a
struct sockaddr_in6 and builds the struct sockaddr_in6 internaly adding scope
if necessary. While there switch to sendto() we don't need any of the sendmsg()
features here.
OK norby@


# 1.2 09-Oct-2007 claudio

Remaining bit of last night work. Make packet reception use all the goodies
introduced (checksumming is no longer needed, no IP header checking is needed,
get a in6_pktinfo with the ifindex and dest addr, cleanup and remove a lot
of other code). With this ospf6d is able to send and receive first hello
packets. OK norby@


# 1.1 08-Oct-2007 norby

Welcome ospf6d

The new ospf6d daemon will support OSPFv3, basically OSPF for IPv6 networks.

It is heavily based on ospfd(8), it is more or less a copy and paste of it.
Currently some unneeded stuff has been removed and the trasition from
IPv4 to IPv6 has begun.

ospf6d is not very usefull at the moment, it is being imported to allow more
people to work on it concurrently.

Not yet connected to the builds.

ok claudio@ dlg@


# 1.16 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_6_6_BASE
# 1.15 10-May-2019 guenther

Delete superfluous #includes of <ifaddrs.h>, <net/if_dl.h>, and <net/if_enc.h>

ok krw@, jsg@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.14 05-May-2015 jsg

use the sizeof the struct not the sizeof a pointer to the struct
ok claudio@


Revision tags: OPENBSD_5_7_BASE
# 1.13 25-Oct-2014 lteo

Remove unnecessary netinet/in_systm.h include.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.12 24-Mar-2014 mpi

Passing MSG_DONTROUTE to sendto() here has no effect since SO_DONTROUTE
is only implemented for IPv4. Just remove it.

Tested by and ok florian@


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.11 31-Dec-2010 guenther

Add missing #includes instead of assuming that some system header pulls in
the needed bits

ok deraadt@, millert@


Revision tags: OPENBSD_4_8_BASE
# 1.10 26-May-2010 nicm

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.9 24-Mar-2008 deraadt

msg_controllen has to be CMSG_SPACE so that the kernel can account for
each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
works now that kernel fd passing has been fixed to accept a bit of
sloppiness because of this ABI repair.
lots of discussion with kettenis


# 1.8 15-Mar-2008 deraadt

Repair more msg_controllen dealing with structures or arrays of
descriptors; ok hshoexer, also looked at by kettenis and henning


# 1.7 13-Mar-2008 deraadt

Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
an extensive discussion with otto, kettenis, millert, and hshoexer


Revision tags: OPENBSD_4_3_BASE
# 1.6 13-Dec-2007 claudio

Monster commit of stuff I did mostly last month. What it does:
* removes kif and uses iface for everything interface related.
This removes unneeded data redundancy which makes the code more complex.
* adds the link local prefix to struct iface and attaches a list with
the other prefixes to the struct iface. This is needed to generate the
link LSA.
* disconnects struct iface from struct area (the backpointer is gone)
this will make the reload code a bit easier.
norby@ agrees with the direction we're heading with this


# 1.5 16-Oct-2007 claudio

remove log_debug() packet sending is now solid so no need to fill the log
with it.


# 1.4 14-Oct-2007 claudio

Switch log_sockaddr() to take a void * so it is not necessary to cast the
sockaddr_in6 or sockaddr_in to a sockaddr.


# 1.3 10-Oct-2007 claudio

send_packet() now takes a struct in6_addr as destination instead of a
struct sockaddr_in6 and builds the struct sockaddr_in6 internaly adding scope
if necessary. While there switch to sendto() we don't need any of the sendmsg()
features here.
OK norby@


# 1.2 09-Oct-2007 claudio

Remaining bit of last night work. Make packet reception use all the goodies
introduced (checksumming is no longer needed, no IP header checking is needed,
get a in6_pktinfo with the ifindex and dest addr, cleanup and remove a lot
of other code). With this ospf6d is able to send and receive first hello
packets. OK norby@


# 1.1 08-Oct-2007 norby

Welcome ospf6d

The new ospf6d daemon will support OSPFv3, basically OSPF for IPv6 networks.

It is heavily based on ospfd(8), it is more or less a copy and paste of it.
Currently some unneeded stuff has been removed and the trasition from
IPv4 to IPv6 has begun.

ospf6d is not very usefull at the moment, it is being imported to allow more
people to work on it concurrently.

Not yet connected to the builds.

ok claudio@ dlg@


# 1.15 10-May-2019 guenther

Delete superfluous #includes of <ifaddrs.h>, <net/if_dl.h>, and <net/if_enc.h>

ok krw@, jsg@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE OPENBSD_6_3_BASE OPENBSD_6_4_BASE OPENBSD_6_5_BASE
# 1.14 05-May-2015 jsg

use the sizeof the struct not the sizeof a pointer to the struct
ok claudio@


Revision tags: OPENBSD_5_7_BASE
# 1.13 25-Oct-2014 lteo

Remove unnecessary netinet/in_systm.h include.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.12 24-Mar-2014 mpi

Passing MSG_DONTROUTE to sendto() here has no effect since SO_DONTROUTE
is only implemented for IPv4. Just remove it.

Tested by and ok florian@


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.11 31-Dec-2010 guenther

Add missing #includes instead of assuming that some system header pulls in
the needed bits

ok deraadt@, millert@


Revision tags: OPENBSD_4_8_BASE
# 1.10 26-May-2010 nicm

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.9 24-Mar-2008 deraadt

msg_controllen has to be CMSG_SPACE so that the kernel can account for
each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
works now that kernel fd passing has been fixed to accept a bit of
sloppiness because of this ABI repair.
lots of discussion with kettenis


# 1.8 15-Mar-2008 deraadt

Repair more msg_controllen dealing with structures or arrays of
descriptors; ok hshoexer, also looked at by kettenis and henning


# 1.7 13-Mar-2008 deraadt

Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
an extensive discussion with otto, kettenis, millert, and hshoexer


Revision tags: OPENBSD_4_3_BASE
# 1.6 13-Dec-2007 claudio

Monster commit of stuff I did mostly last month. What it does:
* removes kif and uses iface for everything interface related.
This removes unneeded data redundancy which makes the code more complex.
* adds the link local prefix to struct iface and attaches a list with
the other prefixes to the struct iface. This is needed to generate the
link LSA.
* disconnects struct iface from struct area (the backpointer is gone)
this will make the reload code a bit easier.
norby@ agrees with the direction we're heading with this


# 1.5 16-Oct-2007 claudio

remove log_debug() packet sending is now solid so no need to fill the log
with it.


# 1.4 14-Oct-2007 claudio

Switch log_sockaddr() to take a void * so it is not necessary to cast the
sockaddr_in6 or sockaddr_in to a sockaddr.


# 1.3 10-Oct-2007 claudio

send_packet() now takes a struct in6_addr as destination instead of a
struct sockaddr_in6 and builds the struct sockaddr_in6 internaly adding scope
if necessary. While there switch to sendto() we don't need any of the sendmsg()
features here.
OK norby@


# 1.2 09-Oct-2007 claudio

Remaining bit of last night work. Make packet reception use all the goodies
introduced (checksumming is no longer needed, no IP header checking is needed,
get a in6_pktinfo with the ifindex and dest addr, cleanup and remove a lot
of other code). With this ospf6d is able to send and receive first hello
packets. OK norby@


# 1.1 08-Oct-2007 norby

Welcome ospf6d

The new ospf6d daemon will support OSPFv3, basically OSPF for IPv6 networks.

It is heavily based on ospfd(8), it is more or less a copy and paste of it.
Currently some unneeded stuff has been removed and the trasition from
IPv4 to IPv6 has begun.

ospf6d is not very usefull at the moment, it is being imported to allow more
people to work on it concurrently.

Not yet connected to the builds.

ok claudio@ dlg@


Revision tags: OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.14 05-May-2015 jsg

use the sizeof the struct not the sizeof a pointer to the struct
ok claudio@


Revision tags: OPENBSD_5_7_BASE
# 1.13 25-Oct-2014 lteo

Remove unnecessary netinet/in_systm.h include.

ok millert@


Revision tags: OPENBSD_5_6_BASE
# 1.12 24-Mar-2014 mpi

Passing MSG_DONTROUTE to sendto() here has no effect since SO_DONTROUTE
is only implemented for IPv4. Just remove it.

Tested by and ok florian@


Revision tags: OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE OPENBSD_5_4_BASE OPENBSD_5_5_BASE
# 1.11 31-Dec-2010 guenther

Add missing #includes instead of assuming that some system header pulls in
the needed bits

ok deraadt@, millert@


Revision tags: OPENBSD_4_8_BASE
# 1.10 26-May-2010 nicm

Rename some imsg bits to make namespace collisions less likely buf to
ibuf, buf_read to ibuf_read, READ_BUF_SIZE to IBUF_READ_SIZE.

ok henning gilles claudio jacekm deraadt


Revision tags: OPENBSD_4_4_BASE OPENBSD_4_5_BASE OPENBSD_4_6_BASE OPENBSD_4_7_BASE
# 1.9 24-Mar-2008 deraadt

msg_controllen has to be CMSG_SPACE so that the kernel can account for
each cmsg_len (ie. msg_controllen = sum of CMSG_ALIGN(cmsg_len). This
works now that kernel fd passing has been fixed to accept a bit of
sloppiness because of this ABI repair.
lots of discussion with kettenis


# 1.8 15-Mar-2008 deraadt

Repair more msg_controllen dealing with structures or arrays of
descriptors; ok hshoexer, also looked at by kettenis and henning


# 1.7 13-Mar-2008 deraadt

Correct CMSG_SPACE and CMSG_LEN usage everywhere in the tree. Due to
an extensive discussion with otto, kettenis, millert, and hshoexer


Revision tags: OPENBSD_4_3_BASE
# 1.6 13-Dec-2007 claudio

Monster commit of stuff I did mostly last month. What it does:
* removes kif and uses iface for everything interface related.
This removes unneeded data redundancy which makes the code more complex.
* adds the link local prefix to struct iface and attaches a list with
the other prefixes to the struct iface. This is needed to generate the
link LSA.
* disconnects struct iface from struct area (the backpointer is gone)
this will make the reload code a bit easier.
norby@ agrees with the direction we're heading with this


# 1.5 16-Oct-2007 claudio

remove log_debug() packet sending is now solid so no need to fill the log
with it.


# 1.4 14-Oct-2007 claudio

Switch log_sockaddr() to take a void * so it is not necessary to cast the
sockaddr_in6 or sockaddr_in to a sockaddr.


# 1.3 10-Oct-2007 claudio

send_packet() now takes a struct in6_addr as destination instead of a
struct sockaddr_in6 and builds the struct sockaddr_in6 internaly adding scope
if necessary. While there switch to sendto() we don't need any of the sendmsg()
features here.
OK norby@


# 1.2 09-Oct-2007 claudio

Remaining bit of last night work. Make packet reception use all the goodies
introduced (checksumming is no longer needed, no IP header checking is needed,
get a in6_pktinfo with the ifindex and dest addr, cleanup and remove a lot
of other code). With this ospf6d is able to send and receive first hello
packets. OK norby@


# 1.1 08-Oct-2007 norby

Welcome ospf6d

The new ospf6d daemon will support OSPFv3, basically OSPF for IPv6 networks.

It is heavily based on ospfd(8), it is more or less a copy and paste of it.
Currently some unneeded stuff has been removed and the trasition from
IPv4 to IPv6 has begun.

ospf6d is not very usefull at the moment, it is being imported to allow more
people to work on it concurrently.

Not yet connected to the builds.

ok claudio@ dlg@