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