brintos

brintos / linux-shallow public Read only

0
0
Text · 1.9 KiB · 4a03b89 Raw
62 lines · c
1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */2#ifndef _UAPI_VSOCKMON_H3#define _UAPI_VSOCKMON_H4 5#include <linux/virtio_vsock.h>6 7/*8 * vsockmon is the AF_VSOCK packet capture device.  Packets captured have the9 * following layout:10 *11 *   +-----------------------------------+12 *   |           vsockmon header         |13 *   |      (struct af_vsockmon_hdr)     |14 *   +-----------------------------------+15 *   |          transport header         |16 *   | (af_vsockmon_hdr->len bytes long) |17 *   +-----------------------------------+18 *   |              payload              |19 *   |       (until end of packet)       |20 *   +-----------------------------------+21 *22 * The vsockmon header is a transport-independent description of the packet.23 * It duplicates some of the information from the transport header so that24 * no transport-specific knowledge is necessary to process packets.25 *26 * The transport header is useful for low-level transport-specific packet27 * analysis.  Transport type is given in af_vsockmon_hdr->transport and28 * transport header length is given in af_vsockmon_hdr->len.29 *30 * If af_vsockmon_hdr->op is AF_VSOCK_OP_PAYLOAD then the payload follows the31 * transport header.  Other ops do not have a payload.32 */33 34struct af_vsockmon_hdr {35	__le64 src_cid;36	__le64 dst_cid;37	__le32 src_port;38	__le32 dst_port;39	__le16 op;			/* enum af_vsockmon_op */40	__le16 transport;		/* enum af_vsockmon_transport */41	__le16 len;			/* Transport header length */42	__u8 reserved[2];43};44 45enum af_vsockmon_op {46	AF_VSOCK_OP_UNKNOWN = 0,47	AF_VSOCK_OP_CONNECT = 1,48	AF_VSOCK_OP_DISCONNECT = 2,49	AF_VSOCK_OP_CONTROL = 3,50	AF_VSOCK_OP_PAYLOAD = 4,51};52 53enum af_vsockmon_transport {54	AF_VSOCK_TRANSPORT_UNKNOWN = 0,55	AF_VSOCK_TRANSPORT_NO_INFO = 1,	/* No transport information */56 57	/* Transport header type: struct virtio_vsock_hdr */58	AF_VSOCK_TRANSPORT_VIRTIO = 2,59};60 61#endif62