History log of /openbsd-current/usr.sbin/ospf6d/lsupdate.c
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 1.24 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.23 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_7_3_BASE
# 1.22 08-Mar-2023 guenther

Delete obsolete /* ARGSUSED */ lint comments.

ok miod@ millert@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.21 03-Nov-2021 sthen

log the interface along with the neighbour ID in various ospfd/ospf6d
messages. ok remi@ benno@

if a neighbour is reachable over multiple network links, some problems
may be related to the link itself rather than the neighbour, so knowing
the interface can be important when trying to locate the source of a
problem.


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

Use ospfe_imsg_compose_rde() instead of exporting iev_rde and using
imsg_compose_event() directly. This is needed to make the imsg event
structures static in ospfe.c, rde.c and ospf6d.c.


# 1.19 12-Jan-2021 claudio

Send lsupdate messages to the correct neighbor address on P2P interfaces.
iface->dst is not initalized so instead use nbr->addr (like it is done in
ospfd).
OK benno@


Revision tags: OPENBSD_6_8_BASE
# 1.18 15-Jul-2020 denis

Remove unused variables


Revision tags: OPENBSD_6_7_BASE
# 1.17 06-May-2020 claudio

Same fix for ospfd lsupdate.c applies in ospf6d as well.
Do not use the pointer returned by ibuf_reserve() after calling another
ibuf function. After the call the internal buffer may have moved by realloc()
and so the pointer is invalid. Instead use ibuf_size() to get the current
offset in the buffer and use ibuf_seek() later on to write back the updated
lsa age into the buffer at the right spot.
This fixes an issue seen by Richard Chivers on routers with many passive
interfaces.
OK stsp@ denis@ deraadt@ also tested by sthen@


# 1.16 04-May-2020 denis

Partially reverse a commit from 2019/12/28

A large number of redistributed routes make ospf6d crash.

OK remi@, sthen@


# 1.15 28-Dec-2019 denis

Refactor link state ack/req.

OK remi@


# 1.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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.23 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_7_3_BASE
# 1.22 08-Mar-2023 guenther

Delete obsolete /* ARGSUSED */ lint comments.

ok miod@ millert@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.21 03-Nov-2021 sthen

log the interface along with the neighbour ID in various ospfd/ospf6d
messages. ok remi@ benno@

if a neighbour is reachable over multiple network links, some problems
may be related to the link itself rather than the neighbour, so knowing
the interface can be important when trying to locate the source of a
problem.


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

Use ospfe_imsg_compose_rde() instead of exporting iev_rde and using
imsg_compose_event() directly. This is needed to make the imsg event
structures static in ospfe.c, rde.c and ospf6d.c.


# 1.19 12-Jan-2021 claudio

Send lsupdate messages to the correct neighbor address on P2P interfaces.
iface->dst is not initalized so instead use nbr->addr (like it is done in
ospfd).
OK benno@


Revision tags: OPENBSD_6_8_BASE
# 1.18 15-Jul-2020 denis

Remove unused variables


Revision tags: OPENBSD_6_7_BASE
# 1.17 06-May-2020 claudio

Same fix for ospfd lsupdate.c applies in ospf6d as well.
Do not use the pointer returned by ibuf_reserve() after calling another
ibuf function. After the call the internal buffer may have moved by realloc()
and so the pointer is invalid. Instead use ibuf_size() to get the current
offset in the buffer and use ibuf_seek() later on to write back the updated
lsa age into the buffer at the right spot.
This fixes an issue seen by Richard Chivers on routers with many passive
interfaces.
OK stsp@ denis@ deraadt@ also tested by sthen@


# 1.16 04-May-2020 denis

Partially reverse a commit from 2019/12/28

A large number of redistributed routes make ospf6d crash.

OK remi@, sthen@


# 1.15 28-Dec-2019 denis

Refactor link state ack/req.

OK remi@


# 1.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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 08-Mar-2023 guenther

Delete obsolete /* ARGSUSED */ lint comments.

ok miod@ millert@


Revision tags: OPENBSD_7_1_BASE OPENBSD_7_2_BASE
# 1.21 03-Nov-2021 sthen

log the interface along with the neighbour ID in various ospfd/ospf6d
messages. ok remi@ benno@

if a neighbour is reachable over multiple network links, some problems
may be related to the link itself rather than the neighbour, so knowing
the interface can be important when trying to locate the source of a
problem.


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

Use ospfe_imsg_compose_rde() instead of exporting iev_rde and using
imsg_compose_event() directly. This is needed to make the imsg event
structures static in ospfe.c, rde.c and ospf6d.c.


# 1.19 12-Jan-2021 claudio

Send lsupdate messages to the correct neighbor address on P2P interfaces.
iface->dst is not initalized so instead use nbr->addr (like it is done in
ospfd).
OK benno@


Revision tags: OPENBSD_6_8_BASE
# 1.18 15-Jul-2020 denis

Remove unused variables


Revision tags: OPENBSD_6_7_BASE
# 1.17 06-May-2020 claudio

Same fix for ospfd lsupdate.c applies in ospf6d as well.
Do not use the pointer returned by ibuf_reserve() after calling another
ibuf function. After the call the internal buffer may have moved by realloc()
and so the pointer is invalid. Instead use ibuf_size() to get the current
offset in the buffer and use ibuf_seek() later on to write back the updated
lsa age into the buffer at the right spot.
This fixes an issue seen by Richard Chivers on routers with many passive
interfaces.
OK stsp@ denis@ deraadt@ also tested by sthen@


# 1.16 04-May-2020 denis

Partially reverse a commit from 2019/12/28

A large number of redistributed routes make ospf6d crash.

OK remi@, sthen@


# 1.15 28-Dec-2019 denis

Refactor link state ack/req.

OK remi@


# 1.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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 03-Nov-2021 sthen

log the interface along with the neighbour ID in various ospfd/ospf6d
messages. ok remi@ benno@

if a neighbour is reachable over multiple network links, some problems
may be related to the link itself rather than the neighbour, so knowing
the interface can be important when trying to locate the source of a
problem.


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

Use ospfe_imsg_compose_rde() instead of exporting iev_rde and using
imsg_compose_event() directly. This is needed to make the imsg event
structures static in ospfe.c, rde.c and ospf6d.c.


# 1.19 12-Jan-2021 claudio

Send lsupdate messages to the correct neighbor address on P2P interfaces.
iface->dst is not initalized so instead use nbr->addr (like it is done in
ospfd).
OK benno@


Revision tags: OPENBSD_6_8_BASE
# 1.18 15-Jul-2020 denis

Remove unused variables


Revision tags: OPENBSD_6_7_BASE
# 1.17 06-May-2020 claudio

Same fix for ospfd lsupdate.c applies in ospf6d as well.
Do not use the pointer returned by ibuf_reserve() after calling another
ibuf function. After the call the internal buffer may have moved by realloc()
and so the pointer is invalid. Instead use ibuf_size() to get the current
offset in the buffer and use ibuf_seek() later on to write back the updated
lsa age into the buffer at the right spot.
This fixes an issue seen by Richard Chivers on routers with many passive
interfaces.
OK stsp@ denis@ deraadt@ also tested by sthen@


# 1.16 04-May-2020 denis

Partially reverse a commit from 2019/12/28

A large number of redistributed routes make ospf6d crash.

OK remi@, sthen@


# 1.15 28-Dec-2019 denis

Refactor link state ack/req.

OK remi@


# 1.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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

Use ospfe_imsg_compose_rde() instead of exporting iev_rde and using
imsg_compose_event() directly. This is needed to make the imsg event
structures static in ospfe.c, rde.c and ospf6d.c.


# 1.19 12-Jan-2021 claudio

Send lsupdate messages to the correct neighbor address on P2P interfaces.
iface->dst is not initalized so instead use nbr->addr (like it is done in
ospfd).
OK benno@


Revision tags: OPENBSD_6_8_BASE
# 1.18 15-Jul-2020 denis

Remove unused variables


Revision tags: OPENBSD_6_7_BASE
# 1.17 06-May-2020 claudio

Same fix for ospfd lsupdate.c applies in ospf6d as well.
Do not use the pointer returned by ibuf_reserve() after calling another
ibuf function. After the call the internal buffer may have moved by realloc()
and so the pointer is invalid. Instead use ibuf_size() to get the current
offset in the buffer and use ibuf_seek() later on to write back the updated
lsa age into the buffer at the right spot.
This fixes an issue seen by Richard Chivers on routers with many passive
interfaces.
OK stsp@ denis@ deraadt@ also tested by sthen@


# 1.16 04-May-2020 denis

Partially reverse a commit from 2019/12/28

A large number of redistributed routes make ospf6d crash.

OK remi@, sthen@


# 1.15 28-Dec-2019 denis

Refactor link state ack/req.

OK remi@


# 1.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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 12-Jan-2021 claudio

Send lsupdate messages to the correct neighbor address on P2P interfaces.
iface->dst is not initalized so instead use nbr->addr (like it is done in
ospfd).
OK benno@


Revision tags: OPENBSD_6_8_BASE
# 1.18 15-Jul-2020 denis

Remove unused variables


Revision tags: OPENBSD_6_7_BASE
# 1.17 06-May-2020 claudio

Same fix for ospfd lsupdate.c applies in ospf6d as well.
Do not use the pointer returned by ibuf_reserve() after calling another
ibuf function. After the call the internal buffer may have moved by realloc()
and so the pointer is invalid. Instead use ibuf_size() to get the current
offset in the buffer and use ibuf_seek() later on to write back the updated
lsa age into the buffer at the right spot.
This fixes an issue seen by Richard Chivers on routers with many passive
interfaces.
OK stsp@ denis@ deraadt@ also tested by sthen@


# 1.16 04-May-2020 denis

Partially reverse a commit from 2019/12/28

A large number of redistributed routes make ospf6d crash.

OK remi@, sthen@


# 1.15 28-Dec-2019 denis

Refactor link state ack/req.

OK remi@


# 1.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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 15-Jul-2020 denis

Remove unused variables


Revision tags: OPENBSD_6_7_BASE
# 1.17 06-May-2020 claudio

Same fix for ospfd lsupdate.c applies in ospf6d as well.
Do not use the pointer returned by ibuf_reserve() after calling another
ibuf function. After the call the internal buffer may have moved by realloc()
and so the pointer is invalid. Instead use ibuf_size() to get the current
offset in the buffer and use ibuf_seek() later on to write back the updated
lsa age into the buffer at the right spot.
This fixes an issue seen by Richard Chivers on routers with many passive
interfaces.
OK stsp@ denis@ deraadt@ also tested by sthen@


# 1.16 04-May-2020 denis

Partially reverse a commit from 2019/12/28

A large number of redistributed routes make ospf6d crash.

OK remi@, sthen@


# 1.15 28-Dec-2019 denis

Refactor link state ack/req.

OK remi@


# 1.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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_6_7_BASE
# 1.17 06-May-2020 claudio

Same fix for ospfd lsupdate.c applies in ospf6d as well.
Do not use the pointer returned by ibuf_reserve() after calling another
ibuf function. After the call the internal buffer may have moved by realloc()
and so the pointer is invalid. Instead use ibuf_size() to get the current
offset in the buffer and use ibuf_seek() later on to write back the updated
lsa age into the buffer at the right spot.
This fixes an issue seen by Richard Chivers on routers with many passive
interfaces.
OK stsp@ denis@ deraadt@ also tested by sthen@


# 1.16 04-May-2020 denis

Partially reverse a commit from 2019/12/28

A large number of redistributed routes make ospf6d crash.

OK remi@, sthen@


# 1.15 28-Dec-2019 denis

Refactor link state ack/req.

OK remi@


# 1.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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 04-May-2020 denis

Partially reverse a commit from 2019/12/28

A large number of redistributed routes make ospf6d crash.

OK remi@, sthen@


# 1.15 28-Dec-2019 denis

Refactor link state ack/req.

OK remi@


# 1.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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 28-Dec-2019 denis

Refactor link state ack/req.

OK remi@


# 1.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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.14 11-Dec-2019 denis

Convert sendto() to sendmsg().

This makes code similar to ospfd(8).

OK claudio@ deraadt@


Revision tags: OPENBSD_5_7_BASE 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 OPENBSD_6_6_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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_7_BASE OPENBSD_5_8_BASE OPENBSD_5_9_BASE OPENBSD_6_0_BASE OPENBSD_6_1_BASE OPENBSD_6_2_BASE
# 1.13 28-Jan-2015 bluhm

When comparing the LSA with the Ack, also check the age field. This
ensures that a LSA withdrawal is not acked by a previous update.
From Florian Riehm; OK claudio@


# 1.12 22-Jan-2015 tedu

remove a stupid -Wstrict-prototype warning by making the hash function
static. noticed by florian riehm


# 1.11 18-Dec-2014 tedu

simple to use siphash here. ok deraadt


Revision tags: OPENBSD_5_4_BASE OPENBSD_5_5_BASE OPENBSD_5_6_BASE
# 1.10 25-Mar-2013 markus

sync w/ospfd: improve snapshot handling; ok claudio, sthen


# 1.9 25-Mar-2013 markus

sync w/ ospfd:
for point-to-point interfaces we need to send lsupdates to the
interface address, since there is no DR and multicast messages to
the DR will be ignored. ok claudio@, then@


Revision tags: OPENBSD_4_8_BASE OPENBSD_4_9_BASE OPENBSD_5_0_BASE OPENBSD_5_1_BASE OPENBSD_5_2_BASE OPENBSD_5_3_BASE
# 1.8 08-Jun-2010 bluhm

Calculate size of update packet with IPv6 header and reserve space
for IPsec. Avoid IPv6 fragments where possible. If a single LSA
is too big, put it into a separate packet with up to IPV6_MAXPACKET
bytes. This packet may get fragmented by the kernel.
ok stsp@


# 1.7 03-Jun-2010 bluhm

The is no md5 authentication in OSPFv3. Remove some leftovers from
the ospf6d packet lenght calculation.
ok claudio@ stsp@


# 1.6 01-Jun-2010 bluhm

With IPv6 OSPF a single LSA can get larger than the MTU. As a
workaround it is better to drop this LSA with a log entry instead
of sending emtpy update packets in a burst. As link LSAs cannot
be split, the propper solution might be IPv6 fragments. See also
RFC5340 Section 4.4.3.8 and Appendix A.1.
ok stsp@


# 1.5 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_6_BASE OPENBSD_4_7_BASE
# 1.4 06-Jun-2009 eric

make ospf6ctl/ospf6d imsg-in-a-lib ready too.

ospf6ctl is already broken in tree (not connected to build).

ok pyr@


Revision tags: OPENBSD_4_3_BASE OPENBSD_4_4_BASE OPENBSD_4_5_BASE
# 1.3 11-Feb-2008 norby

Correct the output of several error and debug messages.


# 1.2 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.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@