Lines Matching +full:smc +full:- +full:id
1 /* SPDX-License-Identifier: GPL-2.0 */
3 * Shared Memory Communications over RDMA (SMC-R) and RoCE
17 #include <linux/smc.h>
19 #include "smc.h"
27 #define SMC_TYPE_R 0 /* SMC-R only */
28 #define SMC_TYPE_D 1 /* SMC-D only */
29 #define SMC_TYPE_N 2 /* neither SMC-R nor SMC-D */
30 #define SMC_TYPE_B 3 /* SMC-R and SMC-D */
37 #define SMC_CLC_DECL_PEERNOSMC 0x03010000 /* peer did not indicate SMC */
39 #define SMC_CLC_DECL_NOSMCDEV 0x03030000 /* no SMC device found (R or D) */
40 #define SMC_CLC_DECL_NOSMCDDEV 0x03030001 /* no SMC-D device found */
41 #define SMC_CLC_DECL_NOSMCRDEV 0x03030002 /* no SMC-R device found */
44 #define SMC_CLC_DECL_NOV2DEXT 0x03030005 /* peer sent no clc SMC-Dv2 ext. */
46 #define SMC_CLC_DECL_NOSMCD2DEV 0x03030007 /* no SMC-Dv2 device found */
51 #define SMC_CLC_DECL_MODEUNSUPP 0x03040000 /* smc modes do not match (R or D)*/
55 #define SMC_CLC_DECL_GETVLANERR 0x03080000 /* err to get vlan id of ip device*/
56 #define SMC_CLC_DECL_ISMVLANERR 0x03090000 /* err to reg vlan id on ism dev */
57 #define SMC_CLC_DECL_NOACTLINK 0x030a0000 /* no active smc-r link in lgr */
58 #define SMC_CLC_DECL_NOSRVLINK 0x030b0000 /* SMC-R link from srv not found */
59 #define SMC_CLC_DECL_VERSMISMAT 0x030c0000 /* SMC version mismatch */
60 #define SMC_CLC_DECL_MAX_DMB 0x030d0000 /* SMC-D DMB limit exceeded */
61 #define SMC_CLC_DECL_NOROUTE 0x030e0000 /* SMC-Rv2 conn. no route to peer */
62 #define SMC_CLC_DECL_NOINDIRECT 0x030f0000 /* SMC-Rv2 conn. indirect mismatch*/
92 u8 id_for_peer[SMC_SYSTEMID_LEN]; /* unique system id */
125 __be16 smcd_v2_ext_offset; /* SMC-Dv2 Extension Offset */
152 struct smc_clc_msg_smcd { /* SMC-D GID information */
154 __be16 v2_ext_offset; /* SMC Version 2 Extension Offset */
192 __be32 rmbe_alert_token; /* unique connection id */
243 u8 max_conns; /* for SMC-R only */
244 u8 max_links; /* for SMC-R only */
262 struct smcr_clc_msg_accept_confirm r0; /* SMC-R */
263 struct { /* SMC-D */
273 struct { /* SMC-R */
278 struct { /* SMC-D */
325 ((u8 *)pclc + sizeof(*pclc) + ntohs(pclc->iparea_offset)); in smc_clc_proposal_get_prefix()
349 /* get SMC-D info from proposal message */
353 if (smcd_indicated(prop->hdr.typev1) && in smc_get_clc_msg_smcd()
354 ntohs(prop->iparea_offset) != sizeof(struct smc_clc_msg_smcd)) in smc_get_clc_msg_smcd()
365 if (!prop_smcd || !ntohs(prop_smcd->v2_ext_offset)) in smc_get_clc_v2_ext()
371 sizeof(prop_smcd->v2_ext_offset) + in smc_get_clc_v2_ext()
372 ntohs(prop_smcd->v2_ext_offset)); in smc_get_clc_v2_ext()
380 if (!ntohs(prop_v2ext->hdr.smcd_v2_ext_offset)) in smc_get_clc_smcd_v2_ext()
387 sizeof(prop_v2ext->hdr.smcd_v2_ext_offset) + in smc_get_clc_smcd_v2_ext()
388 ntohs(prop_v2ext->hdr.smcd_v2_ext_offset)); in smc_get_clc_smcd_v2_ext()
397 if (clc_v2->hdr.version == SMC_V1 || in smc_get_clc_first_contact_ext()
398 !(clc_v2->hdr.typev2 & SMC_FIRST_CONTACT_MASK)) in smc_get_clc_first_contact_ext()
417 int smc_clc_wait_msg(struct smc_sock *smc, void *buf, int buflen,
419 int smc_clc_send_decline(struct smc_sock *smc, u32 peer_diag_info, u8 version);
420 int smc_clc_send_proposal(struct smc_sock *smc, struct smc_init_info *ini);
421 int smc_clc_send_confirm(struct smc_sock *smc, bool clnt_first_contact,
423 int smc_clc_send_accept(struct smc_sock *smc, bool srv_first_contact,