This document is no longer being updated. For the latest information about Apple SDKs, visit the documentation website .

Support for Apple’s F_FULLFSYNC extension to the SMB2 FLUSH command. For more information, see the Supporting the F_FULLFSYNC Extension section below.

Support for Bonjour discovery. For more information, see the Advertising Time Machine Availabilty Through Bonjour section below.

Handling of SMB2_CREATE_DURABLE_HANDLE_REQUEST_V2 requests, including the Timeout field. For more information, see the Supporting the Timeout Field in SMB2_CREATE_DURABLE_HANDLE_REQUEST_V2 Requests section below.

Time Machine is a technology for backing up computers to local and network volumes. This document describes the requirements for SMB servers to support Time Machine backups. These requirements are as follows:

The server must correctly honor the Timeout field of SMB2_CREATE_DURABLE_HANDLE_REQUEST_V2 requests. Time Machine clients may set timeouts as short as 30 seconds or less. The Timeout field in the server’s response must be set to indicate the amount of time the server will wait for a reconnect after a failover for this particular file.

Advertising Time Machine Availability Through Bonjour

Bonjour, also known as zero-configuration networking, enables automatic discovery of devices and services on a local network using industry-standard IP protocols. SMB servers with a Time Machine share point must advertise themselves through Bonjour as supporting Time Machine backups over SMB. This is required for the server to show up automatically in Time Machine’s preference pane when a user clicks the Select Disk button.

Each network storage server must indicate that SMB share points are available on the server by registering and publishing an mDNS server record with type _smb._tcp and port 445. Each network storage server must also advertise that these SMB share points are available to clients for Time Machine backups by registering and publishing an mDNS service record with a type _adisk._tcp . The _smb._tcp and _adisk._tcp services must be advertised using the same service name.

The _adisk._tcp service includes a TXT record with entries that correspond to an exported volume available for sharing. The name portion of each entry is a unique key string. The value portion of each entry is a comma-separated list of subkey–subvalue pairs with the subkey and subvalue separated by an equal sign ( = ). Each subkey is a 4-character property code (for example, adVN for the name of the volume). The subvalue is the UTF-8 text associated with the specified property. Commas ( , ) and backslashes ( \ ) are escaped with a backslash (for example, \, for a literal comma character).

The adVN and adVF property codes are required to advertise Time Machine availability through Bonjour.

Table 1-1 Property codes to advertise Time Machine availability Property code Associated text adVN UTF-8 name for the volume. This is also the share name used for mounting the volume. adVF AirDiskVolumeFlags as a hex value string.

Set the AirDiskVolumeFlags subvalue to 0x82 to indicate that Time Machine is supported on this SMB volume.

Table 1-2 AirDiskVolumeFlags for Time Machine support adVF value Meaning 0x0002 SMB is supported on this volume. 0x0080 Time Machine should allow this SMB volume as a backup destination.