4.3BSD-UWisc/include/rpcsvc/ether.h
/* @(#)ether.h 1.1 86/02/05 SMI */
/* @(#)ether.h 2.1 86/04/14 NFSSRC */
/*
* 1985 by Sun Microsystems Inc.
*
*/
#define NPROTOS 6
#define NDPROTO 0
#define ICMPPROTO 1
#define UDPPROTO 2
#define TCPPROTO 3
#define ARPPROTO 4
#define OTHERPROTO 5
#define NBUCKETS 16
#define MINPACKETLEN 60
#define MAXPACKETLEN 1514
#define BUCKETLNTH ((MAXPACKETLEN - MINPACKETLEN + NBUCKETS - 1)/NBUCKETS)
#define HASHSIZE 256
#define ETHERSTATPROC_GETDATA 1
#define ETHERSTATPROC_ON 2
#define ETHERSTATPROC_OFF 3
#define ETHERSTATPROC_GETSRCDATA 4
#define ETHERSTATPROC_GETDSTDATA 5
#define ETHERSTATPROC_SELECTSRC 6
#define ETHERSTATPROC_SELECTDST 7
#define ETHERSTATPROC_SELECTPROTO 8
#define ETHERSTATPROC_SELECTLNTH 9
#define ETHERSTATPROG 100010
#define ETHERSTATVERS 1
int xdr_etherstat();
int xdr_etherhbody();
int xdr_etherhmem();
int xdr_etherhtable();
int xdr_etheraddrs();
int xdr_addrmask();
/*
* all ether stat's except src, dst addresses
*/
struct etherstat {
struct timeval e_time;
unsigned long e_bytes;
unsigned long e_packets;
unsigned long e_bcast;
unsigned long e_size[NBUCKETS];
unsigned long e_proto[NPROTOS];
};
/*
* member of address hash table
*/
struct etherhmem {
int h_addr;
unsigned h_cnt;
struct etherhmem *h_nxt;
};
/*
* src, dst address info
*/
struct etheraddrs {
struct timeval e_time;
unsigned long e_bytes;
unsigned long e_packets;
unsigned long e_bcast;
struct etherhmem **e_addrs;
};
/*
* for size, a_addr is lowvalue, a_mask is high value
*/
struct addrmask {
int a_addr;
int a_mask; /* 0 means wild card */
};
extern char *protoname[];
extern int if_fd;