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