V8/usr/sys/chaosld/chrouteld.h
/*
* C H R O U T E L D . H
*
* Definitions for use with the chroute line discipline for
* chaosnet routing.
*
*
* (c) Copyright 1984 Nirvonics, Inc.
*
* Written by Kurt Gollhardt
* Last update Mon Sep 24 16:33:37 1984
*
* This software is the property of Nirvonics, Inc.
* All rights reserved.
*
*/
#ifndef _CHROUTE_
#define _CHROUTE_
/* Subnet Routing Types */
#define CHNOPATH 0 /* No connection */
#define CHDIRECT 1 /* Direct connection to this subnet */
#define CHBRIDGE 2 /* Can get to this subnet via a bridge */
#define CHFIXED 3 /* Same as CHBRIDGE, but statically configured */
/* Subnet Costs */
#define DIRECT_COST 10 /* Direct connection, e.g. DR11 parallel line */
#define CABLE_COST 16 /* High speed cable, e.g. ethernet */
#define ASYNC_COST 20 /* Low speed connection, e.g. asynchronous RS-232 */
#define HIGH_COST 512 /* infinity */
/* Chroute_ld Per Interface Structure */
struct chif {
struct queue *rdq; /* This interface's line discipline read queue */
chaddr my_addr; /* Chaosnet address of this interface */
dev_t if_dev; /* UNIX device number of this interface */
u_short if_cost; /* Cost of sending via this interface */
u_short arp; /* Address resolution channel number */
struct statxcvr if_stat; /* Status information */
};
#define ist_xmit if_stat.sx_Xmtd /* # successfully transmitted packets */
#define ist_abrt if_stat.sx_Abrt /* # transmission failures */
#define ist_rcvd if_stat.sx_Rcvd /* # successfully received packets */
#define ist_rej if_stat.sx_Rej /* # reception failures */
#define ist_len if_stat.sx_Leng /* # length errors */
/* Chroute_ld Per Subnet Routing Information */
struct chroute {
u_char rt_type; /* Type of connection to this subnet */
u_short rt_cost; /* Current cost of sending via this subnet */
union {
chaddr bridge; /* Chaosnet address of bridge */
struct chif *ifp; /* Interface for a direct connection */
} rt_path; /* Info on how to get to this subnet */
};
/* Chaosnet-Ethernet Address Resolution Pair */
struct chaddr_pair {
chaddr ch_addr; /* Chaosnet address */
u_char en_addr[6]; /* Ethernet address */
};
/* Ioctl Codes */
#define CRIOADDR (('C'<<8)|1) /* Set Chaosnet and Ethernet addresses */
#define CRIOCOST (('C'<<8)|2) /* Set cost for this interface */
#define CRIOPRIMARY (('C'<<8)|3) /* Establish this as the primary interface;
i.e. packets addressed to us will be
passed to this stream */
#endif