6.2.1 MAC data services
The IEEE 802.11 MAC supports the following service primitives as defined in ISO/IEC 8802-2: 1998:
— MA-UNITDATA.request
— MA-UNITDATA.indication
— MA-UNITDATA.confirm
The LLC definitions of the primitives and specific parameter value restrictions imposed by IEEE Std 802.11 are given in 6.2.1.1 through 6.2.1.3.
6.2.1.1 MA-UNITDATA.request
6.2.1.1.1 Function
This primitive requests a transfer of an MSDU from a local LLC sublayer entity to a single peer LLC
sublayer entity, or multiple peer LLC sublayer entities in the case of group addresses.
6.2.1.1.2 Semantics of the service primitive
The parameters of the primitive are as follows:
MA-UNITDATA.request (
source address,
destination address,
routing information,
data,
priority,
service class
)
The source address (SA) parameter specifies an individual MAC sublayer address of the sublayer entity from which the MSDU is being transferred.
The destination address (DA) parameter specifies either an individual or a group MAC sublayer entity
address.
The routing information parameter specifies the route desired for the data transfer (a null value indicates source routing is not to be used). For IEEE Std 802.11, the routing information parameter must be null.
The data parameter specifies the MSDU to be transmitted by the MAC sublayer entity. For IEEE Std 802.11, the length of the MSDU must be less than or equal to 2304 octets.
The priority parameter specifies the priority desired for the data unit transfer. The allowed values of priority are described in 6.1.1.2.
The service class parameter specifies the service class desired for the data unit transfer. The allowed values of service class are described in 6.1.1.3 and 6.1.3.
6.2.1.1.3 When generated
This primitive is generated by the LLC sublayer entity when an MSDU is to be transferred to a peer LLC
sublayer entity or entities.
6.2.1.1.4 Effect of receipt
On receipt of this primitive, the MAC sublayer entity determines whether the request can be fulfilled
according to the requested parameters. A request that cannot be fulfilled according to the requested
parameters is discarded, and this action is indicated to the LLC sublayer entity using an
MA-UNITDATA.confirm primitive that describes why the MAC was unable to fulfill the request. If the
request can be fulfilled according to the requested parameters, the MAC sublayer entity appends all MAC specified fields (including DA, SA, FCS, and all fields that are unique to IEEE Std 802.11), passes the properly formatted frame to the lower layers for transfer to a peer MAC sublayer entity or entities (see 6.1.4), and indicates this action to the LLC sublayer entity using an MA-UNITDATA.confirm primitive with transmission status set to Successful.
6.2.1.2 MA-UNITDATA.indication
6.2.1.2.1 Function
This primitive defines the transfer of an MSDU from the MAC sublayer entity to the LLC sublayer entity, or entities in the case of group addresses. In the absence of error, the contents of the data parameter are logically complete and unchanged relative to the data parameter in the associated MA-UNITDATA.request primitive.
6.2.1.2.2 Semantics of the service primitive
The parameters of the primitive are as follows:
MA-UNITDATA.indication(
source address,
destination address,
routing information,
data,
reception status,
priority,
service class
)
The SA parameter is an individual address as specified by the SA field of the incoming frame.
The DA parameter is either an individual or a group address as specified by the DA field of the incoming frame.
The routing information parameter specifies the route that was used for the data transfer. IEEE Std 802.11 shall always set this field to null.
The data parameter specifies the MSDU as received by the local MAC entity.
The reception status parameter indicates the success or failure of the received frame for those frames that IEEE Std 802.11 reports via a MA-UNITDATA.indication primitive. This MAC always reports “success” because all failures of reception are discarded without generating MA-UNITDATA.indication primitive.
The priority parameter specifies the receive processing priority that was used for the data unit transfer. The allowed values of priority are described in 6.1.1.2.
The service class parameter specifies the receive service class that was used for the data unit transfer. The allowed values of service class are described in 6.1.1.3 and 6.1.3.
6.2.1.2.3 When generated
The MA-UNITDATA.indication primitive is passed from the MAC sublayer entity to the LLC sublayer
entity or entities to indicate the arrival of a frame at the local MAC sublayer entity. Frames are reported only if they are validly formatted at the MAC sublayer, received without error, received with valid (or null)
security and integrity information, and their destination address designates the local MAC sublayer entity.
6.2.1.2.4 Effect of receipt
The effect of receipt of this primitive by the LLC sublayer is dependent on the content of the MSDU.
6.2.1.3 MA-UNITDATA.confirm
6.2.1.3.1 Function
This primitive has local significance and provides the LLC sublayer with status information for the
corresponding preceding MA-UNITDATA.request primitive.
6.2.1.3.2 Semantics of the service primitive
The parameters of the primitive are as follows:
MA-UNITDATA.confirm(
source address,
destination address,
transmission status,
provided priority,
provided service class
)
The SA parameter is an individual MAC sublayer entity address as specified in the associated MAUNITDATA. request primitive.
The DA parameter is either an individual or group MAC sublayer entity address as specified in the
associated MA-UNITDATA.request primitive.
The transmission status parameter is used to pass status information back to the local requesting LLC sublayer entity. IEEE Std 802.11 specifies the following values for transmission status:
a) Successful.
b) Undeliverable (excessive data length).
c) Undeliverable (non-null source routing).
d) Undeliverable: unsupported priority (for priorities other than Contention or ContentionFree at a non-
QoS STA; or for priorities other than Contention, ContentionFree, or an integer between and including 0 and 15 at a QoS STA).
e) Undeliverable: unsupported service class (for service classes other than ReorderableMulticast or
StrictlyOrdered for non-QoS STAs and service classes other than QoSAck or QoSNoAck for QoS STAs).
f) Unavailable priority (for ContentionFree when no PC or HC is available, or an integer between and
including 1 and 15 at a STA that is associated in a non-QoS BSS, or an integer between and including 8 and 15 at a STA that is a member of an IBSS, in which case the MSDU is transmitted with a provided priority of Contention).
g)
Undeliverable: unavailable service class (for StrictlyOrdered service when the STA’s power
management mode is other than “active” for non-QoS STAs; QoS STAs do not return this value as they do not provide the StrictlyOrdered service).
h) Undeliverable (no BSS available).
i) Undeliverable (cannot encrypt with a null key).
The provided priority parameter specifies the priority that was used for the associated data unit transfer (Contention, ContentionFree, or an integer between and including 0 and 15).
The provided service class parameter specifies the class of service used for the associated data unit transfer. In non-QoS STAs, the value of this parameter is ReorderableMulticast or StrictlyOrdered. In QoS STAs, it is QoSAck or QoSNoAck.
6.2.1.3.3 When generated
The MA-UNITDATA.confirm primitive is passed from the MAC sublayer entity to the LLC sublayer entity
to indicate the status of the service provided for the corresponding MA-UNITDATA.request primitive.
6.2.1.3.4 Effect of receipt
The effect of receipt of this primitive by the LLC sublayer is dependent upon the type of operation employed by the LLC sublayer entity.


