[cifs-protocol] [EXTERNAL] Re: Question #3 - Trying to let a Windows client use MS-SWN against a samba cluster

Sreekanth Nadendla srenaden at microsoft.com
Mon Dec 4 17:50:21 UTC 2023


Hi Metze, I've verified this and agree with your assessment. A doc change request was submitted and I'll share the draft with you as soon as it is available.


Regards,

Sreekanth Nadendla

Microsoft Windows Open Specifications



________________________________
From: Stefan Metzmacher <metze at samba.org>
Sent: Tuesday, November 21, 2023 7:32 AM
To: Sreekanth Nadendla <srenaden at microsoft.com>
Cc: cifs-protocol at lists.samba.org <cifs-protocol at lists.samba.org>
Subject: [EXTERNAL] Re: Question #3 - Trying to let a Windows client use MS-SWN against a samba cluster

Hi Sreekanth,

can we please keep cifs-protocol at lists.samba.org cc'ed?

> in your question #3 below, are you saying that client requests for witness registration occurs as long as the capability bits SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY and SMB2_SHARE_CAP_CLUSTER are set ?
>
> In that case which part of the following section is incorrect ?

see the following:

> Note that we have to know if SMB2_SHARE_CAP_ASYMMETRIC bit is set to determine whether a TREE_CONNECT request needs to be sent as mentioned in this section.
>
>
>
> 3.2.5.5 Receiving an SMB2 TREE_CONNECT Response
>
>     ...
>
>     - TreeConnect.IsCAShare MUST be set to TRUE, if the
>       SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY bit is set in the Capabilities
>       field of the response.

I quoted this only to show that SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY
has some side effects not related to witness registrations.
See section 3.2.4.3.5 Application Requests Creating a File Opened for Durable Operation.

>     ...
>
>     If Connection.Dialect belongs to the SMB 3.x dialect family and the Capabilities
>     field in the response includes SMB2_SHARE_CAP_CLUSTER bit, the client SHOULD
>     invoke the event as specified in [MS-SWN] section 3.2.4.1 by providing
>     Connection.ServerName as Netname parameter.

This states the SMB2_SHARE_CAP_CLUSTER alone triggers the witness registration,
but it doesn't happen, the Windows Server 2022 (as client) only tries
the witness registration when SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY and SMB2_SHARE_CAP_CLUSTER
are both set together.

>     ...
>
>     If Connection.Dialect belongs to the SMB 3.x dialect family and the Capabilities
>     field in the response includes the SMB2_SHARE_CAP_SCALEOUT bit, the client MUST
>     set TreeConnect.IsScaleoutShare to TRUE.

This was mainly quoted to show the interaction with section
3.2.4.27 Application Notifies Offline Status of a Server
and question 7...

>     ...
>
>     If Connection.Dialect is "3.0.2" or "3.1.1" and the Capabilities field in the
>     response includes the SMB2_SHARE_CAP_ASYMMETRIC bit, the client MUST verify
>     whether both of the following conditions are true:


I missed the following:

      - Connection.SessionTable contains only one entry.

      - Session.TreeConnectTable contains only one entry.

     If either of the preceding conditions is FALSE, the client MUST perform the following:

     -  Disconnect the tree connection as specified in section 3.2.4.22.

>       ...
>
>       If the SMB2 TREE_CONNECT request is successful, the client SHOULD invoke the
>       event as specified in [MS-SWN] section 3.2.4.1 by providing
>       Connection.ServerName as the Netname parameter and TreeConnect.ShareName as the
>       ShareName parameter, and by setting the IsShareNameNotificationRequired
>       parameter to TRUE.

I only tested with a single share connection.
I just retested with connections to more than one share
and I'm now seeing witness registrations for each share.

So SMB2_SHARE_CAP_ASYMMETRIC does alter the behavior,
but it has no effect without SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITY
and SMB2_SHARE_CAP_CLUSTER.

Thanks!
metze
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.samba.org/pipermail/cifs-protocol/attachments/20231204/44e6d022/attachment.htm>


More information about the cifs-protocol mailing list