Skip to content
Snippets Groups Projects
net.cc 2.01 KiB
Newer Older
  • Learn to ignore specific revisions
  • #include "debug.hh"
    
    
    Guy Zana's avatar
    Guy Zana committed
    extern "C" {
    
        #include <sys/time.h>
    
    
        #include <bsd/porting/callout.h>
    
        #include <bsd/porting/netport.h>
    
        #include <bsd/porting/networking.h>
        #include <bsd/porting/route.h>
    
    
        #include <bsd/sys/sys/libkern.h>
    
        #include <bsd/sys/sys/eventhandler.h>
        #include <bsd/sys/sys/mbuf.h>
    
        #include <bsd/sys/sys/domain.h>
    
    Guy Zana's avatar
    Guy Zana committed
        #include <bsd/sys/net/netisr.h>
    
        #include <bsd/sys/net/if.h>
    
        #include <bsd/sys/net/if_llatbl.h>
    
        #include <bsd/sys/net/pfil.h>
    
        #include <bsd/sys/netinet/igmp.h>
    
        #include <bsd/sys/netinet/if_ether.h>
    
        #include <bsd/sys/netinet/in_pcb.h>
    
        #include <bsd/sys/netinet/cc.h>
    
        #include <bsd/sys/net/ethernet.h>
    
        #include <bsd/sys/net/route.h>
    
        #include <bsd/machine/param.h>
    
    Guy Zana's avatar
    Guy Zana committed
    
        /* Generation of ip ids */
        void ip_initid(void);
    
    
        /* AF_INET */
    
        extern  struct domain inetdomain;
    
        /* AF_ROUTE */
        extern  struct domain routedomain;
    
    
        extern void system_taskq_init(void *arg);
        extern void opensolaris_load(void *arg);
    
        extern void callb_init(void *arg);
    
    Guy Zana's avatar
    Guy Zana committed
    }
    
    
    Guy Zana's avatar
    Guy Zana committed
    
    
    Guy Zana's avatar
    Guy Zana committed
    void net_init(void)
    
    Guy Zana's avatar
    Guy Zana committed
    {
    
        debug("Initializing network stack...\n");
    
        // Initialize callouts
        init_callouts();
    
    
        /* Random */
        struct timeval tv;
        bsd_srandom(tv.tv_sec ^ tv.tv_usec);
    
    Guy Zana's avatar
    Guy Zana committed
        ip_initid();
    
    Guy Zana's avatar
    Guy Zana committed
        tunable_mbinit(NULL);
    
        init_maxsockets(NULL);
    
        opensolaris_load(NULL);
    
    Guy Zana's avatar
    Guy Zana committed
        mbuf_init(NULL);
    
    Guy Zana's avatar
    Guy Zana committed
        netisr_init(NULL);
    
        if_init(NULL);
        vnet_if_init(NULL);
    
    Guy Zana's avatar
    Guy Zana committed
        ether_init(NULL);
    
        callb_init(NULL);
    
        system_taskq_init(NULL);
    
    Guy Zana's avatar
    Guy Zana committed
        vnet_lltable_init();
        igmp_init();
        vnet_igmp_init();
    
        vnet_pfil_init();
    
        domaininit(NULL);
        OSV_DOMAIN_SET(inet);
    
        OSV_DOMAIN_SET(route);
    
    Guy Zana's avatar
    Guy Zana committed
        rts_init();
        route_init();
        vnet_route_init();
        ipport_tick_init(NULL);
        arp_init();
    
        domainfinalize(NULL);
    
        if_attachdomain(NULL);
    
    Guy Zana's avatar
    Guy Zana committed
        vnet_loif_init();
    
        /* Start the loopback device */
    
        osv_start_if("lo0", "127.0.0.1", "255.0.0.0");
    
        osv_ifup("lo0");
    
        debug("Done!\n");
    
    Guy Zana's avatar
    Guy Zana committed
    }