Annotation of 42BSD/sys/net/route.h, revision 1.1

1.1     ! root        1: /*     route.h 6.1     83/07/29        */
        !             2: 
        !             3: /*
        !             4:  * Kernel resident routing tables.
        !             5:  * 
        !             6:  * The routing tables are initialized at boot time by
        !             7:  * making entries for all directly connected interfaces.
        !             8:  */
        !             9: 
        !            10: /*
        !            11:  * A route consists of a destination address and a reference
        !            12:  * to a routing entry.  These are often held by protocols
        !            13:  * in their control blocks, e.g. inpcb.
        !            14:  */
        !            15: struct route {
        !            16:        struct  rtentry *ro_rt;
        !            17:        struct  sockaddr ro_dst;
        !            18: #ifdef notdef
        !            19:        caddr_t ro_pcb;                 /* not used yet */
        !            20: #endif
        !            21: };
        !            22: 
        !            23: /*
        !            24:  * We distinguish between routes to hosts and routes to networks,
        !            25:  * preferring the former if available.  For each route we infer
        !            26:  * the interface to use from the gateway address supplied when
        !            27:  * the route was entered.  Routes that forward packets through
        !            28:  * gateways are marked so that the output routines know to address the
        !            29:  * gateway rather than the ultimate destination.
        !            30:  */
        !            31: struct rtentry {
        !            32:        u_long  rt_hash;                /* to speed lookups */
        !            33:        struct  sockaddr rt_dst;        /* key */
        !            34:        struct  sockaddr rt_gateway;    /* value */
        !            35:        short   rt_flags;               /* up/down?, host/net */
        !            36:        short   rt_refcnt;              /* # held references */
        !            37:        u_long  rt_use;                 /* raw # packets forwarded */
        !            38:        struct  ifnet *rt_ifp;          /* the answer: interface to use */
        !            39: };
        !            40: 
        !            41: #define        RTF_UP          0x1             /* route useable */
        !            42: #define        RTF_GATEWAY     0x2             /* destination is a gateway */
        !            43: #define        RTF_HOST        0x4             /* host entry (net otherwise) */
        !            44: 
        !            45: /*
        !            46:  * Routing statistics.
        !            47:  */
        !            48: struct rtstat {
        !            49:        short   rts_badredirect;        /* bogus redirect calls */
        !            50:        short   rts_dynamic;            /* routes created by redirects */
        !            51:        short   rts_newgateway;         /* routes modified by redirects */
        !            52:        short   rts_unreach;            /* lookups which failed */
        !            53:        short   rts_wildcard;           /* lookups satisfied by a wildcard */
        !            54: };
        !            55: 
        !            56: #ifdef KERNEL
        !            57: #define        RTFREE(rt) \
        !            58:        if ((rt)->rt_refcnt == 1) \
        !            59:                rtfree(rt); \
        !            60:        else \
        !            61:                (rt)->rt_refcnt--;
        !            62: 
        !            63: #define        RTHASHSIZ       7
        !            64: struct mbuf *rthost[RTHASHSIZ];
        !            65: struct mbuf *rtnet[RTHASHSIZ];
        !            66: struct rtstat  rtstat;
        !            67: #endif

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.