icmp(4)
NAME
icmp - Internet Control Message Protocol
SYNOPSIS
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int socket(AF_INET, SOCK_RAW, proto);
DESCRIPTION
- ICMP is the error and control message protocol used by IP
- and the Internet protocol family. It may be accessed through a ``raw
- socket'' for
network monitoring and diagnostic functions. The proto pa - rameter to the
socket call to create an ICMP socket is obtained from get - protobyname(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 in
- stead 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 lim
- iting of ICMP
- replies. Defaults to true.
- drop_redirect (boolean) Enable/disable dropping of
- ICMP Redirect
- packets. Defaults to false.
- log_redirect (boolean) Enable/disable logging of ICMP
- Redirect
- packets. Defaults to false.
- bmcastecho (boolean) Enable/disable ICMP replies
- received via
- broadcast 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.
ERRORS
- 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 datagram with the destination address speci
- fied and the
socket is already connected; - [ENOTCONN] when trying to send a datagram, but no
- destination
- address is specified, and the socket has
- not been connected;
- [ENOBUFS] when the system runs out of memory for an
- internal
- data structure;
- [EADDRNOTAVAIL] when an attempt is made to create a sock
- et with a net
- work address for which no network inter
- face exists.
SEE ALSO
recv(2), send(2), inet(4), intro(4), ip(4)
HISTORY
- The icmp protocol appeared in 4.3BSD.
- BSD March 21, 2003