date and time created 88/03/30 14:46:14 by bostic
[unix-history] / usr / src / sys / netns / ns_pcb.h
CommitLineData
8ae0e4b4 1/*
240edf1f
KS
2 * Copyright (c) 1984, 1985, 1986, 1987 Regents of the University of California.
3 * All rights reserved.
8ae0e4b4 4 *
240edf1f
KS
5 * Redistribution and use in source and binary forms are permitted
6 * provided that this notice is preserved and that due credit is given
7 * to the University of California at Berkeley. The name of the University
8 * may not be used to endorse or promote products derived from this
9 * software without specific prior written permission. This software
10 * is provided ``as is'' without express or implied warranty.
11 *
12 * @(#)ns_pcb.h 7.2 (Berkeley) %G%
8ae0e4b4 13 */
886f6794
KS
14
15/*
16 * Ns protocol interface control block.
17 */
18struct nspcb {
19 struct nspcb *nsp_next; /* doubly linked list */
20 struct nspcb *nsp_prev;
21 struct nspcb *nsp_head;
22 struct socket *nsp_socket; /* back pointer to socket */
23 struct ns_addr nsp_faddr; /* destination address */
24 struct ns_addr nsp_laddr; /* socket's address */
25 caddr_t nsp_pcb; /* protocol specific stuff */
26 struct route nsp_route; /* routing information */
8f55df45 27 struct ns_addr nsp_lastdst; /* validate cached route for dg socks*/
886f6794
KS
28 long nsp_notify_param; /* extra info passed via ns_pcbnotify*/
29 short nsp_flags;
30 u_char nsp_dpt; /* default packet type for idp_output*/
31 u_char nsp_rpt; /* last received packet type by
32 idp_input() */
33};
34
35/* possible flags */
36
37#define NSP_IN_ABORT 0x1 /* calling abort through socket */
38#define NSP_RAWIN 0x2 /* show headers on input */
39#define NSP_RAWOUT 0x4 /* show header on output */
d78d120a 40#define NSP_ALL_PACKETS 0x8 /* Turn off higher proto processing */
886f6794
KS
41
42#define NS_WILDCARD 1
43
44#define nsp_lport nsp_laddr.x_port
45#define nsp_fport nsp_faddr.x_port
46
47#define sotonspcb(so) ((struct nspcb *)((so)->so_pcb))
48
49/*
50 * Nominal space allocated to a ns socket.
51 */
52#define NSSNDQ 2048
53#define NSRCVQ 2048
54
55
56#ifdef KERNEL
58bca61d
MK
57struct nspcb nspcb; /* head of list */
58struct nspcb *ns_pcblookup();
886f6794 59#endif