History log of /openbsd/usr.sbin/ospf6d/rde.h (Results 1 – 25 of 25)
Revision Date Author Comments
# b67f69b5 17-Feb-2020 denis <denis@openbsd.org>

Bring ospf6d closer to ospfd

- update debug messages to be more precise
- simplify call to lsa_self()
- drop lsa_find_lsid() redondant parameters

OK remi@


# 47cb1ae0 21-Jan-2020 denis <denis@openbsd.org>

No need to pass peerid to lsa_snap()

OK remi@


# 85be3f1a 22-Dec-2019 denis <denis@openbsd.org>

Rename and move calc_nexthop_clear()/calc_nexthop_add()

OK claudio@


# 0da7e0dd 01-Jul-2010 bluhm <bluhm@openbsd.org>

Fix all white space bugs in ospf6d at once. No binary change.
ok claudio@


# 8e1674f3 01-Jul-2010 bluhm <bluhm@openbsd.org>

The prefixes of interface addresses of an ospf link have to be
advertised as link-lsa and intra-area-prefix-lsa when they change
dynamically. Handle RTM_NEWADDR and RTM_DELADDR in kroute by sending

The prefixes of interface addresses of an ospf link have to be
advertised as link-lsa and intra-area-prefix-lsa when they change
dynamically. Handle RTM_NEWADDR and RTM_DELADDR in kroute by sending
an imsg to ospfe. Upon this event, originate a new link-lsa in
ospfe. In rde a new intra-area-prefix-lsa is generated when a
link-lsa appears or goes away.
ok claudio@; ok and test stsp@

show more ...


# e0dd50a7 01-Mar-2010 claudio <claudio@openbsd.org>

Implement lsa_find_lsid(), a function that searches the LSDB for a LSA
specified by type, adv_rtr and an LSA to compare against. This is needed
to find either a free LS ID or the previously assigned

Implement lsa_find_lsid(), a function that searches the LSDB for a LSA
specified by type, adv_rtr and an LSA to compare against. This is needed
to find either a free LS ID or the previously assigned LS ID of an AS-ext
LSA. "looks like you know what you're doing" stsp@

show more ...


# c78f753b 22-Feb-2010 stsp <stsp@openbsd.org>

Treat multiple Router-LSAs originated by the same router as an
aggregate, as mandated by RFC5340.

OK claudio@


# 712f52e1 22-Dec-2009 claudio <claudio@openbsd.org>

Link local addressing strikes again. Include ifindex in all nexthop
definitions so that we have a chance to build a correct nexthop.
Insane that a struct in6_addr is unable to fully specify an IPv6 a

Link local addressing strikes again. Include ifindex in all nexthop
definitions so that we have a chance to build a correct nexthop.
Insane that a struct in6_addr is unable to fully specify an IPv6 address.
kroute.c still needs fixing but now the rib is starting to make sense.

show more ...


# abf314c6 29-Mar-2009 stsp <stsp@openbsd.org>

As a first step towards SPF tree calculation, prepare for proper
next-hop calculation.

In OSPFv3, next-hop IP addresses are always link-local.
The kernel will want to know which interface the link-l

As a first step towards SPF tree calculation, prepare for proper
next-hop calculation.

In OSPFv3, next-hop IP addresses are always link-local.
The kernel will want to know which interface the link-local
address belongs to, so we need an ifindex in struct v_nexthop
in addition to the IP address.

Because we cannot determine a link-local next hop IP address
for transit networks, only the outgoing interface will be recorded.

Update calc_nexthop_add() according to the above.

Also add new helpers calc_nexthop_lladdr() and calc_nexthop_transit_nbr(),
to figure out link-local addresses of nexthop neighbours.

ok claudio@

show more ...


# 574fa3b3 29-Mar-2009 stsp <stsp@openbsd.org>

Change get_net_link()'s idx argument to unsigned, and make it
use less local variables. Makes it consistent with get_rtr_link().

ok claudio@


# b930d91a 29-Mar-2009 stsp <stsp@openbsd.org>

Because get_rtr_link() forgot to increment the buffer offset
it was always returning the first link in the LSA, no matter
which link was requested. Fix this bug. Also, decrease the
number of local va

Because get_rtr_link() forgot to increment the buffer offset
it was always returning the first link in the LSA, no matter
which link was requested. Fix this bug. Also, decrease the
number of local variables while here, and convert the idx argument
to unsigned int. Adjust one caller to pass an unsigned int,
other callers will be handled in follow-up commits.

ok claudio@

show more ...


# 8cbac03b 29-Mar-2009 stsp <stsp@openbsd.org>

Remove lsa_find_net(), it isn't needed for OSPFv3.

pointed out by and ok claudio@


# f1ef0307 29-Mar-2009 stsp <stsp@openbsd.org>

Add lsa_find_rtr() function, which finds among multiple router
LSAs originated by the same router the one with the lowest link
state ID.

ok claudio@


# d2afa435 29-Mar-2009 stsp <stsp@openbsd.org>

For SPF calculation, we will need the source address specified
in hello packets by next-hop neighbours. So when notifying the
RDE of a new neighbour, send the source address, too.

ok claudio@


# 60a9bb12 12-Mar-2009 stsp <stsp@openbsd.org>

lsa_self() did too many things at once, and had too much logic
buried inside of it that its caller relied on.

So split it up as follows:
lsa_self() Check whether an LSA is self-originated.
lsa_fl

lsa_self() did too many things at once, and had too much logic
buried inside of it that its caller relied on.

So split it up as follows:
lsa_self() Check whether an LSA is self-originated.
lsa_flush() Flush an LSA from the LSDB.
lsa_reflood() Prepare an LSA for reflooding (actual reflooding currently
requires sending an imsg which must be done by the caller).

ok claudio@

show more ...


# eff6b354 07-Mar-2009 stsp <stsp@openbsd.org>

Add lsa_find_tree() to allow searching for LSAs in a specific LSA tree.
We had code marked XXX searching an LSA tree manually using RB_FIND(),
switch it over to lsa_find_tree().
Make lsa_find() use t

Add lsa_find_tree() to allow searching for LSAs in a specific LSA tree.
We had code marked XXX searching an LSA tree manually using RB_FIND(),
switch it over to lsa_find_tree().
Make lsa_find() use the new function, too, to avoid code duplication.
ok claudio@

show more ...


# db8ae7dc 12-Feb-2009 stsp <stsp@openbsd.org>

Make vertex_free() correctly free LSAs in per-interface LSA trees.

Save a pointer to the right LSA tree in new member v->lsa_tree.
This saves us the hassle of finding the right tree in vertex_free()

Make vertex_free() correctly free LSAs in per-interface LSA trees.

Save a pointer to the right LSA tree in new member v->lsa_tree.
This saves us the hassle of finding the right tree in vertex_free(),
we already know it at creation time so why not tuck it in there?

This might cause problems if the ospfe side ever decides to call
area_del() with a non-empty area->lsa_tree, without correctly
initialising v->lsa_tree. But grep shows that the area's lsa_tree
is currently just initialized on the ospfe side, but never modified.

ospf6d daemons which crashed after about 1 min with malloc options
FGJ are now happy.

ok claudio@

show more ...


# f0f73935 27-Jan-2009 stsp <stsp@openbsd.org>

Propagate the neighbour's interface ID, as received in hello packets,
to the RDE.
ok claudio@


# 6d00ce58 03-Jan-2009 stsp <stsp@openbsd.org>

Since link LSAs live in iface->lsa_tree and not in area->lsa_tree,
we had better include LSAs from iface->lsa_tree when sending
DB summaries. Fixes initial flood of link LSAs.
ok claudio@


# 8cd84907 30-Dec-2008 claudio <claudio@openbsd.org>

lsa_get_prefix() needs to use something else then struct lsa_prefix to
store the prefix to because the onwire format has the prefix compressed and
so struct lsa_prefix will no longer carry the prefix

lsa_get_prefix() needs to use something else then struct lsa_prefix to
store the prefix to because the onwire format has the prefix compressed and
so struct lsa_prefix will no longer carry the prefix in it. Use rt_prefix
instead which is the expanded and host-byte-order version of the former.

show more ...


# 4ae44e47 27-Nov-2007 claudio <claudio@openbsd.org>

Make lsa_find() find link local LSA by passing the interface instead of the
area as lookup point. Additionally make lsa_dump or actually the code around
it pass all LSA to ospf6ctl. The rde_spf.c are

Make lsa_find() find link local LSA by passing the interface instead of the
area as lookup point. Additionally make lsa_dump or actually the code around
it pass all LSA to ospf6ctl. The rde_spf.c are not final.

show more ...


# 4139c605 27-Nov-2007 claudio <claudio@openbsd.org>

Monster diff to bring us a bit on track again.
a) implement all (or at least most) lsa_check() cases.
b) classify the LSA scope correctly and add a per interface lsa_tree for
the link local stuff.

Monster diff to bring us a bit on track again.
a) implement all (or at least most) lsa_check() cases.
b) classify the LSA scope correctly and add a per interface lsa_tree for
the link local stuff.
c) implement a function to parse a prefix.

There is still a lot missing currently link local LSA are added to the
interface tree but nothing can access them (lsa_find() and a few friends
need some changes).
OK norby@

show more ...


# 19f3adae 16-Oct-2007 norby <norby@openbsd.org>

In OSPFv3 the LSA type is a 16 bit value, furthermore it uses different
values than the v2 counterpart.

Change to u_int16_t and define new LSA types.

ok claudio@


# f8efa005 16-Oct-2007 claudio <claudio@openbsd.org>

First step at making kroute IPv6 aware. This resulted in many additional
changes -- some are so hairy that I left them out for later by commenting out
larger blocks of code (just grep for XXX if you

First step at making kroute IPv6 aware. This resulted in many additional
changes -- some are so hairy that I left them out for later by commenting out
larger blocks of code (just grep for XXX if you like to help).
Get it in early so that we can work on.
OK norby@

show more ...


# a1a4e97b 08-Oct-2007 norby <norby@openbsd.org>

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

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@

show more ...