- •TABLE OF CONTENTS
- •1.1 Motivation
- •1.2 Design Goals
- •1.3 Objective of the Specification
- •1.4 Scope of the Document
- •1.5 USB Product Compliance
- •1.6 Document Organization
- •2.1 Terms
- •2.2 Conventions:
- •2.3 References
- •3.1 USB System Description
- •3.1.1 Topology
- •3.1.1.1 USB Host
- •3.1.1.2 Wireless USB Devices
- •3.2 Physical Interface
- •3.3 Power Management
- •3.4 Bus Protocol
- •3.5 Robustness
- •3.5.1 Error Handling
- •3.6 Security
- •3.7 System Configuration
- •3.7.1 Attachment of Wireless USB Devices
- •3.7.2 Removal of Wireless USB Devices
- •3.7.3 Bus Enumeration
- •3.8 Data Flow Types
- •3.9 Wireless USB Devices
- •3.9.1 Device Characterizations
- •3.9.2 Devices and MAC Layer
- •3.10 Wireless USB Host: Hardware and Software
- •4.1 Implementer Viewpoints
- •4.2 Communications Topology
- •4.2.1 Physical Topology
- •4.3 Wireless USB Communication Flows
- •4.3.1 Wireless USB Channel Time
- •4.3.2 MMC Transmission Accuracy
- •4.3.3 USB Time across Device Wire Adapters
- •4.3.5 Device Endpoints
- •4.3.6 Wireless USB Information Exchange Methods
- •4.3.7 Device Perspective
- •4.3.7.1 Self Beaconing Devices
- •4.3.7.2 Directed Beaconing Devices
- •4.3.7.3 Non Beaconing Devices
- •4.3.7.4 Selecting A Wireless USB Host
- •4.3.8 Host Perspective
- •4.3.8.1 MAC Layer Compliant Device
- •4.3.8.2 Wireless USB Host
- •4.3.8.3 Host System Management
- •4.3.8.5 Other Host Considerations
- •4.4 Data Transfers
- •4.4.1 Burst Mode Data Phase
- •4.5 Bulk Transfers
- •4.5.1 Bulk Transfer Packet Size and Signaling Rate Constraints
- •4.5.2 Bulk Transfer Channel Access Constraints
- •4.5.3 Bulk Transfer Data Sequences
- •4.6 Interrupt Transfers
- •4.6.1 Low Power Interrupt IN
- •4.6.2 Interrupt Transfer Packet Size and Signaling Rate Constraints
- •4.6.3 Interrupt Transfer Channel Access Constraints
- •4.6.4 Interrupt Transfer Data Sequences
- •4.7 Isochronous Transfers
- •4.7.1 Isochronous Transfer Packet Size and Signaling Rate Constraints
- •4.7.2 Isochronous Transfer Channel Access Constraints
- •4.7.3 Isochronous Transfer Data Sequences
- •4.7.4 Isochronous Endpoint Host System Admission Decisions
- •4.7.5 Isochronous Data Discards and Use of Isochronous Packet Discard IE
- •4.8 Control Transfers
- •4.8.1 Control Transfer Packet Size and Signaling Rate Constraints
- •4.8.2 Control Transfer Channel Access Constraints
- •4.8.3 Control Transfer Data Sequences
- •4.8.4 Data Loopback Commands
- •4.9 Device Notifications
- •4.10 Media Reliability Considerations
- •4.10.1 Transmit Power Control
- •4.10.2 Adjustments to Data Phase Packet Payload Sizes
- •4.10.3 Adjustments to Transmit Bit Rate
- •4.10.4 Changing PHY Channel
- •4.10.5 Host Schedule Control
- •4.10.6 Dynamic Bandwidth Interface Control
- •4.11 Special Considerations for Isochronous Transfers
- •4.11.1 Summary Of Key Features Of USB Wired Isochrony
- •4.11.1.1 Wireless Service Intervals
- •4.11.2 UWB Media Characteristics
- •4.11.2.1 Superframe Layout
- •4.11.2.2 Worst Case Superframe Layout – Service Interval Bounds.
- •4.11.2.3 Wireless Packet Error Rates
- •4.11.3 Wireless USB Isochronous Transfer Level Protocol
- •4.11.4 Wireless USB Isochronous IN Example
- •4.11.5 Wireless USB Isochronous OUT Example
- •4.11.6 Choosing an Isochronous IN or Isochronous OUT Endpoint Buffer Size
- •4.11.7 Isochronous OUT endpoint receiver implementation options
- •4.11.7.1 Presentation Time aware implementation
- •4.11.7.2 Presentation time aware implementation with “false” acknowledgement
- •4.11.7.3 Presentation time unaware implementations
- •4.11.8 Synchronization
- •4.11.8.1 Synchronizing a Stream Start Time
- •4.11.9 Error Handling Details
- •4.11.9.1 Reporting Data Discarded At the Transmitter
- •4.11.9.2 Discarding Data during A Burst
- •4.11.9.3 Application Handling of Discards
- •4.12 Device Reset
- •4.13 Connection Process
- •4.13.1 Reconnection Process
- •4.14 Disconnect
- •4.15 Security Mechanisms
- •4.15.1 Connection Lifetime
- •4.15.2 Host Security Considerations
- •4.15.2.1 CHID Selection
- •4.15.2.2 CDID Selection
- •4.16 Wireless USB Power Management
- •4.16.1 Device Power Management
- •4.16.1.1 Device Sleep
- •4.16.1.2 Device Wakeup
- •4.16.2 Host Power Management
- •4.16.2.1 Channel Stop
- •4.16.2.2 Remote Wakeup
- •4.16.2.3 Channel Start
- •4.17 Dual Role Devices (DRD)
- •4.17.2 Pairing P2P-DRD to establish reverse link
- •5.1 Packet Formats
- •5.2 Wireless USB Transaction Groups
- •5.2.1 Wireless USB Channel Time Allocation Information Elements
- •5.3 Transaction Group Timing Constraints
- •5.3.1 Streaming-Mode Inter-packet Constraints for the PHY
- •5.3.2 Protocol Synchronization
- •5.4 Data Burst Synchronization and Retry
- •5.5 Wireless USB Transactions
- •5.5.1 Isochronous Transactions
- •5.5.2 Control Transfers
- •5.5.3 Device Notifications
- •5.5.4 Flow Control
- •6.1 Introduction
- •6.1.1 Goal of USB Security
- •6.1.2 Security and USB
- •6.2 Overview
- •6.2.1 Base of Trust
- •6.2.2 Preserve the Nature of the USB Device Model
- •6.2.3 Implementation of Security Extensions
- •6.2.4 Encryption Methods
- •6.2.5 Message Format
- •6.2.6 Encryption Keys
- •6.2.6.1 Master Keys
- •6.2.6.2 Session Keys
- •6.2.7 Correct key determination
- •6.2.8 Replay Prevention
- •6.2.9 Secure Packet Reception
- •6.2.10 General Connection Model
- •6.2.10.1 Connection Context
- •6.2.10.2 Connection Lifetime
- •6.2.10.3 New Connection
- •6.2.10.4 Connection
- •6.2.10.5 Reconnection
- •6.2.10.6 Revocation
- •6.2.10.8 Diagnostic Support
- •6.2.10.9 Mutual Authentication
- •6.2.11 Key Management
- •6.2.11.1 PTK Management
- •6.2.11.2 GTK Management
- •6.3 Association and Authentication
- •6.3.1 Connection and Reconnection Requests
- •6.3.2 Authentication
- •6.3.2.1 Authentication Related Device Capabilities
- •6.3.2.2 Ceremonies
- •6.4.1 CCM nonce Construction
- •6.4.2 l(m) and l(a) Calculation
- •6.4.3 Counter-mode Bx Blocks
- •6.4.4 Encryption Ax Blocks
- •6.5.1 Key Derivation
- •6.5.2 Out-of-band MIC Generation
- •6.5.3 Example Random Number Generation
- •7.1 Wireless USB Device States
- •7.1.1 UnConnected
- •7.1.2 UnAuthenticated
- •7.1.3 Authenticated
- •7.1.4 Reconnecting
- •7.2 Generic Wireless USB Device Operations
- •7.3 Standard Wireless USB Device Requests
- •7.3.1 Wireless USB Extensions to Standard Requests
- •7.3.1.1 Clear Feature
- •7.3.1.2 Get Status
- •7.3.1.3 Set Address
- •7.3.1.4 Set Feature
- •7.3.1.5 Set Interface DS
- •7.3.1.6 Set WUSB Data
- •7.3.1.7 Data Loopback Write
- •7.3.1.8 DATA Loopback Read
- •7.3.2 Security-related Requests
- •7.3.2.1 Get Security Descriptor
- •7.3.2.2 Set Encryption
- •7.3.2.3 Get Encryption
- •7.3.2.4 Key Management
- •7.3.2.6 Set Security Data
- •7.3.2.7 Get Security Data
- •7.4 Standard Wireless USB Descriptors
- •7.4.1 Device Level Descriptors
- •7.4.1.1 Wireless USB Device Capabilities – UWB
- •7.4.2 Configuration
- •7.4.3 Endpoint
- •7.4.4 Wireless USB Endpoint Companion
- •7.4.5 Security-Related Descriptors
- •7.4.5.1 Security Descriptor
- •7.4.5.2 Key Descriptor
- •7.5 Wireless USB Channel Information Elements
- •7.5.1 Wireless USB Connect Acknowledge IE
- •7.5.2 Wireless USB Host Information IE
- •7.5.3 Wireless USB Channel Change Announcement IE
- •7.5.4 Wireless USB Device Disconnect IE
- •7.5.5 Wireless USB Host Disconnect IE
- •7.5.6 Wireless USB Release Channel IE
- •7.5.7 Wireless USB Work IE
- •7.5.8 Wireless USB Channel Stop IE
- •7.5.9 Wireless USB Device Keepalive IE
- •7.5.10 Wireless USB Isochronous Packet Discard IE
- •7.5.11 Wireless USB Reset Device IE
- •7.5.12 Wireless USB Transmit Packet Adjustment IE
- •7.6 Device Notifications
- •7.6.1 Device Connect (DN_Connect)
- •7.6.1.1 Connect Request
- •7.6.1.2 Reconnect Request
- •7.6.2 Device Disconnect (DN_Disconnect)
- •7.6.3 Device Endpoints Ready (DN_EPRdy)
- •7.6.4 Device MAS Availability Changed (DN_MASAvailChanged)
- •7.6.5 Device Sleep (DN_Sleep)
- •7.6.6 Remote Wakeup (DN_RemoteWakeup)
- •7.6.7 Device Alive (DN_Alive)
- •8.1 Operational Model
- •8.1.1 Functional Characteristics
- •8.1.2 Data Transfer Interface
- •8.1.3 Remote Pipe
- •8.1.4 Wire Adapter Functional Blocks
- •8.1.5 Downstream Port(s)
- •8.1.6 Upstream Port
- •8.1.7 Downstream Host Controller
- •8.1.8 Upstream Endpoint Controller
- •8.1.9 Remote Pipe Controller
- •8.1.9.1 RPipe Descriptor
- •8.1.9.2 Bulk OUT Overview
- •8.1.9.3 Bulk IN Overview
- •8.1.9.4 Control Transfer Overview
- •8.1.9.5 Interrupt Transfer Overview
- •8.1.9.6 Isochronous Transfer Overview
- •8.1.10 Suspend and Resume
- •8.1.10.1 DWA Suspend and Resume
- •8.1.10.2 HWA Suspend and Resume
- •8.1.11 Reset Behavior
- •8.1.12 Device Control
- •8.1.13 Buffer Configuration
- •8.2 Descriptors
- •8.3 Requests
- •8.3.1 Wire Adapter Class-Specific Requests
- •8.3.1.1 Abort RPipe
- •8.3.1.2 Clear RPipe Feature
- •8.3.1.3 Clear Wire Adapter Feature
- •8.3.1.4 Get RPipe Descriptor
- •8.3.1.5 Get RPipe Status
- •8.3.1.6 Get Wire Adapter Status
- •8.3.1.7 Set RPipe Descriptor
- •8.3.1.8 Set RPipe Feature
- •8.3.1.9 Set Wire Adapter Feature
- •8.3.1.10 Reset RPipe
- •8.3.2 Notification Information
- •8.3.3 Transfer Requests
- •8.3.3.1 Control Transfers
- •8.3.3.2 Bulk and Interrupt Transfers
- •8.3.3.3 Transfer Completion Notification
- •8.3.3.4 Transfer Result
- •8.3.3.5 Abort Transfer
- •8.4 DWA Interfaces, Descriptors and Control
- •8.4.1 DWA Isochronous Streaming Interface
- •8.4.2 DWA Isochronous Streaming Overview
- •8.4.3 DWA Descriptors
- •8.4.3.1 Device Descriptor
- •8.4.3.2 Binary Device Object (BOS) Descriptor
- •8.4.3.3 Configuration Descriptor
- •8.4.3.4 Security Descriptors
- •8.4.3.5 Interface Association Descriptor
- •8.4.3.6 Data Transfer Interface Descriptor
- •8.4.3.7 Wire Adapter Class Descriptor
- •8.4.3.8 Notification Endpoint Descriptor
- •8.4.3.9 Notification Endpoint Companion Descriptor
- •8.4.3.10 Data Transfer Write Endpoint Descriptor
- •8.4.3.11 Data Transfer Write Endpoint Companion Descriptor
- •8.4.3.12 Data Transfer Read Endpoint Descriptor
- •8.4.3.13 Data Transfer Read Endpoint Companion Descriptor
- •8.4.3.14 Isochronous Streaming Interface Descriptor
- •8.4.3.15 Isochronous Streaming OUT Endpoint Descriptor
- •8.4.3.16 Isochronous Streaming OUT Endpoint Companion Descriptor
- •8.4.3.17 Isochronous Streaming IN Endpoint Descriptor
- •8.4.3.18 Isochronous Streaming IN Endpoint Companion Descriptor
- •8.4.3.19 Wire Adapter RPipe Descriptor
- •8.4.4 DWA Specific Requests
- •8.4.4.1 Clear Port Feature
- •8.4.4.2 Get Port Status
- •8.4.4.3 Set Isochronous Endpoint Attributes
- •8.4.4.4 Set Port Feature
- •8.4.5 DWA Notification Information
- •8.4.5.1 Remote Wake
- •8.4.5.2 Port Status Change
- •8.4.6 DWA Isochronous Transfers
- •8.4.6.1 DWA Isochronous OUT Responsibilities
- •8.4.6.2 DWA Isochronous IN Responsibilities
- •8.5 HWA Interfaces, Descriptors and Control
- •8.5.1 HWA Isochronous Streaming Overview
- •8.5.2 HWA Descriptors
- •8.5.2.1 Device Descriptor
- •8.5.2.2 Device_Qualifier Descriptor
- •8.5.2.3 Configuration Descriptor
- •8.5.2.4 Other_Speed_Configuration Descriptor
- •8.5.2.5 Security Descriptors
- •8.5.2.6 Data Transfer Interface Descriptor
- •8.5.2.7 Wire Adapter Class Descriptor
- •8.5.2.8 Notification Endpoint Descriptor
- •8.5.2.9 Data Transfer Write Endpoint Descriptor
- •8.5.2.10 Data Transfer Read Endpoint Descriptor
- •8.5.2.11 Wire Adapter RPipe Descriptor
- •8.5.3 HWA Specific Requests
- •8.5.3.2 Get BPST Adjustment
- •8.5.3.3 Get BPST Time
- •8.5.3.4 Get WUSB Time
- •8.5.3.5 Remove MMC IE
- •8.5.3.6 Set Device Encryption
- •8.5.3.7 Set Device Info
- •8.5.3.8 Set Device Key
- •8.5.3.9 Set Group Key
- •8.5.3.10 Set Num DNTS Slots
- •8.5.3.11 Set WUSB Cluster ID
- •8.5.3.12 Set WUSB MAS
- •8.5.3.13 Set WUSB Stream Index
- •8.5.3.14 WUSB Channel Stop
- •8.5.4 HWA Notification Information
- •8.5.4.1 BPST Adjustment Change
- •8.5.4.2 DN Received Notification
- •8.5.5 HWA Isochronous Transfers
- •8.5.5.1 HWA Isochronous OUT Responsibilities
- •8.5.5.2 HWA Isochronous IN Responsibilities
- •8.5.5.3 HWA Isochronous Transfer Completion
- •8.6 Radio Control Interface
- •8.6.1 Radio Control Descriptors
- •8.6.1.1 Radio Control Interface Descriptor
- •8.6.1.2 Radio Control Interface Class Descriptor
- •8.6.1.3 Radio Control Interrupt Endpoint Descriptor
- •8.6.2 Radio Control Command
- •8.6.2.1 Channel Change
- •8.6.2.2 Device Address Management
- •8.6.2.4 Reset
- •8.6.2.5 Scan
- •8.6.2.6 Set Beacon Filter
- •8.6.2.9 Set Notification Filter
- •8.6.2.10 Set TX Power
- •8.6.2.11 Sleep
- •8.6.2.12 Start Beaconing
- •8.6.2.13 Stop Beaconing
- •8.6.3 Radio Control Notifications
- •8.6.3.1 Application-specific Probe IE Received Notification
- •8.6.3.2 Beacon Received Notification
- •8.6.3.3 Beacon Size Notification
- •8.6.3.4 BPOIE Change Notification
- •8.6.3.5 BP Slot Change Notification
- •8.6.3.6 BP Switch IE Received Notification
- •8.6.3.7 Device Address Conflict Notification
- •8.6.3.8 DRP Availability Changed Notification
- •8.6.3.9 DRP Notification
- •A.1 Key Derivation
- •A.2 Handshake MIC calculation
- •A.3 Secure MMC (EO = payload length)
- •A.4 Data IN from device (EO = 2)
- •B.1 Descriptors for DWA
- •B.2 Descriptors for HWA
Chapter 8 |
|
Wire Adapter |
Wireless Universal Serial Bus Specification, Revision 1.0 |
If bScanState is set to SCAN_OUTSIDE_BP then the device will scan on the specified channel except during its beacon period. This command is invalid if the device is not currently beaconing.
If bScanState is set to SCAN_WHILE_INACTIVE then the device will scan on the specified channel when it is not actively transmitting or receiving. The device must not scan during its beacon period as well. This command is invalid if the device is not currently beaconing.
The device will confirm the completion, successfully or in error, of a scanning state change initiated by this command by sending back an RCEB on the Radio Control Interrupt Endpoint. The RCEB for this command is given below.
The device will send back any beacons it receives during the scan using the Beacon Received notification, see Section 8.6.3.2. The beacon filter (see Section 8.6.2.6) is ignored while the device is Scanning.
Table 8-79. Scan RCEB
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bEventType |
1 |
0 |
GENERAL Event Type |
|
|
|
|
|
1 |
wEvent |
2 |
20 |
Result of SCAN Command |
|
|
|
|
|
3 |
bEventContext |
1 |
Number |
This should match the bCommandContext in the |
|
|
|
|
RCCB. |
|
|
|
|
|
4 |
bResultCode |
1 |
Number |
Indicates the completion status of the command. |
|
|
|
|
See Table 8-69 for a list of result codes. |
The bResultCode field indicates whether the operation to change the scan state has successfully completed. If changing the scan state is not succeeding, it is a vendor specific decision when to time out the operation and return failure.
8.6.2.6 Set Beacon Filter
This command is used to set the Beacon filter. This filter is based on the beacon slot number. The RCCB for this command is given below.
Table 8-80. Set Beacon Filter RCCB
Offset |
Field |
Size |
Value |
|
Description |
|
|
|
|
|
|
0 |
bCommandType |
1 |
0 |
GENERAL Command Type |
|
|
|
|
|
|
|
1 |
wCommand |
2 |
21 |
SET_BEACON_FILTER Command |
|
|
|
|
|
|
|
3 |
bCommandContext |
1 |
Number |
Host assigned ID for this command. |
|
|
|
|
|
Valid values are 1 through FEH. |
|
|
|
|
|
|
|
4 |
bmBeaconSlots |
6 |
Bitmap |
48-bit bitmap specifying beacon slots that the host does |
|
|
|
|
|
not need beacon information on. |
|
|
|
|
|
|
|
10 |
bEnableState |
1 |
Number |
Specifies whether to enable or disable the filter. |
|
|
|
|
|
Value |
Description |
|
|
|
|
0 |
Filter DISABLED |
|
|
|
|
|
Filter is disabled. This is the default filter |
|
|
|
|
|
state on power up or after a RESET |
|
|
|
|
|
command completes successfully. |
|
|
|
|
1 |
Filter ENABLED |
|
|
|
|
|
|
If the device detects a beacon in a slot whose bit is not set in bmBeaconSlots or the Device Address of the device sending the beacon in a slot changes from one superframe to the next then it must send a Beacon Received notification to the host.
264
Chapter 8 |
|
Wire Adapter |
Wireless Universal Serial Bus Specification, Revision 1.0 |
If a beacon is not detected in a slot whose bit is set in bmBeaconSlots then the device must generate a BPOIE Change notification (See Section 8.6.3.3).
This filter information is only valid when the device is actively sending beacons and during the beacon group which the device has joined.
The RCEB for this command is given below.
Table 8-81. Set Beacon Filter RCEB
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bEventType |
1 |
0 |
GENERAL Event Type |
|
|
|
|
|
1 |
wEvent |
2 |
21 |
Result of SET_BEACON_FILTER Command |
|
|
|
|
|
3 |
bEventContext |
1 |
Number |
This should match the bCommandContext in the RCCB. |
|
|
|
|
|
4 |
bResultCode |
1 |
Number |
Indicates the completion status of the command. See |
|
|
|
|
Table 8-69 for a list of result codes. |
The bResultCode field indicates whether the set beacon filter operation was successful. If the operation is not succeeding, it is a vendor specific decision when to time out the operation and return failure.
8.6.2.7 Set DRP IE
This command is used to set a DRP IE being transmitted in the beacon by the device. The host can also remove all DRP IEs that are being transmitted by the device using this command. The host must set all the DRP IEs that it wants the device to include in its beacon at the same time e.g. if the host includes three DRP IEs in the first Set DRP IE and then includes two DRP IEs in the next Set DRP IE command then the device will send the DRP IEs specified in the second Set DRP IE command only.
The RCCB for this command is given below.
Table 8-82. Set DRP IE RCCB
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bCommandType |
1 |
0 |
GENERAL Command Type |
|
|
|
|
|
1 |
wCommand |
2 |
22 |
SET_DRP_IE Command |
|
|
|
|
|
3 |
bCommandContext |
1 |
Number |
Host assigned ID for this command. |
|
|
|
|
Valid values are 1 through FEH. |
|
|
|
|
|
4 |
bExplicit |
1 |
Flag |
Controls whether implicit or explicit DRP negotiation is |
|
|
|
|
used. |
|
|
|
|
When this flag is set, then Explicit DRP negotiation is |
|
|
|
|
used. |
5 |
wIELength |
2 |
Number |
The length of the IE data to be added to the beacon. |
|
|
|
|
|
7 |
IEData |
Var |
Raw |
A variable size array containing IE data. |
|
|
|
Data |
|
|
|
|
|
|
The IEData field in this command is the DRP IE data to be added to the beacon if the bExplicit flag is not set. The length of the IEData field is specified by wIELength. The device must replace the DRP IEs that it is currently sending with the DRP IEs specified in this command. If wIELength is set to zero, then the device will remove any existing DRP IEs from its beacon.
The IEData field in this command is the DRP IE data to be used in the DRP reservation command if the bExplicit flag is set. The length of the IEData field is specified by wIELength. The device must send a DRP reservation request command if the Owner bit in the DRP IE is set, e.g. this device is the reservation owner. On
265
Chapter 8 |
|
Wire Adapter |
Wireless Universal Serial Bus Specification, Revision 1.0 |
the other hand, the device must send a DRP reservation response if the Owner bit is not set by including the specified DRP IE data along with the current DRP Availability IE.
The device will confirm the result of the operation to set zero or more DRP IEs to the beacon or the status of sending an explicit DRP IE command by sending back an RCEB on the Radio Control Interrupt Endpoint. The RCEB for this command is given in Table 8-83.
If a host sends a Set DRP IE with the bExplicit flag set when the device does not support explicit DRP negotiations as reported in its Capabilities IE then the device’s response to this command is undefined.
Table 8-83. Set DRP IE RCEB
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bEventType |
1 |
0 |
GENERAL Event Type |
|
|
|
|
|
1 |
wEvent |
2 |
22 |
Result of SET_DRP_IE Command |
|
|
|
|
|
3 |
bEventContext |
1 |
Number |
This should match the bCommandContext in the |
|
|
|
|
RCCB. |
|
|
|
|
|
4 |
wRemainingSpace |
2 |
Number |
Indicates the number of remaining bytes left in the |
|
|
|
|
beacon |
6 |
bResultCode |
1 |
Number |
Indicates the completion status of the command. |
|
|
|
|
See Table 8-69 for a list of result codes. |
|
|
|
|
|
The number of remaining bytes left in the beacon is indicated by the value of wRemainingSpace. The bResultCode field indicates the result of the attempt to add a DRP IE to the beacon if bExplicit is not set or indicates if the device successfully sent an explicit DRP IE command if bExplicit is set. If an operation to add the DRP IE to the beacon is not succeeding, it is a vendor specific decision when to time out the operation and return failure.
8.6.2.8 Set IE
This command is used to set one or more IEs in the beacon being transmitted by the device. The RCCB for this command is given below.
Table 8-84. Set IE RCCB
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bCommandType |
1 |
0 |
GENERAL Command Type |
|
|
|
|
|
1 |
wCommand |
2 |
23 |
SET_IE Command |
|
|
|
|
|
3 |
bCommandContext |
1 |
Number |
Host assigned ID for this command. |
|
|
|
|
Valid values are 1 through FEH. |
|
|
|
|
|
4 |
wIELength |
2 |
Number |
The length of the IE data to be added to the beacon. |
|
|
|
|
|
6 |
IEData |
Var |
Raw |
A variable size array containing IE data. |
|
|
|
Data |
|
|
|
|
|
|
The IEData field in this command is the data to be added to the beacon. This may contain one or more IEs which are defined by the host. This data replaces any data from a previous Set IE command. The length of the IEData field is specified by wIELength.
The complete list of Information Elements available is listed in the MAC layer specification (see Reference [3]). The host can set the IEs listed in Table 8-85 using this command.
266
Chapter 8 |
|
Wire Adapter |
Wireless Universal Serial Bus Specification, Revision 1.0 |
Table 8-85. Host Settable IEs
IE Name |
Notes |
BP Switch IE
Used by Wireless USB
Capabilities IE
Identification IE
PCA Availability IE
Application-specific Probe IE
Master Key Identifier (MKID) IE
Application Specific IE (ASIE)
The behavior of the device if other IEs are set using this command is undefined.
The device must not reorder the IEs set by this command. However it must correctly insert the other IEs it generates as well as the DRP IEs that may be set using the Set DRP IE (see Section 8.6.2.7) command in the set of IEs that it transmits in its beacon. The device will confirm the result of the operation to set zero or more IEs in the beacon by sending back an RCEB on the Radio Control Interrupt Endpoint. The RCEB for this command is given below.
Table 8-86. Set IE RCEB
Offset |
Field |
Size |
Value |
Description |
|
|
|
|
|
0 |
bEventType |
1 |
0 |
GENERAL Event Type |
|
|
|
|
|
1 |
wEvent |
2 |
23 |
Result of SET_IE Command |
|
|
|
|
|
3 |
bEventContext |
1 |
Number |
This should match the bCommandContext in the |
|
|
|
|
RCCB. |
4 |
wRemainingSpace |
2 |
Number |
Indicates the number of remaining bytes left in the |
|
|
|
|
beacon |
|
|
|
|
|
6 |
bResultCode |
1 |
Number |
Indicates the completion status of the command. |
|
|
|
|
See Table 8-69 for a list of result codes. |
|
|
|
|
|
The number of remaining bytes left in the beacon is indicated by the value of wRemainingSpace. The bResultCode field indicates the result of the attempt to add an IE to the beacon. If an operation to add an IE to the beacon is not succeeding, it is a vendor specific decision when to time out the operation and return failure.
267