xref: /csrg-svn/sys/netns/ns_pcb.h (revision 63231)
123213Smckusick /*
2*63231Sbostic  * Copyright (c) 1984, 1985, 1986, 1987, 1993
3*63231Sbostic  *	The Regents of the University of California.  All rights reserved.
423213Smckusick  *
544506Sbostic  * %sccs.include.redist.c%
633371Ssklower  *
7*63231Sbostic  *	@(#)ns_pcb.h	8.1 (Berkeley) 06/10/93
823213Smckusick  */
921490Ssklower 
1021490Ssklower /*
1121490Ssklower  * Ns protocol interface control block.
1221490Ssklower  */
1321490Ssklower struct nspcb {
1421490Ssklower 	struct	nspcb *nsp_next;	/* doubly linked list */
1521490Ssklower 	struct	nspcb *nsp_prev;
1621490Ssklower 	struct	nspcb *nsp_head;
1721490Ssklower 	struct	socket *nsp_socket;	/* back pointer to socket */
1821490Ssklower 	struct	ns_addr nsp_faddr;	/* destination address */
1921490Ssklower 	struct	ns_addr nsp_laddr;	/* socket's address */
2021490Ssklower 	caddr_t	nsp_pcb;		/* protocol specific stuff */
2121490Ssklower 	struct	route nsp_route;	/* routing information */
2225040Ssklower 	struct	ns_addr nsp_lastdst;	/* validate cached route for dg socks*/
2321490Ssklower 	long	nsp_notify_param;	/* extra info passed via ns_pcbnotify*/
2421490Ssklower 	short	nsp_flags;
2521490Ssklower 	u_char	nsp_dpt;		/* default packet type for idp_output*/
2621490Ssklower 	u_char	nsp_rpt;		/* last received packet type by
2721490Ssklower 								idp_input() */
2821490Ssklower };
2921490Ssklower 
3021490Ssklower /* possible flags */
3121490Ssklower 
3221490Ssklower #define NSP_IN_ABORT	0x1		/* calling abort through socket */
3321490Ssklower #define NSP_RAWIN	0x2		/* show headers on input */
3421490Ssklower #define NSP_RAWOUT	0x4		/* show header on output */
3524045Ssklower #define NSP_ALL_PACKETS	0x8		/* Turn off higher proto processing */
3621490Ssklower 
3721490Ssklower #define	NS_WILDCARD	1
3821490Ssklower 
3921490Ssklower #define nsp_lport nsp_laddr.x_port
4021490Ssklower #define nsp_fport nsp_faddr.x_port
4121490Ssklower 
4221490Ssklower #define	sotonspcb(so)		((struct nspcb *)((so)->so_pcb))
4321490Ssklower 
4421490Ssklower /*
4521490Ssklower  * Nominal space allocated to a ns socket.
4621490Ssklower  */
4721490Ssklower #define	NSSNDQ		2048
4821490Ssklower #define	NSRCVQ		2048
4921490Ssklower 
5021490Ssklower 
5121490Ssklower #ifdef KERNEL
5228958Skarels struct	nspcb nspcb;			/* head of list */
5328958Skarels struct	nspcb *ns_pcblookup();
5421490Ssklower #endif
55