linux/include/uapi/linux/inet_diag.h

/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_INET_DIAG_H_
#define _UAPI_INET_DIAG_H_

#include <linux/types.h>

/* Just some random number */
#define TCPDIAG_GETSOCK
#define DCCPDIAG_GETSOCK

#define INET_DIAG_GETSOCK_MAX

/* Socket identity */
struct inet_diag_sockid {};

/* Request structure */

struct inet_diag_req {};

struct inet_diag_req_v2 {};

/*
 * SOCK_RAW sockets require the underlied protocol to be
 * additionally specified so we can use @pad member for
 * this, but we can't rename it because userspace programs
 * still may depend on this name. Instead lets use another
 * structure definition as an alias for struct
 * @inet_diag_req_v2.
 */
struct inet_diag_req_raw {};

enum {};

#define INET_DIAG_REQ_MAX

/* Bytecode is sequence of 4 byte commands followed by variable arguments.
 * All the commands identified by "code" are conditional jumps forward:
 * to offset cc+"yes" or to offset cc+"no". "yes" is supposed to be
 * length of the command and its arguments.
 */
 
struct inet_diag_bc_op {};

enum {};

struct inet_diag_hostcond {};

struct inet_diag_markcond {};

/* Base info structure. It contains socket identity (addrs/ports/cookie)
 * and, alas, the information shown by netstat. */
struct inet_diag_msg {};

/* Extensions */

enum {};

#define INET_DIAG_MAX

enum {};
#define INET_ULP_INFO_MAX

/* INET_DIAG_MEM */

struct inet_diag_meminfo {};

/* INET_DIAG_SOCKOPT */

struct inet_diag_sockopt {};

/* INET_DIAG_VEGASINFO */

struct tcpvegas_info {};

/* INET_DIAG_DCTCPINFO */

struct tcp_dctcp_info {};

/* INET_DIAG_BBRINFO */

struct tcp_bbr_info {};

tcp_cc_info;
#endif /* _UAPI_INET_DIAG_H_ */