Commit | Line | Data |
---|---|---|
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 | */ | |
18 | struct 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 |
57 | struct nspcb nspcb; /* head of list */ |
58 | struct nspcb *ns_pcblookup(); | |
886f6794 | 59 | #endif |