Tags
In Autonomous(IOS) AP, you can configure number of attempts the wireless device makes to send a packet before giving up & dropping the packet. There are two ways of configuring this feature. One method for best effort (priority value 0) traffic & another method for non-best effort (priority value 1-7)
1. Best-effort Traffic (packet retries command)
2. Non-Best-effort Traffic (packet max-retries command )
First we will look at how to configure this for best effort traffic (Priority value 0 traffic). These to be configured under the Radio interfaces (d0 for 2.4GHz or d1 for 5GHz ). You can use the packet retries configuration interface command to specify the maximum number of attempts to send a packet. The default number of retries is 32.
Below example shows how to configure Radio Interface 1 (5GHz) to attempt 16 times before giving up the sending wireless packet. By using “drop-packet” keyword at the end you can enforce not to drop the association, instead just drop the packet when maximum retries reached. Remember that this is only applicable for best effort (priority 0) traffic.
AAP1(config)#int d1 AAP1(config-if)#packet ? max-retries maximum non-best-effort data packet retries before discard pkt retries maximum best-effort data packet retries speed qos user-priority(up) downlink rates for discard-enabled packets timeout up packet aging/discard timeout threshold AAP1(config-if)#packet retries ? <1-128> number of packet retries before giving up AAP1(config-if)#packet retries 16 ? drop-packet Don't disassociate station, instead just drop packets when maximum retries is reached AAP1(config-if)#packet retries 16 drop-packet
Next We will look at how to configure that parameter for non-best-effort traffic (ie priority value 1-7 traffic). You can use “packet max-retries” interface CLI configuration command to specify the maximum number of attempts per non-best-effort data packet before discarding the packet. Here is the syntax of the CLI command.
packet max-retries <number 1> <number 2> fail-threshold <number 3> <number 4> priority <value> drop-packet
max-retries <number 1> <number 2>
Specifies the maximum number (0 to 128) of non-best-effort data packet retries before discarding the packet. number 1 retries is used if number 3 fail-threshold has not exceeded and number 2 retries is used if number 3 fail-threshold has been exceeded. number 1 default is 3 and number 2 default is 0
fail-threshold <number 3> <number 4>
Specifies the thresholds for the maximum number of consecutive dropped packets (0 to 1000). number 3 fail-threshold is used to switch max-retries from number 1 to number 2 as described above. If number 4 fail-threshold has exceeded, the client will be disassociated. number 3 default is 100 and number 4 default is 500.
priority <value>
Specifies the QOS user priority (1 to 7). value does not have a default value.
drop-packet
Specifies that priority packets should not be retried and that the packets should be dropped when the maximum number of retries has been reached.
Here is a configuration example for priority value 5 traffic. This will do the following.
1. If consecutive drop packets(of priority 5) is below 25 it will try max 5 times before discarding that packet.
2. If consecutive drop packet (of priority 5) is more than 25 (but less than 100) it will try max 2 times before discarding that packet.
3. If consecutive drop packets (of priority 5) is reached 100 client will be disassociated.
AAP1(config-if)#packet max-retries ?
<0-128> # packet retries before dropping pkt if first fail-threshold not reached
AAP1(config-if)#packet max-retries 5 ?
<0-128> # packet retries before dropping pkt if 2nd fail-threshold not reached
AAP1(config-if)#packet max-retries 5 2 ?
fail-threshold maximum # consecutive dropped packets thresholds
AAP1(config-if)#packet max-retries 5 2 fail-threshold ?
<0-1000> # consecutive dropped packets before switching max-retries thresholds
AAP1(config-if)#packet max-retries 5 2 fail-threshold 25 ?
<0-1000> number of consecutive dropped packets before disassociating client
AAP1(config-if)#packet max-retries 5 2 fail-threshold 25 100 ?
priority qos user-priority
AAP1(config-if)#packet max-retries 5 2 fail-threshold 25 100 priority ?
<0-7> qos user-priority number
AAP1(config-if)#packet max-retries 5 2 fail-threshold 25 100 priority 5 ?
drop-packet Don't retry pkts, just drop packets when max retries reached
AAP1(config-if)#packet max-retries 5 2 fail-threshold 25 100 priority 5 drop-packet
There are other two configuration parameters available related to “packet max-retry” interface configuration.
1. packet speed
2. packet timeout
You can use the packet speed configuration interface command to specify down-link data rates and priorities for packets which have been declared discard-eligible in the “packet max-retries” command. This command has following syntax
packet speed [rate1....rateN | default] priority <0-7>
802.11b default data rates (Mbps): 5.5, 11.0
802.11a default data rates (Mbps): 6.0, 12.0, 24.0
802.11g default data rates (Mbps): 5.5, 6.0, 11.0, 12.0, 24.0
Priority default is 6(voice). Currently, only priority 6 is allowed pending future releases.
Here is an configuration example
AAP1(config-if)#packet speed ?
12.0 Allow 12.0 Mb/s rate
18.0 Allow 18.0 Mb/s rate
24.0 Allow 24.0 Mb/s rate
36.0 Allow 36.0 Mb/s rate
48.0 Allow 48.0 Mb/s rate
54.0 Allow 54.0 Mb/s rate
6.0 Allow 6.0 Mb/s rate
9.0 Allow 9.0 Mb/s rate
default Set default rates
priority qos user-priority(first enter rates, followed by priority)
AAP1(config-if)#packet speed default ?
12.0 Allow 12.0 Mb/s rate
18.0 Allow 18.0 Mb/s rate
24.0 Allow 24.0 Mb/s rate
36.0 Allow 36.0 Mb/s rate
48.0 Allow 48.0 Mb/s rate
54.0 Allow 54.0 Mb/s rate
6.0 Allow 6.0 Mb/s rate
9.0 Allow 9.0 Mb/s rate
priority qos user-priority(first enter rates, followed by priority)
AAP1(config-if)#packet speed default priority ?
<6-6> qos user-priority number, currently only support voice priority = 6
AAP1(config-if)#packet speed default priority 6
You can use the “packet timeout” configuration interface command to specify the packet timeout period for a priority. Queued packets whose age has exceeded the timeout threshold will be discarded if they have been declared discard-eligible in the “packet max-retries” command. The timeout default is 35 milliseconds.This command is having following syntax “packet timeout <1-128> priority <0-7>”
AAP1(config-if)#packet timeout ?
<0-128> discard up pkt in queue if exceed timeout threshold in msec
AAP1(config-if)#packet timeout 25 ?
priority qos user-priority
AAP1(config-if)#packet timeout 25 p
AAP1(config-if)#packet timeout 25 priority ?
<0-7> qos user-priority number
AAP1(config-if)#packet timeout 25 priority 6
Great information! What would be an example of best effort traffic? I always thought the “packet retries xx drop-packet” was for all packets. Thanks again.
Which mean AC_BE (as per 802.11e traffic classification) traffic which is having User Priority 0 in the wireless frames. Most of the data traffic comes with WMM UP=0 (ie BE), RTP voice traffic comes as UP=6, SCCP comes as UP=4 from a Cisco phone. (all depends on how end device do the wireless traffic classification in driver level)
HTH
Rasika
Got it. I have used the packet retries in a oil field for monitoring rigs from vehicles and never had an issue. This explains why. It was only data. I have a rail project in SoCal that is going to use voice with WGB on the engine along with other telemetry data. There are a handful of tweaks I already have configured along with my packet retries. NOW, I need to dig deeper into max-retries feature. I’ll talk to the IOS developer and get his input as well and share it with you. Thanks again. Keep it coming. 🙂
Yes, If you can get input like that & share with us, it will be really nice.
Thank you.