515 lines
20 KiB
Plaintext
515 lines
20 KiB
Plaintext
/*
|
|
* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are
|
|
* met:
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above
|
|
* copyright notice, this list of conditions and the following
|
|
* disclaimer in the documentation and/or other materials provided
|
|
* with the distribution.
|
|
* * Neither the name of The Linux Foundation nor the names of its
|
|
* contributors may be used to endorse or promote products derived
|
|
* from this software without specific prior written permission.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
|
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
|
|
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
|
|
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
|
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
|
* BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
* WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
|
|
* OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
|
|
* IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
/**
|
|
@page dcc Decentralized Congestion Control
|
|
|
|
Decentralized congestion control (DCC) is a mandatory component of ITS-G5
|
|
stations operating in ITS-G5A and ITS-G5B frequency bands to maintain network
|
|
stability, throughput efficiency, and fair resource allocation to ITS-G5
|
|
stations.
|
|
|
|
DCC reduces congestion on busy channels. Each station monitors the state of the
|
|
channel to determine the percentage of time that the channel is
|
|
busy. This measurement is called the channel load.
|
|
The DCC parameters are stored in the network design limits (NDL) database.
|
|
The NDL is split into a number of states where each state corresponds to a
|
|
range of channel loads. Each state contains the limits for the
|
|
transmit parameters that can be used while in that state.
|
|
When the channel becomes more congested according to the channel load, the
|
|
station will help to reduce the congestion by moving into a more restrictive state
|
|
associated with the higher channel load.
|
|
The least restrictive state is referred to as the "Relaxed state," and the most
|
|
restrictive state is referred to as the "Restrictive state." The states inbetween are referred to as "active states". Moving to more restrictive states
|
|
as the channel load increases reduces the congestion by modifying various
|
|
transmit parameters, such as by transmitting with a higher MCS, by reducing the
|
|
transmit power, and by limiting the transmit rate. The DCC algorithm is
|
|
described in detail in "ETSI TS 102 687".
|
|
|
|
To enable DCC, include the <tt>-d</tt> parameter when executing
|
|
<tt>dsrc_config</tt>. For example, to configure DSRC on channel 5860 with
|
|
DCC enabled, execute the following command:
|
|
|
|
<tt>dsrc_config -c set_config -o channel_freq0=5860 -d</tt>
|
|
|
|
If the <tt>-d</tt> parameter is not present, DCC is disabled.
|
|
|
|
The configurable parameters for DCC
|
|
referred to as the network design limits (NDL) are read by the
|
|
<tt>dsrc_config</tt> sample app from the file <tt>dcc.dat</tt> in the same
|
|
folder as <tt>dsrc_config</tt> and sent to the host driver.
|
|
If <tt>dsrc_config</tt> is executed with the
|
|
<tt>-d</tt> option but the file <tt>dcc.dat</tt> does not exist,
|
|
<tt>dsrc_config</tt> will fail.
|
|
|
|
The NDL parameters in dcc.dat are as follows:
|
|
|
|
<b>DCC_Channels</b>
|
|
|
|
Currently, DCC is supported on a maximum of two channels. We can specify the
|
|
channels using the center frequency.
|
|
|
|
For single channel: <tt>DCC_Channels=5860</tt>
|
|
|
|
For two channels: <tt>DCC_Channels=5860,5890</tt>
|
|
|
|
<b>DCC_ControlLoopEnable</b>
|
|
|
|
This parameter is used to enable the DCC control loop state machine for each
|
|
channel. To enable the state machine on two channels, the string is set this way:
|
|
|
|
<tt>DCC_ControlLoopEnable=1,1</tt>
|
|
|
|
It is possible for the end user to disable the state machine per channel and only have
|
|
the DCC statistics reporting enabled to understand the channel properties, or to
|
|
have both the DCC state machine and DCC statistics reporting disabled as well.
|
|
|
|
<b>DCC_StatsEnable</b>
|
|
|
|
This parameters helps to enable DCC statistic reporting on each channel.
|
|
If this is enabled, these are the statistics that are sent to the user.
|
|
1. Average TX power of frames of each access category
|
|
2. Average data rate of frames of each access category
|
|
3. Channel load value
|
|
|
|
<b>DCC_StatsInterval</b>
|
|
|
|
This configures the interval of DCC statistics reporting. This value is in
|
|
multiples of 10 ms. To configure the interval to 5 seconds for 2 channels, set
|
|
|
|
<tt>DCC_StatsInterval=500,500</tt>
|
|
|
|
<b>DCC_MinDccSampling</b>
|
|
|
|
This gives the information to the firmware about how often the channel load value needs
|
|
to be checked. Every minimum DCC sampling interval, the firmware finds the channel
|
|
load value for the last minimum DCC sampling time and records that. This value
|
|
is specified in multiples of 10 ms.
|
|
For example,
|
|
|
|
<tt>DCC_MinDccSampling=100</tt>
|
|
|
|
to set the value to 1 second.
|
|
|
|
<b>DCC_MeasurementInterval</b>
|
|
|
|
This interval determines how often the firmware consolidates the statistics that
|
|
are sent every stats interval to the user. Preferably, this value is less than or
|
|
equal to the stats interval value, and the stats interval value can be an integer
|
|
multiple of the measurement interval.
|
|
This value is specified in multiples of 10 ms.
|
|
|
|
<b>NDL_minTxPower</b>
|
|
|
|
This number specifies the maximum transmit power allowed in the Restrictive state.
|
|
This number is specified as
|
|
|
|
physicalValue = referenceValue + number * stepSize
|
|
|
|
where the reference value is -20 dBm and the stepSize is 0.5 dBm.
|
|
For example, to specify 10 dBm (physicalValue) as the <tt>NDL_minTxPower</tt>,
|
|
set the value to
|
|
|
|
number = (physicalValue - referenceValue) / stepSize = (10 - -20)/0.5 = 30/0.5 = 60
|
|
|
|
<tt>NDL_minTxPower=60</tt>
|
|
|
|
When in the Restrictive state, any packets sent with a value higher than
|
|
<tt>NDL_minTxPower</tt> from the application will go out with
|
|
<tt>NDL_minTxPower</tt>. Any packets sent with a value less than
|
|
<tt>NDL_minTxPower</tt> from the application will go out with same power as
|
|
specified by the application.
|
|
|
|
<b>NDL_maxTxPower</b>
|
|
|
|
This number specifies the maximum transmit power allowed in the Relaxed state.
|
|
This number is specified the same way as <tt>NDL_minTxPower</tt>.
|
|
When in the Relaxed state, any packets sent with a value higher than
|
|
<tt>NDL_maxTxPower</tt> from the application
|
|
will go out with <tt>NDL_maxTxPower</tt>. Any packets sent with a value less than
|
|
<tt>NDL_maxTxPower</tt> from the application will go out with the same power as specified by
|
|
the application.
|
|
|
|
<b>NDL_defTxPower-AC_BK, NDL_defTxPower-AC_BE, NDL_defTxPower-AC_VO,
|
|
NDL_defTxPower-AC_VI</b>
|
|
|
|
<tt>NDL_defTxPower</tt> parameters are not used in the current implementation.
|
|
|
|
<b>NDL_maxPacketDuration-AC_BK</b>
|
|
|
|
This provides the maximum packet duration or air time allowed for packets sent
|
|
with the access category background (BK). This value is specified in multiples of
|
|
8 microseconds.
|
|
For example, to allow a maximum packet air time of 10 ms, set
|
|
|
|
<tt>NDL_maxPacketDuration-AC_BK=1250</tt>
|
|
|
|
Any packets of background priority sent with a length that takes air time higher
|
|
than <tt>NDL_maxPacketDuration-AC_BK</tt> will be dropped by the hardware.
|
|
|
|
<b>NDL_maxPacketDuration-AC_BE</b>
|
|
|
|
This provides the maximum packet duration or air time allowed for packets sent
|
|
with the access category best-effort (BE). This value is specified in multiples of
|
|
8 microseconds.
|
|
For example, to allow a maximum packet air time of 10 ms set
|
|
|
|
<tt>NDL_maxPacketDuration-AC_BK=1250</tt>
|
|
|
|
Any packets of best-effort priority sent with a length that takes air time
|
|
higher than <tt>NDL_maxPacketDuration-AC_BE</tt> will be dropped by the hardware.
|
|
|
|
<b>NDL_maxPacketDuration-AC_VO</b>
|
|
|
|
This provides the maximum packet duration or air time allowed for packets sent
|
|
with the access category voice (VO). This value is specified in multiples of
|
|
8 microseconds.
|
|
For example, to allow a maximum packet air time of 10 ms set
|
|
|
|
<tt>NDL_maxPacketDuration-AC_BE=1250</tt>
|
|
|
|
Any packets of voice priority sent with a length that takes air time higher than
|
|
<tt>NDL_maxPacketDuration-AC_VO</tt> will be dropped by the hardware.
|
|
|
|
<b>NDL_maxPacketDuration-AC_VI</b>
|
|
|
|
This provides the maximum packet duration or air time allowed for packets sent
|
|
with the access category video (VI). This value is specified in multiples of
|
|
8 microseconds.
|
|
For example, to allow a maximum packet air time of 10 ms set
|
|
|
|
<tt>NDL_maxPacketDuration-AC_VI=1250</tt>
|
|
|
|
Any packets of video priority sent with a length that takes air time higher than
|
|
<tt>NDL_maxPacketDuration-AC_VI</tt> will be dropped by the hardware.
|
|
|
|
<b>NDL_minPacketInterval</b>
|
|
|
|
This value is the minimum interval between two subsequent packets when the DCC
|
|
access control loop state is in the Relaxed state. This value is specified in
|
|
multiples of 10 ms.
|
|
The next packets will not be sent until the <tt>NDL_minPacketInterval</tt> time
|
|
expires after sending the previous packet.
|
|
|
|
<b>NDL_maxPacketInterval</b>
|
|
|
|
This value is the minimum interval between subsequent packets when the DCC access
|
|
control loop state is in the Restrictive state. This value is specified in
|
|
multiples of 10 ms.
|
|
The next packets will not be sent until the <tt>NDL_maxPacketInterval</tt> time
|
|
expires after sending the previous packet.
|
|
|
|
<b>NDL_defPacketInterval-AC_BK, NDL_defPacketInterval-AC_BE,
|
|
NDL_defPacketInterval-AC_VO, NDL_defPacketInterval-AC_VI</b>
|
|
|
|
These parameters are not used in the current implementation
|
|
|
|
<b>NDL_minDatarate</b>
|
|
|
|
This is the minimum data rate allowed in the Relaxed state. This value is
|
|
specified in MCS index 0 to 7, where MCS 0 corresponds to the lowest data rate
|
|
(BPSK+1/2R) and MCS7 corresponds to the highest data rate (64QAM+3/4R).
|
|
For example, for MCS2:
|
|
|
|
<tt>NDL_minDatarate=2</tt>
|
|
|
|
Any packets that are sent with an MCS index lower than <tt>NDL_minDatarate</tt>
|
|
will go out with a <tt>NDL_minDatarate</tt> data rate. Any packets that are sent with
|
|
an MCS index higher than NDL_minDatarate by the application will be sent with the same
|
|
data rate as determined by the application.
|
|
|
|
<b>NDL_maxDatarate</b>
|
|
|
|
This is the minimum data rate allowed in the Restrictive state. This value is
|
|
specified in MCS index 0 to 7, where MCS 0 corresponds to the lowest data rate
|
|
(BPSK+1/2R) and MCS7 corresponds to the highest data rate (64QAM+3/4R).
|
|
For example, for MCS6:
|
|
|
|
<tt>NDL_maxDatarate=6</tt>
|
|
|
|
Any packets that are sent with an MCS index lower than <tt>NDL_maxDatarate</tt>
|
|
will go out with NDL_maxDatarate data rate. Any packets that are sent with an MCS index
|
|
higher than <tt>NDL_maxDatarate</tt> by the application will be sent with the same
|
|
data rate as determined by the application.
|
|
|
|
<b>NDL_defDatarate-AC_BK, NDL_defDatarate-AC_BE,
|
|
NDL_defDatarate-AC_VO, NDL_defDatarate-AC_VI</b>
|
|
|
|
These parameters are not used in the current implementation
|
|
|
|
<b>NDL_minCarrierSense, NDL_maxCarrierSense,
|
|
NDL_defCarrierSense, NDL_defDccSensitivity</b>
|
|
|
|
These parameters are not used in the current implementation and the hardware is set to a
|
|
default receive sensitivity for the entire duration of DCC operation.
|
|
|
|
<b>NDL_maxCsRange, NDL_refPathLoss, NDL_minSNR</b>
|
|
|
|
These parameters are not supported in the current implementation
|
|
|
|
<b>NDL_snrBackoff-MCS0, NDL_snrBackoff-MCS1, NDL_snrBackoff-MCS2,
|
|
NDL_snrBackoff-MCS3, NDL_snrBackoff-MCS4, NDL_snrBackoff-MCS5,
|
|
NDL_snrBackoff-MCS6, NDL_snrBackoff-MCS7</b>
|
|
|
|
These values are returned as is in the DCC statistics event sent to the user.
|
|
|
|
<b>NDL_tmPacketArrivalRate-AC_BK, NDL_tmPacketArrivalRate-AC_BE,
|
|
NDL_tmPacketArrivalRate-AC_VO, NDL_tmPacketArrivalRate-AC_VI,
|
|
NDL_tmPacketAvgDuration-AC_BK, NDL_tmPacketAvgDuration-AC_BE,
|
|
NDL_tmPacketAvgDuration-AC_VO, NDL_tmPacketAvgDuration-AC_VI,
|
|
NDL_tmSignalAvgPower-AC_BK, NDL_tmSignalAvgPower-AC_BE,
|
|
NDL_tmSignalAvgPower-AC_VO, NDL_tmSignalAvgPower-AC_VI,
|
|
NDL_maxChannelUse, NDL_tmChannelUse-AC_BK,
|
|
NDL_tmChannelUse-AC_BE, NDL_tmChannelUse-AC_VO,
|
|
NDL_tmChannelUse-AC_VI</b>
|
|
|
|
All these parameters are not supported in the current implementation.
|
|
|
|
<b>NDL_minChannelLoad</b>
|
|
|
|
This is the channel load threshold for the Relaxed state. If the channel load is
|
|
lower than this, the DCC access control loop will stay in the Relaxed state. If the
|
|
channel load is equal or above this, the access control loop will go to one of the other
|
|
active states or the Restrictive state, depending on the magnitude of the channel load.
|
|
|
|
<b>NDL_maxChannelLoad</b>
|
|
|
|
This is the channel load threshold for the Restrictive state. If the channel load
|
|
is equal or above this, the DCC control loop state will transition to the Restrictive
|
|
state.
|
|
|
|
<b>NDL_refQueueStatus-AC_BK</b>
|
|
|
|
This value specifies whether the transmit queue of access category Background
|
|
is in the Open or Closed state. If the value is 1, the queue is open, and if the value is 0,
|
|
the queue is closed.
|
|
Any packets sent by the application with access category Background will be dropped
|
|
by the hardware if the queue for that access category is in the Closed state.
|
|
|
|
<b>NDL_refQueueStatus-AC_BE</b>
|
|
|
|
This value specifies whether the transmit queue of access category BE
|
|
is in the Open or Closed state. If the value is 1, the queue is open, and if the value is 0,
|
|
the queue is closed.
|
|
Any packets sent by the application with access category BE will be
|
|
dropped by the hardware if the queue for that access category is in the Closed state.
|
|
|
|
<b>NDL_refQueueStatus-AC_VI</b>
|
|
|
|
This value specifies whether the transmit queue of access category Video is in the
|
|
Open or Closed state. If the value is 1, the queue is open, and if the value is 0, the queue is
|
|
closed. Any packets sent by the application with access category Video will be
|
|
dropped by the hardware if the queue for that access category is in the Closed state.
|
|
|
|
<b>NDL_refQueueStatus-AC_VO</b>
|
|
|
|
This value specifies whether the transmit queue of access category Voice is in the
|
|
Open or Closed state. If the value is 1, the queue is open, and if the value is 0, the queue is
|
|
closed. Any packets sent by the application with access category Voice will be
|
|
dropped by the hardware if the queue for that access category is in the Closed state.
|
|
|
|
<b>NDL_queueLen-AC_BK, NDL_queueLen-AC_BE, NDL_queueLen-AC_VO,
|
|
NDL_queueLen-AC_VI</b>
|
|
|
|
These values are not supported in the current implementation
|
|
|
|
<b>NDL_timeUp</b>
|
|
|
|
This value, usually an integer multiple of the minimum DCC sampling interval,
|
|
specifies how long the state machine has to wait before going to higher, more
|
|
restrictive states.
|
|
|
|
<tt>DCC_minDCCSampling</tt> <= <tt>NDL_timeUp</tt> <= <tt>NDL_timeDown</tt>
|
|
|
|
<b>NDL_timeDown</b>
|
|
|
|
This value specifies how long the state machine must wait before going to
|
|
lower, more relaxed states. This value is usually an integer multiple of the
|
|
minimum DCC sampling and is equal to or higher than <tt>NDL_timeUp</tt>.
|
|
|
|
<b>NDL_numActiveStates</b>
|
|
|
|
This value specifies the number of active states supported by the DCC access
|
|
control loop state machine. The current implementation supports a maximum of four active
|
|
states.
|
|
|
|
<b>NDL_asChanLoad-ActiveState_1, NDL_asChanLoad-ActiveState_2,
|
|
NDL_asChanLoad-ActiveState_3, NDL_asChanLoad-ActiveState_4</b>
|
|
|
|
This value specifies the channel load threshold for Active State 1.
|
|
The last number in the parameter string indicates the state number.
|
|
|
|
<b>NDL_asDcc-AC_BK-ActiveState_1, NDL_asDcc-AC_BE-ActiveState_1,
|
|
NDL_asDcc-AC_VO-ActiveState_1, NDL_asDcc-AC_VI-ActiveState_1,
|
|
NDL_asDcc-AC_BK-ActiveState_2, NDL_asDcc-AC_BE-ActiveState_2,
|
|
NDL_asDcc-AC_VO-ActiveState_2, NDL_asDcc-AC_VI-ActiveState_2,
|
|
NDL_asDcc-AC_BK-ActiveState_3, NDL_asDcc-AC_BE-ActiveState_3,
|
|
NDL_asDcc-AC_VO-ActiveState_3, NDL_asDcc-AC_VI-ActiveState_3,
|
|
NDL_asDcc-AC_BK-ActiveState_4, NDL_asDcc-AC_BE-ActiveState_4,
|
|
NDL_asDcc-AC_VO-ActiveState_4, NDL_asDcc-AC_VI-ActiveState_4</b>
|
|
|
|
<tt>NDL_asDcc</tt> is a bitmap that is specified for each access category and
|
|
state. This bitmap selects the DCC mechanisms that will get a new threshold in
|
|
the given state.
|
|
|
|
This is the meaning of each bit in the bitmap:
|
|
|
|
| Value | DCC Mechanism |
|
|
|:------|---------------|
|
|
| 1 | TPC |
|
|
| 2 | TRC |
|
|
| 4 | TDC |
|
|
| 8 | DSC |
|
|
| 16 | TAC |
|
|
| 32 | reserved |
|
|
| 0 | None |
|
|
| 63 | All |
|
|
|
|
|
|
For example:
|
|
|
|
<tt>NDL_asDcc-AC_VI-ActiveState_1=7</tt>
|
|
|
|
means TPC, TRC, and TDC will get
|
|
new thresholds in Active State 1.
|
|
|
|
<b>NDL_asTxPower-AC_BK-ActiveState_1,
|
|
NDL_asTxPower-AC_BE-ActiveState_1,
|
|
NDL_asTxPower-AC_VO-ActiveState_1,
|
|
NDL_asTxPower-AC_VI-ActiveState_1,
|
|
NDL_asTxPower-AC_BK-ActiveState_2,
|
|
NDL_asTxPower-AC_BE-ActiveState_2,
|
|
NDL_asTxPower-AC_VO-ActiveState_2,
|
|
NDL_asTxPower-AC_VI-ActiveState_2,
|
|
NDL_asTxPower-AC_BK-ActiveState_3,
|
|
NDL_asTxPower-AC_BE-ActiveState_3,
|
|
NDL_asTxPower-AC_VO-ActiveState_3,
|
|
NDL_asTxPower-AC_VI-ActiveState_3,
|
|
NDL_asTxPower-AC_BK-ActiveState_4,
|
|
NDL_asTxPower-AC_BE-ActiveState_4,
|
|
NDL_asTxPower-AC_VO-ActiveState_4,
|
|
NDL_asTxPower-AC_VI-ActiveState_4</b>
|
|
|
|
This parameter specifies a new maximum power threshold for the given state and
|
|
access category. The number specified for this follows the same formula as
|
|
<tt>NDL_minTxPower</tt>, specified in section 5.7.
|
|
If the value is set to 'ref', it will use the thresholds from the previous
|
|
state.
|
|
|
|
For example:
|
|
|
|
<tt>NDL_asTxPower-AC_VI-ActiveState_1=60,ref</tt>
|
|
|
|
means, in Active State 1,
|
|
the new maximum transmit power for the first channel is 10 dBm and the new maximum
|
|
transmit power for the second channel is the same as the maximum transmit power for the
|
|
second channel in the previous state for any packets with the video access
|
|
category.
|
|
|
|
<b>NDL_asPacketInterval-AC_BK-ActiveState_1,
|
|
NDL_asPacketInterval-AC_BE-ActiveState_1,
|
|
NDL_asPacketInterval-AC_VO-ActiveState_1,
|
|
NDL_asPacketInterval-AC_VI-ActiveState_1,
|
|
NDL_asPacketInterval-AC_BK-ActiveState_2,
|
|
NDL_asPacketInterval-AC_BE-ActiveState_2,
|
|
NDL_asPacketInterval-AC_VO-ActiveState_2,
|
|
NDL_asPacketInterval-AC_VI-ActiveState_2,
|
|
NDL_asPacketInterval-AC_BK-ActiveState_3,
|
|
NDL_asPacketInterval-AC_BE-ActiveState_3,
|
|
NDL_asPacketInterval-AC_VO-ActiveState_3,
|
|
NDL_asPacketInterval-AC_VI-ActiveState_3,
|
|
NDL_asPacketInterval-AC_BK-ActiveState_4,
|
|
NDL_asPacketInterval-AC_BE-ActiveState_4,
|
|
NDL_asPacketInterval-AC_VO-ActiveState_4,
|
|
NDL_asPacketInterval-AC_VI-ActiveState_4</b>
|
|
|
|
This parameter specifies the new minimum packet interval threshold for the given
|
|
state and access category. This value is specified in multiples of 10 ms.
|
|
If the value is set to 'ref', it will use the thresholds from the previous
|
|
state.
|
|
|
|
For example:
|
|
|
|
<tt>NDL_asPacketInterval-AC_VO-ActiveState_3=100,ref</tt>
|
|
|
|
means, in Active
|
|
State 3, the new minimum packet interval threshold for the first channel is 1
|
|
second and the new minimum packet interval for the second channel is the same as
|
|
in the previous state for any packets with the voice access category.
|
|
|
|
<b>NDL_asDatarate-AC_BK-ActiveState_1,
|
|
NDL_asDatarate-AC_BE-ActiveState_1,
|
|
NDL_asDatarate-AC_VO-ActiveState_1,
|
|
NDL_asDatarate-AC_VI-ActiveState_1,
|
|
NDL_asDatarate-AC_BK-ActiveState_2,
|
|
NDL_asDatarate-AC_BE-ActiveState_2,
|
|
NDL_asDatarate-AC_VO-ActiveState_2,
|
|
NDL_asDatarate-AC_VI-ActiveState_2,
|
|
NDL_asDatarate-AC_BK-ActiveState_3,
|
|
NDL_asDatarate-AC_BE-ActiveState_3,
|
|
NDL_asDatarate-AC_VO-ActiveState_3,
|
|
NDL_asDatarate-AC_VI-ActiveState_3,
|
|
NDL_asDatarate-AC_BK-ActiveState_4,
|
|
NDL_asDatarate-AC_BE-ActiveState_4,
|
|
NDL_asDatarate-AC_VO-ActiveState_4,
|
|
NDL_asDatarate-AC_VI-ActiveState_4</b>
|
|
|
|
This parameter specifies the minimum data rate for the given state and access
|
|
category. This value is specified as MCS index 0 to 7.
|
|
If the value is set to 'ref', it will use the thresholds from the previous
|
|
state.
|
|
|
|
For example:
|
|
|
|
<tt>NDL_asDatarate-AC_VO-ActiveState_2=ref, 6</tt>
|
|
|
|
means, in Active State 2,
|
|
the minimum data rate for the first channel is the same as in the previous state,
|
|
and the minimum data rate for the second channel is MCS6.
|
|
|
|
<b>NDL_asCarrierSense-AC_BK-ActiveState_1,
|
|
NDL_asCarrierSense-AC_BE-ActiveState_1,
|
|
NDL_asCarrierSense-AC_VO-ActiveState_1,
|
|
NDL_asCarrierSense-AC_VI-ActiveState_1,
|
|
NDL_asCarrierSense-AC_BK-ActiveState_2,
|
|
NDL_asCarrierSense-AC_BE-ActiveState_2,
|
|
NDL_asCarrierSense-AC_VO-ActiveState_2,
|
|
NDL_asCarrierSense-AC_VI-ActiveState_2,
|
|
NDL_asCarrierSense-AC_BK-ActiveState_3,
|
|
NDL_asCarrierSense-AC_BE-ActiveState_3,
|
|
NDL_asCarrierSense-AC_VO-ActiveState_3,
|
|
NDL_asCarrierSense-AC_VI-ActiveState_3,
|
|
NDL_asCarrierSense-AC_BK-ActiveState_4,
|
|
NDL_asCarrierSense-AC_BE-ActiveState_4,
|
|
NDL_asCarrierSense-AC_VO-ActiveState_4,
|
|
NDL_asCarrierSense-AC_VI-ActiveState_4</b>
|
|
|
|
These parameters are not used in the current implementation.
|
|
|
|
*/
|