Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
ICMP(4)		       FreeBSD Kernel Interfaces Manual		       ICMP(4)

     icmp -- Internet Control Message Protocol

     #include <sys/types.h>
     #include <sys/socket.h>
     #include <netinet/in.h>

     socket(AF_INET, SOCK_RAW, proto);

     ICMP is the error and control message protocol used by IP and the Inter-
     net protocol family.  It may be accessed through a	``raw socket'' for
     network monitoring	and diagnostic functions.  The proto parameter to the
     socket call to create an ICMP socket is obtained from getprotobyname(3).
     ICMP sockets are connectionless, and are normally used with the sendto(2)
     and recvfrom(2) calls, though the connect(2) call may also	be used	to fix
     the destination for future	packets	(in which case the read(2) or recv(2)
     and write(2) or send(2) system calls may be used).

     Outgoing packets automatically have an IP header prepended	to them	(based
     on	the destination	address).  Incoming packets are	received with the IP
     header and	options	intact.

   MIB Variables
     The ICMP protocol implements a number of variables	in the net.inet.icmp
     branch of the sysctl(3) MIB.

     maskrepl	     (boolean) Enable/disable replies to ICMP Address Mask
		     Request packets.  Defaults	to false.

     maskfake	     (unsigned integer)	When maskrepl is set and this value is
		     non-zero, it will be used instead of the real address
		     mask when the system replies to an	ICMP Address Mask
		     Request packet.  Defaults to 0.

     icmplim	     (integer) Bandwidth limit for ICMP	replies	in pack-
		     ets/second.  Used when icmplim_output is non-zero.
		     Defaults to 200.

     icmplim_output  (boolean) Enable/disable bandwidth	limiting of ICMP
		     replies.  Defaults	to true.

     drop_redirect   (boolean) Enable/disable dropping of ICMP Redirect	pack-
		     ets.  Defaults to false.

     log_redirect    (boolean) Enable/disable logging of ICMP Redirect pack-
		     ets.  Defaults to false.

     bmcastecho	     (boolean) Enable/disable ICMP replies received via	broad-
		     cast or multicast.	 Defaults to false.

     reply_src	     (str) An interface	name used for the ICMP reply source in
		     response to packets which are not directly	addressed to
		     us.  By default continue with normal source selection.

     A socket operation	may fail with one of the following errors returned:

     [EISCONN]		when trying to establish a connection on a socket
			which already has one, or when trying to send a	data-
			gram with the destination address specified and	the
			socket is already connected;

     [ENOTCONN]		when trying to send a datagram,	but no destination
			address	is specified, and the socket hasn't been con-

     [ENOBUFS]		when the system	runs out of memory for an internal
			data structure;

     [EADDRNOTAVAIL]	when an	attempt	is made	to create a socket with	a net-
			work address for which no network interface exists.

     recv(2), send(2), inet(4),	intro(4), ip(4)

     The icmp protocol appeared	in 4.3BSD.

FreeBSD	11.1			March 21, 2003			  FreeBSD 11.1


Want to link to this manual page? Use this URL:

home | help