*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->IRIX man pages -> raw (7)              


RAW(7F)								       RAW(7F)

NAME    [Toc]    [Back]

     raw - raw network protocol	family

SYNOPSIS    [Toc]    [Back]

     #include <sys/types.h>
     #include <net/raw.h>

DESCRIPTION    [Toc]    [Back]

     The Raw protocol family is	a collection of	input decapsulation protocols
     layered atop the data link	protocol of a network interface.  The Raw
     family supports only the SOCK_RAW socket type.

   Addressing    [Toc]    [Back]
     Sockets bound to the Raw protocol family use the following	addressing
     structure,	defined	in <net/raw.h>:

	  struct sockaddr_raw {
	       u_short	      sr_family;
	       union {
		   struct {
		    u_short srl_port;
		    char srl_ifname[RAW_IFNAMSIZ];
		   } sru_local;
		   struct {
		    char srf_addr[RAW_MAXADDRLEN];
		   } sru_foreign;
	       } sr_u;

	  #define   sr_port	   sr_u.sru_local.srl_port
	  #define   sr_ifname sr_u.sru_local.srl_ifname
	  #define   sr_addr	   sr_u.sru_foreign.srf_addr

     The address format	differs	between	local and foreign usage.  A local
     AF_RAW sockaddr contains a	port, identifying the socket to	which this
     address is	bound, and the zero-padded name	of a network interface.	 If
     the address to bind contains a zeroed interface name, the primary
     interface is used.	 Port numbering	depends	on the protocol	of the socket
     being bound.  A foreign AF_RAW sockaddr contains a	link-layer destination

   Protocols    [Toc]    [Back]
     There are two protocols in	the Raw	family,	Snoop and Drain.  The Snoop
     protocol captures link-layer packets which	match a	bitfield filter	and
     transports	them to	that filter's socket.  Snoop prepends a	header
     containing	packet state, reception	sequence number, and reception time.
     The Drain protocol	receives packets having	network-layer type codes or
     encapsulations not	implemented by the kernel.

									Page 1

RAW(7F)								       RAW(7F)

     Both protocols transmit packets with a link-layer header fetched from the
     beginning of the user's write(2) or send(2) buffer.  They ignore any
     destination address supplied to sendto(2) or connect(2).  However,
     connecting	restricts input	to packets originating from the	foreign
     (connected) address.

     On	input, a protocol-specific header, the link-layer header, and packet
     data are copied to	the user's read(2) or recv(2) buffer.  All raw domain
     protocols guarantee that the offset of packet data	from the beginning of
     the user's	buffer is congruent with RAW_ALIGNGRAIN.  RAW_HDRPAD(hdrsize)
     yields the	byte-padding needed to align packet data, given	the link-layer
     header's size in bytes.

     To	gather Raw protocol family statistics, call ioctl(2) with a Snoop or
     Drain socket, the SIOCRAWSTATS command, and the address of	the following
     structure,	defined	in <net/raw.h>:

	  struct rawstats {
	       struct snoopstats {
		    u_long    ss_seq;
		    u_long    ss_ifdrops;
		    u_long    ss_sbdrops;
	       } rs_snoop;
	       struct drainstats {
		    u_long    ds_ifdrops;
		    u_long    ds_sbdrops;
	       } rs_drain;

     The ss_seq	structure member tells the current Snoop sequence number,
     which counts all packets received by the hardware,	whether	or not they
     can be decapsulated.  The ifdrops members tell how	many packets were
     dropped by	the network interface due to resource shortages	or hardware
     errors.  The sbdrops members tell how many	packets	were decapsulated by
     the network interface but dropped due to socket buffer limits.  See
     getsockopt(2) for information on socket buffer sizes and how to change

SEE ALSO    [Toc]    [Back]

     socket(2),	snoop(7P), drain(7P)

									PPPPaaaaggggeeee 2222
[ Back ]
 Similar pages
Name OS Title
ns OpenBSD Xerox Network Systems(tm) protocol family
inet FreeBSD Internet protocol family
atalk OpenBSD AppleTalk Protocol Family
inet IRIX Internet protocol family
inet OpenBSD Internet protocol family
inet Tru64 Internet Protocol family
inet6 FreeBSD Internet protocol version 6 family
unix IRIX UNIX-domain protocol family
unix OpenBSD UNIX-domain protocol family
inet6 OpenBSD Internet protocol version 6 family
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service