I wanted to follow up, to my previous post, with some things I considered afterwards...
Note: Test before implimenting any changes, as they may cause a network outage!
As I mentioned, in the previous post, in cases where the Ethernet port is running 100M in a 1G+ network,
and using VoIP, as long as there arn't VoIP quality issue, I wouldn't stress over the TX drops.
If you can't upgrade the device or NIC to GigEthernet, there isn't much you can do to solve the TX drops.
Most of the drops are to PCs, and TCP has all sorts of mechnisms to help deals with lost packets.
If this assurance isn't enough for you, here some additional things to look at, and consider:
I highly recomend going to HPE, and get the command reference PDF(s) for your switch and switch release.
The 16.x guild actually does a very good job going into how QoS works, and is implimented on the ArubaOS (Procurve) switches.
Note: I have run into commands, and command output in the documentation, that is are available in the CLI, so keep that in mind.
Physical layer diagnostics
On the 2930, 3810, and many other later 'Procurve' switches you can run the `test cable-diagnostics <port>` as a quick and dirty cable test.
This will disrupt traffic on the port being tested, so use with caution.
Ethernet port QoS Queue
Look at the output priority queues using the command `show interfaces queues all`
- Q1-Q2 is the lowest output priory (small buffer)
- Q3-Q4 is where all 'regular' traffic is prioritized (largest buffer)
- Q5-Q6 is for higher priority. (small buffer)
- Q7-Q8 is the highest priority queues, i.e. for Voice. (small buffer)
The Tx Drop Bytes is the sum of all the Egress Queue Dropped Bytes, and hopefully only Q3 shows any dropped bytes.
In cases where a PC is connected through phyiscal phone, you will see the greates number of dropped Bytes in Q3: the default.
You want to see Q7 or Q8 with traffic, and no preferably no drops.
VoIP QoS
If your network has a VoIP VLAN, for physical phones, you should, at least, have the Voice VLAN setup as thus: `vlan <ID> voice`
Enabling this feature, will preserve the QoS marking. Therefore, if the packet is mark as 802.1p 5 it will be placed in high priority queue 6.
Command `show qos queue-config` will show the tag to queue mapping.
Note: enabling this command will use LLDP to negotiate VLAN tagging for the Voice VLAN, so do research before using it.
Some phones have rather low, DSCP/CoS markings, which places the traffic in lower priority queues. You can re-mark all Voice VLAN traffic, so it will be placed in a higher
priory queue.
vlan <ID> qos priority 7
This works on voice and non-voice VLANs
.
NOTE: Reclassifying the qos priority on a PC to a higher priority is a really bad idea, and will net no advantage, especially since the queues are smaller.
i.e. If everyone with tickets to a concert, have express lanes tickets, then every waits the same as if they had regular tickets.
Since the area allocated, for the express ticket processing is smaller, there would be even slower proccessing.
Flow Control (802.3x)
- Flow control is a tricky subject, and wholy depends on the client to request a pause in traffic.
- The client device has to first support flow control.
- Most 100M chipsets don't support 802.3x flow control.
- The TX Drop is most likely to be caused by input/output buffer/queue exhastion, not the client not being able to keep up with traffic.
Enabling flow control probably wont help, and may cause issues.
tcp-push-preserve
Per the Aruba Advanced Traffic Management Guide for ArubaOS switch 16.10:
- When enabled, the tcp-push-preserve command results in TCP packets with the push bit set are being
given priority by buffering them on the ingress packet queue of the receiving port if the output buffer of
the packets destination port is full. That way the packets remain in the input queue when the egress
queue is congested. In some situations, a large amount of TCP traffic with the push bit set could
overwhelm the input queue, causing packet drops and possible network outage. - When disabled (the default), TCP packets flow with the push bit set and are dropped normally when the
egress queue is congested.
In 15.17 and earlier releases, the TCP push preserve feature is enabled by default.
When upgrading to the 16.01 release, the default for tcp-push-preserve will be changed from enabled to disabled.
The default in 16.01 and releases is tcp-push-preserve disable.
This change was made due to performance considerations in modern networks.
I've tried enabling and disabling, and there was no appriciable improvment to TX Drops statistics, on the 100M Ethernet ports.
On the other hand, the command didn't incure any performace issues.
Good luck!