xref: /csrg-svn/sys/netns/ns_pcb.h (revision 23213)
1*23213Smckusick /*
2*23213Smckusick  * Copyright (c) 1982 Regents of the University of California.
3*23213Smckusick  * All rights reserved.  The Berkeley software License Agreement
4*23213Smckusick  * specifies the terms and conditions for redistribution.
5*23213Smckusick  *
6*23213Smckusick  *	@(#)ns_pcb.h	6.2 (Berkeley) 06/08/85
7*23213Smckusick  */
821490Ssklower 
921490Ssklower /*
1021490Ssklower  * Ns protocol interface control block.
1121490Ssklower  */
1221490Ssklower struct nspcb {
1321490Ssklower 	struct	nspcb *nsp_next;	/* doubly linked list */
1421490Ssklower 	struct	nspcb *nsp_prev;
1521490Ssklower 	struct	nspcb *nsp_head;
1621490Ssklower 	struct	socket *nsp_socket;	/* back pointer to socket */
1721490Ssklower 	struct	ns_addr nsp_faddr;	/* destination address */
1821490Ssklower 	struct	ns_addr nsp_laddr;	/* socket's address */
1921490Ssklower 	caddr_t	nsp_pcb;		/* protocol specific stuff */
2021490Ssklower 	struct	route nsp_route;	/* routing information */
2121490Ssklower 	union	ns_net nsp_lastnet;	/* validate cached route for dg socks*/
2221490Ssklower 	long	nsp_notify_param;	/* extra info passed via ns_pcbnotify*/
2321490Ssklower 	short	nsp_flags;
2421490Ssklower 	u_char	nsp_dpt;		/* default packet type for idp_output*/
2521490Ssklower 	u_char	nsp_rpt;		/* last received packet type by
2621490Ssklower 								idp_input() */
2721490Ssklower };
2821490Ssklower 
2921490Ssklower /* possible flags */
3021490Ssklower 
3121490Ssklower #define NSP_IN_ABORT	0x1		/* calling abort through socket */
3221490Ssklower #define NSP_RAWIN	0x2		/* show headers on input */
3321490Ssklower #define NSP_RAWOUT	0x4		/* show header on output */
3421490Ssklower 
3521490Ssklower #define	NS_WILDCARD	1
3621490Ssklower 
3721490Ssklower #define nsp_lport nsp_laddr.x_port
3821490Ssklower #define nsp_fport nsp_faddr.x_port
3921490Ssklower 
4021490Ssklower #define	sotonspcb(so)		((struct nspcb *)((so)->so_pcb))
4121490Ssklower 
4221490Ssklower /*
4321490Ssklower  * Nominal space allocated to a ns socket.
4421490Ssklower  */
4521490Ssklower #define	NSSNDQ		2048
4621490Ssklower #define	NSRCVQ		2048
4721490Ssklower 
4821490Ssklower 
4921490Ssklower #ifdef KERNEL
5021490Ssklower extern struct nspcb nspcb;			/* head of list */
5121490Ssklower extern struct nspcb *ns_pcblookup();
5221490Ssklower #endif
53