1 /*
2  * This file is auto-generated. Modifications will be lost.
3  *
4  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5  * for more information.
6  */
7 #ifndef _UAPI_SMC_DIAG_H_
8 #define _UAPI_SMC_DIAG_H_
9 #include <linux/types.h>
10 #include <linux/inet_diag.h>
11 #include <rdma/ib_user_verbs.h>
12 struct smc_diag_req {
13   __u8 diag_family;
14   __u8 pad[2];
15   __u8 diag_ext;
16   struct inet_diag_sockid id;
17 };
18 struct smc_diag_msg {
19   __u8 diag_family;
20   __u8 diag_state;
21   union {
22     __u8 diag_mode;
23     __u8 diag_fallback;
24   };
25   __u8 diag_shutdown;
26   struct inet_diag_sockid id;
27   __u32 diag_uid;
28   __aligned_u64 diag_inode;
29 };
30 enum {
31   SMC_DIAG_MODE_SMCR,
32   SMC_DIAG_MODE_FALLBACK_TCP,
33   SMC_DIAG_MODE_SMCD,
34 };
35 enum {
36   SMC_DIAG_NONE,
37   SMC_DIAG_CONNINFO,
38   SMC_DIAG_LGRINFO,
39   SMC_DIAG_SHUTDOWN,
40   SMC_DIAG_DMBINFO,
41   SMC_DIAG_FALLBACK,
42   __SMC_DIAG_MAX,
43 };
44 #define SMC_DIAG_MAX (__SMC_DIAG_MAX - 1)
45 struct smc_diag_cursor {
46   __u16 reserved;
47   __u16 wrap;
48   __u32 count;
49 };
50 struct smc_diag_conninfo {
51   __u32 token;
52   __u32 sndbuf_size;
53   __u32 rmbe_size;
54   __u32 peer_rmbe_size;
55   struct smc_diag_cursor rx_prod;
56   struct smc_diag_cursor rx_cons;
57   struct smc_diag_cursor tx_prod;
58   struct smc_diag_cursor tx_cons;
59   __u8 rx_prod_flags;
60   __u8 rx_conn_state_flags;
61   __u8 tx_prod_flags;
62   __u8 tx_conn_state_flags;
63   struct smc_diag_cursor tx_prep;
64   struct smc_diag_cursor tx_sent;
65   struct smc_diag_cursor tx_fin;
66 };
67 struct smc_diag_linkinfo {
68   __u8 link_id;
69   __u8 ibname[IB_DEVICE_NAME_MAX];
70   __u8 ibport;
71   __u8 gid[40];
72   __u8 peer_gid[40];
73 };
74 struct smc_diag_lgrinfo {
75   struct smc_diag_linkinfo lnk[1];
76   __u8 role;
77 };
78 struct smc_diag_fallback {
79   __u32 reason;
80   __u32 peer_diagnosis;
81 };
82 struct smcd_diag_dmbinfo {
83   __u32 linkid;
84   __aligned_u64 peer_gid;
85   __aligned_u64 my_gid;
86   __aligned_u64 token;
87   __aligned_u64 peer_token;
88   __aligned_u64 peer_gid_ext;
89   __aligned_u64 my_gid_ext;
90 };
91 #endif
92