|
|
1.1 root 1: /*
2: * C H R O U T E L D . H
3: *
4: * Definitions for use with the chroute line discipline for
5: * chaosnet routing.
6: *
7: *
8: * (c) Copyright 1984 Nirvonics, Inc.
9: *
10: * Written by Kurt Gollhardt
11: * Last update Mon Sep 24 16:33:37 1984
12: *
13: * This software is the property of Nirvonics, Inc.
14: * All rights reserved.
15: *
16: */
17:
18: #ifndef _CHROUTE_
19: #define _CHROUTE_
20:
21: /* Subnet Routing Types */
22:
23: #define CHNOPATH 0 /* No connection */
24: #define CHDIRECT 1 /* Direct connection to this subnet */
25: #define CHBRIDGE 2 /* Can get to this subnet via a bridge */
26: #define CHFIXED 3 /* Same as CHBRIDGE, but statically configured */
27:
28: /* Subnet Costs */
29:
30: #define DIRECT_COST 10 /* Direct connection, e.g. DR11 parallel line */
31: #define CABLE_COST 16 /* High speed cable, e.g. ethernet */
32: #define ASYNC_COST 20 /* Low speed connection, e.g. asynchronous RS-232 */
33: #define HIGH_COST 512 /* infinity */
34:
35: /* Chroute_ld Per Interface Structure */
36:
37: struct chif {
38: struct queue *rdq; /* This interface's line discipline read queue */
39: chaddr my_addr; /* Chaosnet address of this interface */
40: dev_t if_dev; /* UNIX device number of this interface */
41: u_short if_cost; /* Cost of sending via this interface */
42: u_short arp; /* Address resolution channel number */
43: struct statxcvr if_stat; /* Status information */
44: };
45:
46: #define ist_xmit if_stat.sx_Xmtd /* # successfully transmitted packets */
47: #define ist_abrt if_stat.sx_Abrt /* # transmission failures */
48: #define ist_rcvd if_stat.sx_Rcvd /* # successfully received packets */
49: #define ist_rej if_stat.sx_Rej /* # reception failures */
50: #define ist_len if_stat.sx_Leng /* # length errors */
51:
52: /* Chroute_ld Per Subnet Routing Information */
53:
54: struct chroute {
55: u_char rt_type; /* Type of connection to this subnet */
56: u_short rt_cost; /* Current cost of sending via this subnet */
57: union {
58: chaddr bridge; /* Chaosnet address of bridge */
59: struct chif *ifp; /* Interface for a direct connection */
60: } rt_path; /* Info on how to get to this subnet */
61: };
62:
63: /* Chaosnet-Ethernet Address Resolution Pair */
64:
65: struct chaddr_pair {
66: chaddr ch_addr; /* Chaosnet address */
67: u_char en_addr[6]; /* Ethernet address */
68: };
69:
70: /* Ioctl Codes */
71:
72: #define CRIOADDR (('C'<<8)|1) /* Set Chaosnet and Ethernet addresses */
73: #define CRIOCOST (('C'<<8)|2) /* Set cost for this interface */
74: #define CRIOPRIMARY (('C'<<8)|3) /* Establish this as the primary interface;
75: i.e. packets addressed to us will be
76: passed to this stream */
77:
78: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.