3.1.5.2 WDSMC_OP_INITIATE

This OpCode is used by clients to request set up of content under a multicast namespace for delivery using multicast session.

The server MUST follow the steps in the following section for setting up the content for delivery using multicast session.

  1. MUST match the value of Namespace variable to the Name property (section 3.1.1.1) of registered multicast namespaces.

  2. MUST query the content provider identified by ContentProvider property (section 3.1.1.2) for the content specified by the Content variable in the request packet to validate that client has access to content.

If the request packet includes the Cap variable, and it specifies WDSMC_CLIENT_CAP_IPV6, then if the server is capable of setting up multicast session for IPv6, the server MUST setup the multicast session using IPv6; otherwise, the server MUST set up the multicast session using IPv4.

If the client is running in a pre-OS environment (section 3.1.5.1.1), the server MUST set both the server and client security modes to WDSMCTP_SEC_CHECKSUM for the multicast session.

If the client is not running in a pre-OS environment, the server MUST set the security modes as specified for the ServerSecurityMode and ClientSecurityMode fields (section 3.1.1.3) for the multicast session. The server MUST provide both the SignKey and HashKey fields to the multicast session if required by security modes.

The server MUST query the multicast session and add the following variables to the reply packet.

TpMcAddress.Port,TpMcAddress.Address, TpUniAddress.Port, TpUniAddress.Address, SessionId, BlockSize, TotalBlocks, ContentSize

The server MUST query the associated content provider for any metadata associated with the content, and add it to the reply packet using the ContentMetadata variable. If no metadata exists for the content, the server MUST not add the ContentMetadata variable to the reply packet.

The server MUST validate that when server or client security mode is set to WDSMCTP_SEC_CHECKSUM, the request packet MUST include the Cap variable. Cap MUST specify the WDSMC_CLIENT_CAP_CHECKSUM.

If the server security mode being used by the multicast session is WDSMCTP_SEC_SIGN, then the server MUST:

  • add the SignKey field (section 3.1.1.3) to the reply packet, using the value of the SignKey variable

  • add the SymKey field (section 3.1.1.3) to the reply packet, using the value of the SymKey variable.

If the security mode (either client or server) being used by multicast session is WDSMCTP_SEC_HASH, then the server MUST add the following to the reply packet:

  • the HashKey field (section 3.1.1.3) to the reply packet using the SymKey variable.

  • the HashAlgId field (section 3.1.1.3) to the reply packet using the HashAlgId variable.

  • the HMACAlgId field (section 3.1.1.3) to the reply packet using the HMACAlgId variable.

The server MUST construct the security mode (section 2.2.1) and add it to the reply packet using the SecMode variable.

The server MUST get the user security identifier and add it to the reply packet using the UserSid variable.