On 12/12/2023 09:52, Wen Gu wrote:
> The fourth edition of SMCv2 adds the SMC version 2.1 feature updates for
> SMC-Dv2 with virtual ISM. Virtual ISM are created and supported mainly by
> OS or hypervisor software, comparable to IBM ISM which is based on platform
> firmware or hardware.
>
> With the introduction of virtual ISM, SMCv2.1 makes some updates:
>
> - Introduce feature bitmask to indicate supplemental features.
> - Reserve a range of CHIDs for virtual ISM.
> - Support extended GIDs (128 bits) in CLC handshake.
>
> So this patch set aims to implement these updates in Linux kernel. And it
> acts as the first part of SMC-D virtual ISM extension & loopback-ism [1].
>
> [1] https://lore.kernel.org/netdev/[email protected]/
Also there was a typo in the
[email protected]
Fixed it on this Mail.
Sorry for the noise.
>
> v6->v5:
> - Add 'Reviewed-by' label given in the previous versions:
> * Patch #4, #6, #9, #10 have nothing changed since v3;
> - Patch #2:
> * fix the format issue (Alignment should match open parenthesis) compared to v5;
> * remove useless clc->hdr.length assignment in smcr_clc_prep_confirm_accept()
> compared to v5;
> - Patch #3: new added compared to v5.
> - Patch #7: some minor changes like aclc_v2->aclc or clc_v2->clc compared to v5
> due to the introduction of Patch #3. Since there were no major changes, I kept
> the 'Reviewed-by' label.
>
> Other changes in previous versions but not yet acked:
> - Patch #1: Some minor changes in subject and fix the format issue
> (length exceeds 80 columns) compared to v3.
> - Patch #5: removes useless ini->feature_mask assignment in __smc_connect()
> and smc_listen_v2_check() compared to v4.
> - Patch #8: new added, compared to v3.
>
> v5->v4:
> - Patch #6: improve the comment of SMCD_CLC_MAX_V2_GID_ENTRIES;
> - Patch #4: remove useless ini->feature_mask assignment;
>
> v4->v3:
> - Patch #6: use SMCD_CLC_MAX_V2_GID_ENTRIES to indicate the max gid
> entries in CLC proposal and using SMC_MAX_V2_ISM_DEVS to indicate the
> max devices to propose;
> - Patch #6: use i and i+1 in smc_find_ism_v2_device_serv();
> - Patch #2: replace the large if-else block in smc_clc_send_confirm_accept()
> with 2 subfunctions;
> - Fix missing byte order conversion of GID and token in CLC handshake,
> which is in a separate patch sending to net:
> https://lore.kernel.org/netdev/[email protected]/
> - Patch #7: add extended GID in SMC-D lgr netlink attribute;
>
> v3->v2:
> - Rename smc_clc_fill_fce as smc_clc_fill_fce_v2x;
> - Remove ISM_IDENT_MASK from drivers/s390/net/ism.h;
> - Add explicitly assigning 'false' to ism_v2_capable in ism_dev_init();
> - Remove smc_ism_set_v2_capable() helper for now, and introduce it in
> later loopback-ism implementation;
>
> v2->v1:
> - Fix sparse complaint;
> - Rebase to the latest net-next;
>
> Wen Gu (10):
> net/smc: rename some 'fce' to 'fce_v2x' for clarity
> net/smc: introduce sub-functions for smc_clc_send_confirm_accept()
> net/smc: unify the structs of accept or confirm message for v1 and v2
> net/smc: support SMCv2.x supplemental features negotiation
> net/smc: introduce virtual ISM device support feature
> net/smc: define a reserved CHID range for virtual ISM devices
> net/smc: compatible with 128-bits extended GID of virtual ISM device
> net/smc: support extended GID in SMC-D lgr netlink attribute
> net/smc: disable SEID on non-s390 archs where virtual ISM may be used
> net/smc: manage system EID in SMC stack instead of ISM driver
>
> drivers/s390/net/ism.h | 7 -
> drivers/s390/net/ism_drv.c | 57 +++-----
> include/linux/ism.h | 1 -
> include/net/smc.h | 16 ++-
> include/uapi/linux/smc.h | 2 +
> include/uapi/linux/smc_diag.h | 2 +
> net/smc/af_smc.c | 116 +++++++++------
> net/smc/smc.h | 10 +-
> net/smc/smc_clc.c | 318 +++++++++++++++++++++++++-----------------
> net/smc/smc_clc.h | 58 ++++----
> net/smc/smc_core.c | 37 +++--
> net/smc/smc_core.h | 18 ++-
> net/smc/smc_diag.c | 9 +-
> net/smc/smc_ism.c | 50 +++++--
> net/smc/smc_ism.h | 30 +++-
> net/smc/smc_pnet.c | 4 +-
> 16 files changed, 445 insertions(+), 290 deletions(-)
>