Internet control message protocol
s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
fd = open(_PATH_ICMP, flags);
ICMPv4 is the error and control message (or device)
protocol used by IPv4 and the Internet protocol
family. It may be accessed through a ``raw socket''
for network monitoring and diagnostic functions.
ICMPv4 sockets are connectionless, and are normally
used with the sendto and recvfrom
call may also be used to fix the destination for future
packets (in which case the
system calls may be used).
Outgoing packets automatically have an IPv4 header
prepended to them (based on the destination address).
Incoming packets are received with the IPv4 header
and options intact.
driver can also be accessed by opening _PATH_ICMP directly.
Networking statistics can be gathered by issuing an
ioctl directive to the driver.
The following STREAMS
requests, defined in
are supported by the
statistics structure. The argument passed to the
call is a pointer to an
To set the
associated with that end-point as a management
(to distinguish it from others when network statistics are gathered).
A socket operation may fail with one of the following errors returned:
The errno is set to the following value upon the
failure of the ioctl operation:
when an attempt is made to create a
socket with a network address for which no network interface exists.
when trying to establish a connection on a socket which
already has one, or when trying to send a datagram with the destination
address specified and the socket is already connected.
when the system runs out of memory for
an internal data structure.
when the system runs out of STREAMS resources.
when trying to send a datagram, but
no destination address is specified, and the socket has not been
when an invalid argument is passed to the driver.
``Internet Control Message Protocol Version 4 (ICMPv4) parameters''
RFC 792, RFC 950
© 2005 The SCO Group, Inc. All rights reserved.
SCO OpenServer Release 6.0.0 - 01 June 2005