diff options
author | Martin Pieuchot <mpi@cvs.openbsd.org> | 2015-10-07 10:50:36 +0000 |
---|---|---|
committer | Martin Pieuchot <mpi@cvs.openbsd.org> | 2015-10-07 10:50:36 +0000 |
commit | 94ece62a44e8baa8868e570371090ecd63084b6e (patch) | |
tree | bc5f3754e4a1460f0bda7034e456eee072b9372b /sys/net/art.h | |
parent | 68c2f66c0d155e4cfba0392dd4da5e4c3ae9db46 (diff) |
Initialize the routing table before domains.
The routing table is not an optional component of the network stack
and initializing it inside the "routing domain" requires some ugly
introspection in the domain interface.
This put the rtable* layer at the same level of the if* level. These
two subsystem are organized around the two global data structure used
in the network stack:
- the global &ifnet list, to be used in process context only, and
- the routing table which can be read in interrupt context.
This change makes the rtable_* layer domain-aware and extends the
"struct domain" such that INET, INET6 and MPLS can specify the length
of the binary key used in lookups. This allows us to keep, or move
towards, AF-free route and rtable layers.
While here stop the madness and pass the size of the maximum key length
in *byte* to rn_inithead0().
ok claudio@, mikeb@
Diffstat (limited to 'sys/net/art.h')
-rw-r--r-- | sys/net/art.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/net/art.h b/sys/net/art.h index 473de44cea7..0c97e96ef84 100644 --- a/sys/net/art.h +++ b/sys/net/art.h @@ -1,4 +1,4 @@ -/* $OpenBSD: art.h,v 1.2 2015/08/20 12:51:10 mpi Exp $ */ +/* $OpenBSD: art.h,v 1.3 2015/10/07 10:50:35 mpi Exp $ */ /* * Copyright (c) 2015 Martin Pieuchot @@ -50,7 +50,7 @@ struct art_node { }; void art_init(void); -int art_attach(void **, int); +struct art_root *art_attach(unsigned int, int); struct art_node *art_insert(struct art_root *, struct art_node *, uint8_t *, int); struct art_node *art_delete(struct art_root *, struct art_node *, uint8_t *, |