Search Linux Wireless

Re: [ath5k-devel] [PATCH 14/30] ath5k: Extend get_default_sifs/slot_time

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2010/11/24 Jonathan Guerin <jonathan@xxxxxxxxxxxx>:
> On Wed, Nov 24, 2010 at 5:09 AM, Nick Kossifidis <mickflemm@xxxxxxxxx> wrote:
>> Â* Extend get_default_sifs/slot_time to include timings for turbo
>> Âhalf and quarter rate modes.
>>
>> Â* AR5210 code for now uses timings already on core clock units
>> Âinstead of usecs so rename them (we 'll clean it up later).
>>
>> ÂSigned-off-by: Nick Kossifidis <mickflemm@xxxxxxxxx>
>> ---
>> Âdrivers/net/wireless/ath/ath5k/ath5k.h | Â 24 ++++++++++++--
>> Âdrivers/net/wireless/ath/ath5k/pcu.c  |  52 ++++++++++++++++++++++++--------
>> Âdrivers/net/wireless/ath/ath5k/qcu.c  |  16 +++++----
>> Â3 files changed, 68 insertions(+), 24 deletions(-)
>>
>> diff --git a/drivers/net/wireless/ath/ath5k/ath5k.h b/drivers/net/wireless/ath/ath5k/ath5k.h
>> index 005cad0..e11fc8f 100644
>> --- a/drivers/net/wireless/ath/ath5k/ath5k.h
>> +++ b/drivers/net/wireless/ath/ath5k/ath5k.h
>> @@ -226,16 +226,16 @@
>> Â#define AR5K_INIT_USEC Â Â Â Â Â Â Â Â Â Â Â Â 39
>> Â#define AR5K_INIT_USEC_TURBO Â Â Â Â Â Â Â Â Â 79
>> Â#define AR5K_INIT_USEC_32 Â Â Â Â Â Â Â Â Â Â Â31
>> -#define AR5K_INIT_SLOT_TIME Â Â Â Â Â Â Â Â Â Â396
>> -#define AR5K_INIT_SLOT_TIME_TURBO Â Â Â Â Â Â Â480
>> +#define AR5K_INIT_SLOT_TIME_CLOCK Â Â Â Â Â Â Â396
>
> This comes out as 9.9us (with a clock multiplier of 40), rather than 9
> - should be 360?
>
>> +#define AR5K_INIT_SLOT_TIME_TURBO_CLOCK Â Â Â Â Â Â Â Â480
>> Â#define AR5K_INIT_ACK_CTS_TIMEOUT Â Â Â Â Â Â Â1024
>
> From a previous post I'd made:
>
> According to the 802.11-2007 spec document, the ACKTimeout value is
> (Section 9.2.8 ACK procedure):
> ACKTimeout = aSIFSTime + aSlotTime + aPHY-RX-START-Delay
>
> From Table 17-15âOFDM PHY characteristics, the values are:
> aSIFSTime = 16
> aSlotTime = 9
> aPHY-RX-START-Delay = 25
>
> Therefore, ACKTimeout = 50
>
> With a value of 1024, the ACKTIMEOUT is actually 25.
>
>> Â#define AR5K_INIT_ACK_CTS_TIMEOUT_TURBO Â Â Â Â Â Â Â Â0x08000800
>> Â#define AR5K_INIT_PROG_IFS Â Â Â Â Â Â Â Â Â Â 920
>> Â#define AR5K_INIT_PROG_IFS_TURBO Â Â Â Â Â Â Â 960
>> Â#define AR5K_INIT_EIFS Â Â Â Â Â Â Â Â Â Â Â Â 3440
>
> From the 802.11-2007 Spec (9.2.10 DCF timing relations):
> The EIFS is derived from the SIFS and the DIFS and the length of time
> it takes to transmit an ACK Control frame at the lowest PHY mandatory
> rate by the following equation:
> EIFS = aSIFSTime + DIFS + ACKTxTime
> where ACKTxTime is the time expressed in microseconds required to
> transmit an ACK frame, including
> preamble, PLCP header and any additional PHY dependent information, at
> the lowest PHY mandatory rate.
>
> So, EIFS = 16 + 32 + 44 (ACKTX @ 24Mbps) = 92
> or 16 + 32 + 60 (ACKTX @ 6Mbps) = 108
>
> The current value is 86, which I guess is a nice midpoint, but is
> there any reasoning for this value? It should really be set to the
> longest value of 108, as an EIFS is only used when we have no
> information about a frame because it failed the checksum.
>
>> Â#define AR5K_INIT_EIFS_TURBO Â Â Â Â Â Â Â Â Â 6880
>> -#define AR5K_INIT_SIFS Â Â Â Â Â Â Â Â Â Â Â Â 560
>> -#define AR5K_INIT_SIFS_TURBO Â Â Â Â Â Â Â Â Â 480
>> +#define AR5K_INIT_SIFS_CLOCK Â Â Â Â Â Â Â Â Â 560
>
> This is wrong, when you divide by the clock rate, you get a SIFS of 14, not 16.
>
> Cheers,
>
> Jonathan
>

All _CLOCK variables are left here temporarily until we clean up
AR5210 stuff later, i know it's wrong ;-)
Check out patch 16 that adds the new set_ifs_intervals, there we set
them property, i just left them here so that code can still compile.

-- 
GPG ID: 0xD21DB2DB
As you read this post global entropy rises. Have Fun ;-)
Nick
--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux