xref: /csrg-svn/sys/net/if.h (revision 4945)
1*4945Swnj /*	if.h	4.1	81/11/18	*/
2*4945Swnj 
3*4945Swnj /*
4*4945Swnj  * Structure defining a network interface.
5*4945Swnj  *
6*4945Swnj  * (Would like to call this struct ``if'', but C isn't PL/1.)
7*4945Swnj  */
8*4945Swnj struct ifnet {
9*4945Swnj 	short	if_unit;		/* sub-unit for lower level driver */
10*4945Swnj 	short	if_flags;		/* state flags */
11*4945Swnj 	short	if_mtu;			/* maximum transmission unit */
12*4945Swnj 	short	if_net;			/* network number of interface */
13*4945Swnj 	struct	in_addr if_addr;	/* internet address of interface */
14*4945Swnj 	struct ifbuf {
15*4945Swnj 		short	ib_mbcnt;	/* mbufs on chain */
16*4945Swnj 		short	ib_mbhiwat;	/* mbufs permitted on chain */
17*4945Swnj 		struct	mbuf *ib_hd;	/* head of chain */
18*4945Swnj 		struct	mbuf *ib_tl;	/* tail of chain */
19*4945Swnj 	} if_snd, if_rcv;
20*4945Swnj 	struct ifsw {
21*4945Swnj 		int	(*if_output)();		/* output routine */
22*4945Swnj 		int	(*if_ubareset)();	/* uba reset routine */
23*4945Swnj 	} *if_sw;
24*4945Swnj };
25*4945Swnj 
26*4945Swnj /* bits in if_flags */
27*4945Swnj #define	IF_OACTIVE	1		/* output in progress */
28*4945Swnj 
29*4945Swnj #ifdef KERNEL
30*4945Swnj struct	ifnet *ifnet;
31*4945Swnj struct	ifnet *if_ifwithaddr(), *if_ifonnetof();
32*4945Swnj #endif
33