xref: /aosp_15_r20/external/strace/linux/smc_diag.h (revision cf84ac9a129d8ea9952db616b4e9b904c4bdde56)
1*cf84ac9aSAndroid Build Coastguard Worker #ifndef STRACE_LINUX_SMC_DIAG_H
2*cf84ac9aSAndroid Build Coastguard Worker #define STRACE_LINUX_SMC_DIAG_H
3*cf84ac9aSAndroid Build Coastguard Worker 
4*cf84ac9aSAndroid Build Coastguard Worker #include <linux/inet_diag.h>
5*cf84ac9aSAndroid Build Coastguard Worker 
6*cf84ac9aSAndroid Build Coastguard Worker #include "gcc_compat.h"
7*cf84ac9aSAndroid Build Coastguard Worker 
8*cf84ac9aSAndroid Build Coastguard Worker /* Request structure */
9*cf84ac9aSAndroid Build Coastguard Worker struct smc_diag_req {
10*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t diag_family;
11*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t pad[2];
12*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t diag_ext;		/* Query extended information */
13*cf84ac9aSAndroid Build Coastguard Worker 	struct inet_diag_sockid	id;
14*cf84ac9aSAndroid Build Coastguard Worker };
15*cf84ac9aSAndroid Build Coastguard Worker 
16*cf84ac9aSAndroid Build Coastguard Worker struct smc_diag_msg {
17*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t diag_family;
18*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t diag_state;
19*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t diag_fallback;
20*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t diag_shutdown;
21*cf84ac9aSAndroid Build Coastguard Worker 	struct inet_diag_sockid id;
22*cf84ac9aSAndroid Build Coastguard Worker 
23*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t diag_uid;
24*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t diag_inode;
25*cf84ac9aSAndroid Build Coastguard Worker };
26*cf84ac9aSAndroid Build Coastguard Worker 
27*cf84ac9aSAndroid Build Coastguard Worker /* Extensions */
28*cf84ac9aSAndroid Build Coastguard Worker enum {
29*cf84ac9aSAndroid Build Coastguard Worker 	SMC_DIAG_NONE,
30*cf84ac9aSAndroid Build Coastguard Worker 	SMC_DIAG_CONNINFO,
31*cf84ac9aSAndroid Build Coastguard Worker 	SMC_DIAG_LGRINFO,
32*cf84ac9aSAndroid Build Coastguard Worker 	SMC_DIAG_SHUTDOWN,
33*cf84ac9aSAndroid Build Coastguard Worker 	SMC_DIAG_DMBINFO,
34*cf84ac9aSAndroid Build Coastguard Worker 	SMC_DIAG_FALLBACK,
35*cf84ac9aSAndroid Build Coastguard Worker };
36*cf84ac9aSAndroid Build Coastguard Worker 
37*cf84ac9aSAndroid Build Coastguard Worker /* SMC_DIAG_CONNINFO */
38*cf84ac9aSAndroid Build Coastguard Worker struct smc_diag_cursor {
39*cf84ac9aSAndroid Build Coastguard Worker 	uint16_t reserved;
40*cf84ac9aSAndroid Build Coastguard Worker 	uint16_t wrap;
41*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t count;
42*cf84ac9aSAndroid Build Coastguard Worker };
43*cf84ac9aSAndroid Build Coastguard Worker 
44*cf84ac9aSAndroid Build Coastguard Worker struct smc_diag_conninfo {
45*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t		token;
46*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t		sndbuf_size;
47*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t		rmbe_size;
48*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t		peer_rmbe_size;
49*cf84ac9aSAndroid Build Coastguard Worker 	struct smc_diag_cursor	rx_prod;
50*cf84ac9aSAndroid Build Coastguard Worker 	struct smc_diag_cursor	rx_cons;
51*cf84ac9aSAndroid Build Coastguard Worker 	struct smc_diag_cursor	tx_prod;
52*cf84ac9aSAndroid Build Coastguard Worker 	struct smc_diag_cursor	tx_cons;
53*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t			rx_prod_flags;
54*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t			rx_conn_state_flags;
55*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t			tx_prod_flags;
56*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t			tx_conn_state_flags;
57*cf84ac9aSAndroid Build Coastguard Worker 	struct smc_diag_cursor	tx_prep;
58*cf84ac9aSAndroid Build Coastguard Worker 	struct smc_diag_cursor	tx_sent;
59*cf84ac9aSAndroid Build Coastguard Worker 	struct smc_diag_cursor	tx_fin;
60*cf84ac9aSAndroid Build Coastguard Worker };
61*cf84ac9aSAndroid Build Coastguard Worker 
62*cf84ac9aSAndroid Build Coastguard Worker /* SMC_DIAG_LINKINFO */
63*cf84ac9aSAndroid Build Coastguard Worker struct smc_diag_linkinfo {
64*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t link_id;
65*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t ibname[64]; /* IB_DEVICE_NAME_MAX */
66*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t ibport;
67*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t gid[40];
68*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t peer_gid[40];
69*cf84ac9aSAndroid Build Coastguard Worker };
70*cf84ac9aSAndroid Build Coastguard Worker 
71*cf84ac9aSAndroid Build Coastguard Worker /* SMC_DIAG_LGRINFO */
72*cf84ac9aSAndroid Build Coastguard Worker struct smc_diag_lgrinfo {
73*cf84ac9aSAndroid Build Coastguard Worker 	struct smc_diag_linkinfo lnk[1];
74*cf84ac9aSAndroid Build Coastguard Worker 	uint8_t role;
75*cf84ac9aSAndroid Build Coastguard Worker };
76*cf84ac9aSAndroid Build Coastguard Worker 
77*cf84ac9aSAndroid Build Coastguard Worker /* SMC_DIAG_DMBINFO */
78*cf84ac9aSAndroid Build Coastguard Worker struct smcd_diag_dmbinfo {
79*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t linkid;
80*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t ATTRIBUTE_ALIGNED(8) peer_gid;
81*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t ATTRIBUTE_ALIGNED(8) my_gid;
82*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t ATTRIBUTE_ALIGNED(8) token;
83*cf84ac9aSAndroid Build Coastguard Worker 	uint64_t ATTRIBUTE_ALIGNED(8) peer_token;
84*cf84ac9aSAndroid Build Coastguard Worker };
85*cf84ac9aSAndroid Build Coastguard Worker 
86*cf84ac9aSAndroid Build Coastguard Worker /* SMC_DIAG_FALLBACK */
87*cf84ac9aSAndroid Build Coastguard Worker struct smc_diag_fallback {
88*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t reason;
89*cf84ac9aSAndroid Build Coastguard Worker 	uint32_t peer_diagnosis;
90*cf84ac9aSAndroid Build Coastguard Worker };
91*cf84ac9aSAndroid Build Coastguard Worker 
92*cf84ac9aSAndroid Build Coastguard Worker #endif /* !STRACE_LINUX_SMC_DIAG_H */
93