HALF-DUPLEX CONNECTIONS
Do you have APs using half-duplex connections? We were surprised to find one while visiting the “APs/Devices > Monitor” page in AirWave. Even worse, when we looked at the AP’s Ethernet switch we found input errors and collisions. Upon investigation we found the AP was powered by a 100 Mbps power injector, which was causing a failure in the 802.3 auto-negotiation protocol and a duplex mismatch. Upgrading to a 1 Gbps power injector solved the problem. But we wondered if we had other half-duplex connections and how we might get AirWave to tell us about them.
It turns out that AirWave can provide you with this information. Log on to the Linux CLI of your AirWave appliance and run “su” to acquire the root privileges and environment. You can now get to a PostgreSQL prompt by running “psql –U airwave”. For easy copy/paste or printing operations, redirect your query output to a file with the command:
\o filename
Now issue the following query to find all APs with a half-duplex connection on Ethernet port 0:
select a.name, a.apparent_ip, i.port, i.name, i.duplex
from interface i
join ap a
on i.ap_id = a.id
where i.name = 'Enet0' and i.duplex = 2
order by a.ap_group_id, a.name;
This returned a dozen APs from our database. Each of these had to be individually investigated and fixed. We found the following root causes:
6 100 Mbps power injectors
3 Cabling issues
1 Defective Access Point
1 Mistakenly plugged into Ethernet 1 instead of Ethernet 0
1 Mesh Point – Normal condition to be half-duplex
CONNECTIONS RUNNING AT 100 Mbps
This led us to query for all APs running at 100 Mbps instead of 1 Gbps. This query returned 297 Access Points and we are investigating each one. Many of them are on FastEthernet switches but we are also finding many that can be fixed. In addition to the causes already listed we have found poorly seated connections, a bad switch port, cable runs in excess of 100 meters and legacy installation issues. Here is the query for this information:
select a.name, a.apparent_ip, i.port, i.name, i.duplex
from interface i
join ap a
on i.ap_id = a.id
where i.name = 'Enet0' and i.if_speed_in < 1000000000
order by a.primary_controller, a.ap_group_id, a.apparent_ip;
We suspect this same information can be found through the AirWave API but we don’t know how to do that. If you are familiar with using the AirWave API, please share with us so we can get to know it too.