---
name: "stapprobes.socket"
section: "5"
platform: "linux"
package: "systemtap"
version: "0.0.20080705-1+lenny1"
release: "Debian 5.0 (Lenny)"
platforms: ["linux"]
url: "https://new.carta.tech/stapprobes.socket"
---

# stapprobes.socket(5)

systemtap socket probe points

## NAME

stapprobes.socket - systemtap socket probe points

## DESCRIPTION

This family of probe points is used to probe socket activities. It contains the following probe points:

- **socket.send**

  Fires at the conclusion of sending a message on a socket. This probe alias includes the **socket.sendmsg.return,** **socket.aio\_write.return** and **socket.writev.return** probes (these probes should catch all messages sent on sockets).  The arguments supplied at the beginning of the send are cached and made available in this probe.

  **Context:**

  The message sender.

  **Arguments:**

  *name*\
       Name of this probe.

  *size*\
       Size of message sent (in bytes) or error code if success == 0

  *protocol*\
       Protocol used on the socket. Use sock\_prot\_num2str(protocol) \
       to convert to a string.

      Common values include:\
            0 - IP (Internet Procotol, local interprocess communications)\
            6 - TCP (Transmission Control Protocol)\
           17 - UDP (User Datagram Protocol)\
          132 - SCTP (Stream Control Transmission Protocol)

       Refer to /etc/protocols for a complete list of possible values.

  *family*\
       Protocol family of the socket (from include/linux/socket.h).\
       Use sock\_fam\_num2str(family) to convert to a string.

      Possible values are:\
           0  - UNSPEC (Unspecified)\
           1  - LOCAL (Unix domain/local sockets)\
           2  - INET (Internet Protocol (IP))\
           3  - AX25 (Amateur Radio AX.25)\
           4  - IPX (Novell IPX)\
           5  - APPLETALK (AppleTalk DDP)\
           6  - NETROM (Amateur Radio NET/ROM)\
           7  - BRIDGE (Multiprotocol bridge)\
           8  - ATMPVC (ATM PVCs)\
           9  - X25 (X.25)\
           10 - INET6 (IP version 6)\
           11 - ROSE (Amateur Radio X.25 PLP)\
           12 - DECNET (Reserved for DECnet project)\
           13 - NETBEUI (Reserved for 802.2LLC project)\
           14 - SECURITY (Security callback pseudo AF)\
           15 - KEY (key management API)\
           16 - NETLINK (Netlink protocol)\
           17 - PACKET (Packet family)\
           18 - ASH (Ash)\
           19 - ECONET (Acorn Econet)\
           20 - ATMSVC (ATM SVCs)\
           22 - SNA (Linux SNA Project)\
           23 - IRDA (IRDA sockets)\
           24 - PPP0X (PPPoX sockets)\
           25 - WANPIPE (Wanpipe API Sockets)\
           26 - LLC (Linux LLC)\
           30 - TIPC (TIPC sockets)\
           31 - BLUETOOTH (Bluetooth sockets)

  *state*\
       State of the socket.  Use sock\_state\_num2str(state) to convert\
       to a string.

      Possible values are:\
           0 - FREE (not allocated)\
           1 - UNCONNECTED (unconnected to any socket)\
           2 - CONNECTING (in the process of connecting)\
           3 - CONNECTED (connected to a socket)\
           4 - DISCONNECTING (in the process of disconnecting)

  *flags*\
       Socket flags.  Use sock\_flags\_num2str(flags) to convert\
       to a string.

      Possible values are:\
           0 - ASYNC\_NOSPACE\
           1 - ASYNC\_WAITDATA\
           2 - NOSPACE\
           3 - PASSCRED\
           4 - PASSSEC

  *type*\
       Socket type.  Use sock\_type\_num2str(type) to convert\
       to a string.

      Possible values are:\
           1  - STREAM (stream connection socket)\
           2  - DGRAM (datagram connectionless socket)\
           3  - RAW (raw socket)\
           4  - RDM (reliably-deliverd message)\
           5  - SEQPACKET (sequential packet socket)\
           6  - DCCP (datagram congestion control protocol socket)\
           10 - PACKET (Linux-specific way of getting packets at device level)

  *success*\
       Was send successful?

      Possible values are:\
           1 - Yes\
           0 - No

- **socket.receive**

  Fires at the conclusion of receiving a message on a socket. This probe alias includes the **socket.recvmsg.return,** **socket.aio\_read.return** and **socket.readv.return** probes (these probes should catch all messages received on sockets).  The arguments supplied at the beginning of the receive are cached and made available in this probe.

  **Context:**

  The message receiver.

  **Arguments:**

  Same as  **socket.send.**

- **socket.sendmsg**

  Fires when the sock\_sendmsg() kernel function is entered.

  **Context:**

  The message sender.

  **Arguments:**

  Same as  **socket.send,** with the following exceptions:

  *size*

      Size of message being sent (in bytes).

  *success*

      Not used.

- **socket.sendmsg.return**

  Fires when the sock\_sendmsg() kernel function returns.

  **Context:**

  The message sender.

  **Arguments:**

  Same as  **socket.send**

- **socket.recvmsg**

  Fires when the sock\_recvmsg() kernel function is entered.

  **Context:**

  The message receiver.

  **Arguments:**

  Same as  **socket.receive,** with the following exceptions:

  *size*

      Size of message being received (in bytes).

  *success*

      Not used.

- **socket.recvmsg.return**

  Fires when the sock\_recvmsg() kernel function returns.

  **Context:**

  The message receiver.

  **Arguments:**

  Same as  **socket.receive.**

- **socket.aio\_write**

  Fires when the sock\_aio\_write() kernel function is entered.

  **Context:**

  The message sender.

  **Arguments:**

  Same as **socket.send,** with the following exceptions:

  *size*

      Size of message being sent (in bytes).

  *success*

      Not used.

- **socket.aio\_write.return**

  Fires when the sock\_aio\_write() kernel function returns.

  **Context:**

  The message sender.

  **Arguments:**

  Same as **socket.send.**

- **socket.aio\_read**

  Fires when the sock\_aio\_read() kernel function is entered.

  **Context:**

  The message receiver.

  **Arguments:**

  Same as  **socket.receive,** with the following exceptions:

  *size*

      Size of message being received (in bytes).

  *success*

      Not used.

- **socket.aio\_read.return**

  Fires when the sock\_aio\_read() kernel function returns.

  **Context:**

  The message receiver.

  **Arguments:**

  Same as **socket.receive.**

- **socket.writev**

  Fires when the sock\_writev() kernel function is entered.

  **Context:**

  The message sender.

  **Arguments:**

  Same as **socket.send,** with the following exceptions:

  *size*

      Size of message being sent (in bytes).

  *success*

      Not used.

- **socket.writev.return**

  Fires when the sock\_writev() kernel function returns.

  **Context:**

  The message sender.

  **Arguments:**

  Same as **socket.send.**

- **socket.readv**

  Fires when the sock\_readv() kernel function is entered.

  **Context:**

  The message receiver.

  **Arguments:**

  Same as  **socket.receive,** with the following exceptions:

  *size*

      Size of message being received (in bytes).

  *success*

      Not used.

- **socket.readv.return**

  Fires when the sock\_readv() kernel function returns.

  **Context:**

  The message receiver.

  **Arguments:**

  Same as **socket.receive.**

- **socket.create**

  Fires at the beginning of creating a socket.

  **Context:**

  The socket creator.

  **Arguments:**

  *name*\
   *protocol*\
   *family*\
   *type*\
       See  **socket.send.**

  *requester*\
       Requester type.

      Possible values are:\
           1 - kernel\
           0 - user

- **socket.create.return**

  Fires at the end of creating a socket.

  **Context:**

  The socket creator.

  **Arguments:**

  Same as  **socket.create,** plus:

  *err*\
       Return code.

      Possible values are:\
           0 - success\
         \< 0 - error

  *success*\
       Was the socket created successfully?

      Possible values are:\
           1 - Yes\
           0 - No

- **socket.close**

  Fires at the beginning of closing a socket.

  **Context:**

  The socket closer.

  **Arguments:**

  *name*\
   *protocol*\
   *family*\
   *state*\
   *flags*\
   *type*\
       See **socket.send.**

- **socket.close.return**

  Fires at the end of closing a socket.

  **Context:**

  The socket closer.

  **Arguments:**

  *name*\
       Name of this probe.

## SEE ALSO

[*stap*(1)](/stap/1.md), [*stapprobes*(5)](/stapprobes/5.md), [*stapfuncs*(5)](/stapfuncs/5.md)
