plan 9 kernel history: overview | file list | diff list

1993/0525/port/netif.h (diff list | history)

1993/0525/sys/src/9/port/netif.h:57,631994/0629/sys/src/9/port/netif.h:57,64 (short | long)
Add Netif.all. Comment edits.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
	int	alen;			/* address length */ 
	uchar	addr[Nmaxaddr]; 
	uchar	bcast[Nmaxaddr]; 
	int	prom; 
1994/0629    
	int	prom;			/* number of promiscuous opens */ 
	int	all;			/* number of -1 multiplexors */ 
1993/0525    
 
	/* statistics */ 
	int	misses; 
1994/0629/sys/src/9/port/netif.h:104,1101995/0113/sys/src/9/port/netif.h:104,106 (short | long)
Comment edit.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
}; 
 
extern uchar etherbcast[6]; 
                 
/* 
 *  FDDI specific 
 */ 
1995/0113/sys/src/9/port/netif.h:69,741995/0711/sys/src/9/port/netif.h:69,75 (short | long)
Add Netif.soverflows.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
	int	frames;		/* framing errors */ 
	int	overflows;	/* packet overflows */ 
	int	buffs;		/* buffering errors */ 
1995/0711    
	int	soverflows;	/* software overflow */ 
1993/0525    
 
	/* routines for touching the hardware */ 
	void	*arg; 
1995/0711/sys/src/9/port/netif.h:13,181995/0804/sys/src/9/port/netif.h:13,19 (short | long)
Add Nifstatqid. Comment edit.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
	Nctlqid, 
	Nstatqid, 
	Ntypeqid, 
1995/0804    
	Nifstatqid, 
1993/0525    
}; 
 
/* 
1995/0711/sys/src/9/port/netif.h:65,711995/0804/sys/src/9/port/netif.h:66,72
1993/0525    
	int	inpackets; 
	int	outpackets; 
	int	crcs;		/* input crc errors */ 
	int	oerrs;		/* output erros */ 
1995/0804    
	int	oerrs;		/* output errors */ 
1993/0525    
	int	frames;		/* framing errors */ 
	int	overflows;	/* packet overflows */ 
	int	buffs;		/* buffering errors */ 
1995/0804/sys/src/9/port/netif.h:51,571996/0706/sys/src/9/port/netif.h:51,56 (short | long)
Remove Netif.out.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
	char	*name;			/* for top level directory */ 
	int	nfile;			/* max number of Netfiles */ 
	Netfile	**f; 
	Queue	*out;			/* output buffer */ 
 
	/* about net */ 
	int	limit;			/* flow control */ 
1996/0706/sys/src/9/port/netif.h:34,431997/0327/sys/src/9/port/netif.h:34,43 (short | long)
Whitespace edit. Add static buffer for name. Add netifbread. Remove etherbcast.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
	ulong	mode; 
	char	owner[NAMELEN]; 
 
	int	type;		/* multiplexor type */ 
	int	prom;		/* promiscuous mode */ 
1997/0327    
	int	type;			/* multiplexor type */ 
	int	prom;			/* promiscuous mode */ 
1993/0525    
 
	Queue	*in;		/* input buffer */ 
1997/0327    
	Queue	*in;			/* input buffer */ 
1993/0525    
}; 
 
/* 
1996/0706/sys/src/9/port/netif.h:48,541997/0327/sys/src/9/port/netif.h:48,54
1993/0525    
	QLock; 
 
	/* multiplexing */ 
	char	*name;			/* for top level directory */ 
1997/0327    
	char	name[NAMELEN];		/* for top level directory */ 
1993/0525    
	int	nfile;			/* max number of Netfiles */ 
	Netfile	**f; 
 
1996/0706/sys/src/9/port/netif.h:81,861997/0327/sys/src/9/port/netif.h:81,87
1993/0525    
Chan*	netifopen(Netif*, Chan*, int); 
void	netifclose(Netif*, Chan*); 
long	netifread(Netif*, Chan*, void*, long, ulong); 
1997/0327    
Block*	netifbread(Netif*, Chan*, long, ulong); 
1993/0525    
long	netifwrite(Netif*, Chan*, void*, long); 
void	netifwstat(Netif*, Chan*, char*); 
void	netifstat(Netif*, Chan*, char*); 
1996/0706/sys/src/9/port/netif.h:103,1071997/0327/sys/src/9/port/netif.h:104,106
1993/0525    
	uchar	type[2]; 
	uchar	data[1500]; 
}; 
                 
extern uchar etherbcast[6]; 
1997/0327/sys/src/9/port/netif.h:1,41997/0401/sys/src/9/port/netif.h:1,5 (short | long)
Add Netaddr], Netif.maddr, Netif.multicast.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
typedef struct Etherpkt	Etherpkt; 
1997/0401    
typedef struct Netaddr	Netaddr; 
1993/0525    
typedef struct Netfile	Netfile; 
typedef struct Netif	Netif; 
 
1997/0327/sys/src/9/port/netif.h:41,461997/0401/sys/src/9/port/netif.h:42,57
1993/0525    
}; 
 
/* 
1997/0401    
 *  a network address 
 */ 
struct Netaddr 
{ 
	Netaddr	*next; 
	char	*addr; 
	int	ref; 
}; 
 
/* 
1993/0525    
 *  a network interface 
 */ 
struct Netif 
1997/0327/sys/src/9/port/netif.h:57,621997/0401/sys/src/9/port/netif.h:68,74
1993/0525    
	int	alen;			/* address length */ 
	uchar	addr[Nmaxaddr]; 
	uchar	bcast[Nmaxaddr]; 
1997/0401    
	Netaddr	*maddr;			/* multicast addresses */ 
1994/0629    
	int	prom;			/* number of promiscuous opens */ 
	int	all;			/* number of -1 multiplexors */ 
1993/0525    
 
1997/0327/sys/src/9/port/netif.h:74,791997/0401/sys/src/9/port/netif.h:86,92
1993/0525    
	/* routines for touching the hardware */ 
	void	*arg; 
	void	(*promiscuous)(void*, int); 
1997/0401    
	void	(*multicast)(void*, char*, int); 
1993/0525    
}; 
 
void	netifinit(Netif*, char*, int, ulong); 
1997/0401/sys/src/9/port/netif.h:37,421997/0403/sys/src/9/port/netif.h:37,44 (short | long)
In Netfile: add maddr, nmaddr. Add Netfile.nmaddr.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
 
1997/0327    
	int	type;			/* multiplexor type */ 
	int	prom;			/* promiscuous mode */ 
1997/0403    
	uchar	maddr[8];		/* bitmask of multicast addresses requested */ 
	int	nmaddr;			/* number of multicast addresses */ 
1993/0525    
 
1997/0327    
	Queue	*in;			/* input buffer */ 
1993/0525    
}; 
1997/0401/sys/src/9/port/netif.h:69,741997/0403/sys/src/9/port/netif.h:71,77
1993/0525    
	uchar	addr[Nmaxaddr]; 
	uchar	bcast[Nmaxaddr]; 
1997/0401    
	Netaddr	*maddr;			/* multicast addresses */ 
1997/0403    
	int	nmaddr;			/* number of multicast addresses */ 
1994/0629    
	int	prom;			/* number of promiscuous opens */ 
	int	all;			/* number of -1 multiplexors */ 
1993/0525    
 
1997/0403/sys/src/9/port/netif.h:6,111997/0404/sys/src/9/port/netif.h:6,12 (short | long)
Add Netaddr.hnext for hash table in Netif.mhash.
Change addr to fixed buffer, change multicast prototype.
Add activemulti.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
enum 
{ 
	Nmaxaddr=	64, 
1997/0404    
	Nmhash=		31, 
1993/0525    
 
	Ncloneqid=	1, 
	N2ndqid, 
1997/0403/sys/src/9/port/netif.h:48,551997/0404/sys/src/9/port/netif.h:49,57
1997/0401    
 */ 
struct Netaddr 
{ 
	Netaddr	*next; 
	char	*addr; 
1997/0404    
	Netaddr	*next;		/* allocation chain */ 
	Netaddr	*hnext; 
	uchar	addr[Nmaxaddr]; 
1997/0401    
	int	ref; 
}; 
 
1997/0403/sys/src/9/port/netif.h:70,771997/0404/sys/src/9/port/netif.h:72,80
1993/0525    
	int	alen;			/* address length */ 
	uchar	addr[Nmaxaddr]; 
	uchar	bcast[Nmaxaddr]; 
1997/0401    
	Netaddr	*maddr;			/* multicast addresses */ 
1997/0403    
	int	nmaddr;			/* number of multicast addresses */ 
1997/0404    
	Netaddr	*maddr;			/* known multicast addresses */ 
	int	nmaddr;			/* number of known multicast addresses */ 
	Netaddr *mhash[Nmhash];		/* hash table of multicast addresses */ 
1994/0629    
	int	prom;			/* number of promiscuous opens */ 
	int	all;			/* number of -1 multiplexors */ 
1993/0525    
 
1997/0403/sys/src/9/port/netif.h:89,951997/0404/sys/src/9/port/netif.h:92,98
1993/0525    
	/* routines for touching the hardware */ 
	void	*arg; 
	void	(*promiscuous)(void*, int); 
1997/0401    
	void	(*multicast)(void*, char*, int); 
1997/0404    
	void	(*multicast)(void*, uchar*, int); 
1993/0525    
}; 
 
void	netifinit(Netif*, char*, int, ulong); 
1997/0403/sys/src/9/port/netif.h:101,1061997/0404/sys/src/9/port/netif.h:104,110
1993/0525    
long	netifwrite(Netif*, Chan*, void*, long); 
void	netifwstat(Netif*, Chan*, char*); 
void	netifstat(Netif*, Chan*, char*); 
1997/0404    
int	activemulti(Netif*, uchar*, int); 
1993/0525    
 
/* 
 *  Ethernet specific 
1997/0404/sys/src/9/port/netif.h:9,141999/0316/sys/src/9/port/netif.h:9,15 (short | long)
Add Naddrqid.
rsc Fri Mar 4 12:44:25 2005
1997/0404    
	Nmhash=		31, 
1993/0525    
 
	Ncloneqid=	1, 
1999/0316    
	Naddrqid, 
1993/0525    
	N2ndqid, 
	N3rdqid, 
	Ndataqid, 
1999/0316/sys/src/9/port/netif.h:39,441999/0625/sys/src/9/port/netif.h:39,46 (short | long)
Add Netif.bridge, Netif.headersonly.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
 
1997/0327    
	int	type;			/* multiplexor type */ 
	int	prom;			/* promiscuous mode */ 
1999/0625    
	int	bridge;			/* bridge mode */ 
	int	headersonly;		/* headers only - no data */ 
1997/0403    
	uchar	maddr[8];		/* bitmask of multicast addresses requested */ 
	int	nmaddr;			/* number of multicast addresses */ 
1993/0525    
 
1999/0625/sys/src/9/port/netif.h:22,302001/0527/sys/src/9/port/netif.h:22,30 (short | long)
Convert to 9P2000. Cast arg to ulong to avoid vlong ops. Change netifwalk, netifwstat, netifstat.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
/* 
 *  Macros to manage Qid's used for multiplexed devices 
 */ 
#define NETTYPE(x)	((x)&0x1f) 
#define NETID(x)	(((x)&~CHDIR)>>5) 
#define NETQID(i,t)	(((i)<<5)|(t)) 
2001/0527    
#define NETTYPE(x)	(((ulong)x)&0x1f) 
#define NETID(x)	((((ulong)x))>>5) 
#define NETQID(i,t)	((((ulong)i)<<5)|(t)) 
1993/0525    
 
/* 
 *  one per multiplexed connection 
1999/0625/sys/src/9/port/netif.h:35,412001/0527/sys/src/9/port/netif.h:35,41
1993/0525    
 
	int	inuse; 
	ulong	mode; 
	char	owner[NAMELEN]; 
2001/0527    
	char	owner[KNAMELEN]; 
1993/0525    
 
1997/0327    
	int	type;			/* multiplexor type */ 
	int	prom;			/* promiscuous mode */ 
1999/0625/sys/src/9/port/netif.h:66,722001/0527/sys/src/9/port/netif.h:66,72
1993/0525    
	QLock; 
 
	/* multiplexing */ 
1997/0327    
	char	name[NAMELEN];		/* for top level directory */ 
2001/0527    
	char	name[KNAMELEN];		/* for top level directory */ 
1993/0525    
	int	nfile;			/* max number of Netfiles */ 
	Netfile	**f; 
 
1999/0625/sys/src/9/port/netif.h:99,1122001/0527/sys/src/9/port/netif.h:99,112
1993/0525    
}; 
 
void	netifinit(Netif*, char*, int, ulong); 
int	netifwalk(Netif*, Chan*, char*); 
2001/0527    
Walkqid*	netifwalk(Netif*, Chan*, Chan*, char **, int); 
1993/0525    
Chan*	netifopen(Netif*, Chan*, int); 
void	netifclose(Netif*, Chan*); 
long	netifread(Netif*, Chan*, void*, long, ulong); 
1997/0327    
Block*	netifbread(Netif*, Chan*, long, ulong); 
1993/0525    
long	netifwrite(Netif*, Chan*, void*, long); 
void	netifwstat(Netif*, Chan*, char*); 
void	netifstat(Netif*, Chan*, char*); 
2001/0527    
int	netifwstat(Netif*, Chan*, uchar*, int); 
int	netifstat(Netif*, Chan*, uchar*, int); 
1997/0404    
int	activemulti(Netif*, uchar*, int); 
1993/0525    
 
/* 
2001/0527/sys/src/9/port/netif.h:39,442003/0118/sys/src/9/port/netif.h:39,45 (short | long)
Add Netfile.scan, Netif.scan, Netif.scanbs for base stations.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
 
1997/0327    
	int	type;			/* multiplexor type */ 
	int	prom;			/* promiscuous mode */ 
2003/0118    
	int	scan;			/* base station scanning interval */ 
1999/0625    
	int	bridge;			/* bridge mode */ 
	int	headersonly;		/* headers only - no data */ 
1997/0403    
	uchar	maddr[8];		/* bitmask of multicast addresses requested */ 
2001/0527/sys/src/9/port/netif.h:79,842003/0118/sys/src/9/port/netif.h:80,86
1997/0404    
	int	nmaddr;			/* number of known multicast addresses */ 
	Netaddr *mhash[Nmhash];		/* hash table of multicast addresses */ 
1994/0629    
	int	prom;			/* number of promiscuous opens */ 
2003/0118    
	int	scan;			/* number of base station scanners */ 
1994/0629    
	int	all;			/* number of -1 multiplexors */ 
1993/0525    
 
	/* statistics */ 
2001/0527/sys/src/9/port/netif.h:96,1012003/0118/sys/src/9/port/netif.h:98,104
1993/0525    
	void	*arg; 
	void	(*promiscuous)(void*, int); 
1997/0404    
	void	(*multicast)(void*, uchar*, int); 
2003/0118    
	void	(*scanbs)(void*, uint);	/* scan for base stations */ 
1993/0525    
}; 
 
void	netifinit(Netif*, char*, int, ulong); 
2003/0118/sys/src/9/port/netif.h:74,792003/0209/sys/src/9/port/netif.h:74,80 (short | long)
Add Netif.mbps.
rsc Fri Mar 4 12:44:25 2005
1993/0525    
	/* about net */ 
	int	limit;			/* flow control */ 
	int	alen;			/* address length */ 
2003/0209    
	int	mbps;			/* megabits per sec */ 
1993/0525    
	uchar	addr[Nmaxaddr]; 
	uchar	bcast[Nmaxaddr]; 
1997/0404    
	Netaddr	*maddr;			/* known multicast addresses */ 


source code copyright © 1990-2005 Lucent Technologies; see license
Plan 9 distribution
comments to russ cox (rsc@swtch.com)