xref: /csrg-svn/sys/netiso/iso_var.h (revision 63222)
149268Sbostic /*-
2*63222Sbostic  * Copyright (c) 1988, 1991, 1993
3*63222Sbostic  *	The Regents of the University of California.  All rights reserved.
449268Sbostic  *
549268Sbostic  * %sccs.include.redist.c%
649268Sbostic  *
7*63222Sbostic  *	@(#)iso_var.h	8.1 (Berkeley) 06/10/93
849268Sbostic  */
949268Sbostic 
1036394Ssklower /***********************************************************
1136394Ssklower 		Copyright IBM Corporation 1987
1236394Ssklower 
1336394Ssklower                       All Rights Reserved
1436394Ssklower 
1536394Ssklower Permission to use, copy, modify, and distribute this software and its
1636394Ssklower documentation for any purpose and without fee is hereby granted,
1736394Ssklower provided that the above copyright notice appear in all copies and that
1836394Ssklower both that copyright notice and this permission notice appear in
1936394Ssklower supporting documentation, and that the name of IBM not be
2036394Ssklower used in advertising or publicity pertaining to distribution of the
2136394Ssklower software without specific, written prior permission.
2236394Ssklower 
2336394Ssklower IBM DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING
2436394Ssklower ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL
2536394Ssklower IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR
2636394Ssklower ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
2736394Ssklower WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
2836394Ssklower ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
2936394Ssklower SOFTWARE.
3036394Ssklower 
3136394Ssklower ******************************************************************/
3236394Ssklower 
3336394Ssklower /*
3436394Ssklower  * ARGO Project, Computer Sciences Dept., University of Wisconsin - Madison
3536394Ssklower  */
3637469Ssklower /* $Header: iso_var.h,v 4.2 88/06/29 15:00:08 hagens Exp $
3737469Ssklower  * $Source: /usr/argo/sys/netiso/RCS/iso_var.h,v $
3837469Ssklower  */
3936394Ssklower 
4036394Ssklower /*
4136394Ssklower  *	Interface address, iso version. One of these structures is
4236394Ssklower  *	allocated for each interface with an osi address. The ifaddr
4336394Ssklower  *	structure conatins the protocol-independent part
4436394Ssklower  *	of the structure, and is assumed to be first.
4536394Ssklower  */
4636394Ssklower struct iso_ifaddr {
4736394Ssklower 	struct ifaddr		ia_ifa;		/* protocol-independent info */
4837469Ssklower #define ia_ifp		ia_ifa.ifa_ifp
4940782Ssklower #define	ia_flags	ia_ifa.ifa_flags
5037469Ssklower 	int					ia_snpaoffset;
5136394Ssklower 	struct iso_ifaddr	*ia_next;	/* next in list of iso addresses */
5237469Ssklower 	struct	sockaddr_iso ia_addr;	/* reserve space for interface name */
5337469Ssklower 	struct	sockaddr_iso ia_dstaddr; /* reserve space for broadcast addr */
5437469Ssklower #define	ia_broadaddr	ia_dstaddr
5537469Ssklower 	struct	sockaddr_iso ia_sockmask; /* reserve space for general netmask */
5636394Ssklower };
5736394Ssklower 
5837469Ssklower struct	iso_aliasreq {
5937469Ssklower 	char	ifra_name[IFNAMSIZ];		/* if name, e.g. "en0" */
6037469Ssklower 	struct	sockaddr_iso ifra_addr;
6137469Ssklower 	struct	sockaddr_iso ifra_dstaddr;
6237469Ssklower 	struct	sockaddr_iso ifra_mask;
6337469Ssklower 	int	ifra_snpaoffset;
6437469Ssklower };
6537469Ssklower 
6637469Ssklower struct	iso_ifreq {
6737469Ssklower 	char	ifr_name[IFNAMSIZ];		/* if name, e.g. "en0" */
6837469Ssklower 	struct	sockaddr_iso ifr_Addr;
6937469Ssklower };
7037469Ssklower 
7136394Ssklower /*
7236394Ssklower  *	Given a pointer to an iso_ifaddr (ifaddr),
7336394Ssklower  *	return a pointer to the addr as a sockaddr_iso
7436394Ssklower  */
7537469Ssklower /*
7637469Ssklower #define	IA_SIS(ia) ((struct sockaddr_iso *)(ia.ia_ifa->ifa_addr))
7737469Ssklower  * works if sockaddr_iso becomes variable sized.
7837469Ssklower  */
7937469Ssklower #define	IA_SIS(ia) (&(((struct iso_ifaddr *)ia)->ia_addr))
8036394Ssklower 
8137469Ssklower #define	SIOCDIFADDR_ISO	_IOW('i',25, struct iso_ifreq)	/* delete IF addr */
8237469Ssklower #define	SIOCAIFADDR_ISO	_IOW('i',26, struct iso_aliasreq)/* add/chg IFalias */
8337469Ssklower #define	SIOCGIFADDR_ISO	_IOWR('i',33, struct iso_ifreq)	/* get ifnet address */
8437469Ssklower #define	SIOCGIFDSTADDR_ISO _IOWR('i',34, struct iso_ifreq) /* get dst address */
8537469Ssklower #define	SIOCGIFNETMASK_ISO _IOWR('i',37, struct iso_ifreq) /* get dst address */
8636394Ssklower 
8737469Ssklower /*
8837469Ssklower  * This stuff should go in if.h or if_llc.h or someplace else,
8937469Ssklower  * but for now . . .
9037469Ssklower  */
9137469Ssklower 
9237469Ssklower struct llc_etherhdr {
9337469Ssklower 	char dst[6];
9437469Ssklower 	char src[6];
9537469Ssklower 	char len[2];
9637469Ssklower 	char llc_dsap;
9737469Ssklower 	char llc_ssap;
9837469Ssklower 	char llc_ui_byte;
9937469Ssklower };
10037469Ssklower 
10137469Ssklower struct snpa_hdr {
10237469Ssklower 	struct	ifnet *snh_ifp;
10337469Ssklower 	char	snh_dhost[6];
10437469Ssklower 	char	snh_shost[6];
10537469Ssklower 	short	snh_flags;
10637469Ssklower };
10736394Ssklower #ifdef KERNEL
10836394Ssklower struct iso_ifaddr	*iso_ifaddr;	/* linked list of iso address ifaces */
10937469Ssklower struct iso_ifaddr	*iso_localifa();	/* linked list of iso address ifaces */
11036394Ssklower struct ifqueue 		clnlintrq;		/* clnl packet input queue */
11160359Sbostic #endif /* KERNEL */
112