diff options
Diffstat (limited to 'sys/netinet')
-rw-r--r-- | sys/netinet/if_ether.c | 13 | ||||
-rw-r--r-- | sys/netinet/ip_input.c | 17 |
2 files changed, 30 insertions, 0 deletions
diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index 3a44f5c..4aae7d3 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -120,6 +120,15 @@ static void arptimer(void *); static void in_arpinput(struct mbuf *); #endif +#ifndef VIMAGE_GLOBALS +static const vnet_modinfo_t vnet_arp_modinfo = { + .vmi_id = VNET_MOD_ARP, + .vmi_name = "arp", + .vmi_dependson = VNET_MOD_INET, + .vmi_iattach = arp_iattach +}; +#endif /* !VIMAGE_GLOBALS */ + #ifdef AF_INET void arp_ifscrub(struct ifnet *ifp, uint32_t addr); @@ -808,7 +817,11 @@ static void arp_init(void) { +#ifndef VIMAGE_GLOBALS + vnet_mod_register(&vnet_arp_modinfo); +#else arp_iattach(NULL); +#endif arpintrq.ifq_maxlen = 50; mtx_init(&arpintrq.ifq_mtx, "arp_inq", NULL, MTX_DEF); diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index db53a23..70c85bf 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -224,6 +224,23 @@ int fw_one_pass; static void ip_freef(struct ipqhead *, struct ipq *); +#ifndef VIMAGE_GLOBALS +static void vnet_inet_register(void); + +static const vnet_modinfo_t vnet_inet_modinfo = { + .vmi_id = VNET_MOD_INET, + .vmi_name = "inet", +}; + +static void vnet_inet_register() +{ + + vnet_mod_register(&vnet_inet_modinfo); +} + +SYSINIT(inet, SI_SUB_PROTO_BEGIN, SI_ORDER_FIRST, vnet_inet_register, 0); +#endif + /* * IP initialization: fill in IP protocol switch table. * All protocols not implemented in kernel go to raw IP protocol handler. |