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