|
|
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.