home *** CD-ROM | disk | FTP | other *** search
- /*
- * Mach Operating System
- * Copyright (c) 1987 Carnegie-Mellon University
- * All rights reserved. The CMU software License Agreement specifies
- * the terms and conditions for use and redistribution.
- *
- * Copyright (c) 1994 NeXT Computer, Inc
- */
- /*
- * HISTORY
- * 11-Jul-93 Mac Gillon (mgillon) at NeXT
- * Integrated MULTICAST support
- *
- * 26-Sep-89 Morris Meyer (mmeyer) at NeXT
- * NFS 4.0 Changes: Back out statistics gathering support.
- *
- * 13-Aug-87 Peter King (king) at NeXT
- * SUN_RPC: Added rcb_cc and rcb_mbcnt for statistics gathering.
- * Added RAW_TALLY flag to turn on statistics gathering
- */
-
- /*
- * Copyright (c) 1980, 1986 Regents of the University of California.
- * All rights reserved. The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
- *
- * @(#)raw_cb.h 7.3 (Berkeley) 6/27/88 plus MULTICAST 1.0
- */
-
- /* @(#)raw_cb.h 2.1 88/05/30 4.0NFSSRC SMI; from UCB 7.1 6/5/86 */
-
- /*
- * Raw protocol interface control block. Used
- * to tie a socket to the generic raw interface.
- */
- struct rawcb {
- struct rawcb *rcb_next; /* doubly linked list */
- struct rawcb *rcb_prev;
- struct socket *rcb_socket; /* back pointer to socket */
- struct sockaddr rcb_faddr; /* destination address */
- struct sockaddr rcb_laddr; /* socket's address */
- struct sockproto rcb_proto;/* protocol family, protocol */
- caddr_t rcb_pcb; /* protocol specific stuff */
- struct mbuf *rcb_options; /* protocol specific options */
- struct route rcb_route; /* routing information */
- short rcb_flags;
- #ifdef MULTICAST
- struct mbuf *rcb_moptions; /* proto specific multicast options */
- #endif
- /* SUN_RPC */
- int rcb_cc; /* bytes of rawintr queued data */
- int rcb_mbcnt; /* bytes of rawintr queued mbufs */
- /* SUN_RPC */
- };
-
- /*
- * Since we can't interpret canonical addresses,
- * we mark an address present in the flags field.
- */
- #define RAW_LADDR 01
- #define RAW_FADDR 02
- #define RAW_DONTROUTE 04 /* no routing, default */
- #define RAW_TALLY 0x08 /* tally delivered packets (SUN_RPC) */
-
- #define sotorawcb(so) ((struct rawcb *)(so)->so_pcb)
-
- /*
- * Nominal space allocated to a raw socket.
- */
- #define RAWSNDQ 2048
- #define RAWRCVQ 2048
-
- /*
- * Format of raw interface header prepended by
- * raw_input after call from protocol specific
- * input routine.
- */
- struct raw_header {
- struct sockproto raw_proto; /* format of packet */
- struct sockaddr raw_dst; /* dst address for rawintr */
- struct sockaddr raw_src; /* src address for sbappendaddr */
- };
-
- #ifdef KERNEL
- struct rawcb rawcb; /* head of list */
- #endif
-