1e793b86aSOleksij Rempel.. SPDX-License-Identifier: GPL-2.0 2e793b86aSOleksij Rempel 3e793b86aSOleksij RempelDiagnostic Concept for Investigating Twisted Pair Ethernet Variants at OSI Layer 1 4e793b86aSOleksij Rempel================================================================================== 5e793b86aSOleksij Rempel 6e793b86aSOleksij RempelIntroduction 7e793b86aSOleksij Rempel------------ 8e793b86aSOleksij Rempel 9e793b86aSOleksij RempelThis documentation is designed for two primary audiences: 10e793b86aSOleksij Rempel 11e793b86aSOleksij Rempel1. **Users and System Administrators**: For those dealing with real-world 12e793b86aSOleksij Rempel Ethernet issues, this guide provides a practical, step-by-step 13e793b86aSOleksij Rempel troubleshooting flow to help identify and resolve common problems in Twisted 14e793b86aSOleksij Rempel Pair Ethernet at OSI Layer 1. If you're facing unstable links, speed drops, 15e793b86aSOleksij Rempel or mysterious network issues, jump right into the step-by-step guide and 16e793b86aSOleksij Rempel follow it through to find your solution. 17e793b86aSOleksij Rempel 18e793b86aSOleksij Rempel2. **Kernel Developers**: For developers working with network drivers and PHY 19e793b86aSOleksij Rempel support, this documentation outlines the diagnostic process and highlights 20e793b86aSOleksij Rempel areas where the Linux kernel’s diagnostic interfaces could be extended or 21e793b86aSOleksij Rempel improved. By understanding the diagnostic flow, developers can better 22e793b86aSOleksij Rempel prioritize future enhancements. 23e793b86aSOleksij Rempel 24e793b86aSOleksij RempelStep-by-Step Diagnostic Guide from Linux (General Ethernet) 25e793b86aSOleksij Rempel----------------------------------------------------------- 26e793b86aSOleksij Rempel 27e793b86aSOleksij RempelThis diagnostic guide covers common Ethernet troubleshooting scenarios, 28e793b86aSOleksij Rempelfocusing on **link stability and detection** across different Ethernet 29e793b86aSOleksij Rempelenvironments, including **Single-Pair Ethernet (SPE)** and **Multi-Pair 30e793b86aSOleksij RempelEthernet (MPE)**, as well as power delivery technologies like **PoDL** (Power 31e793b86aSOleksij Rempelover Data Line) and **PoE** (Clause 33 PSE). 32e793b86aSOleksij Rempel 33e793b86aSOleksij RempelThe guide is designed to help users diagnose physical layer (Layer 1) issues on 34e793b86aSOleksij Rempelsystems running **Linux kernel version 6.11 or newer**, utilizing **ethtool 35e793b86aSOleksij Rempelversion 6.10 or later** and **iproute2 version 6.4.0 or later**. 36e793b86aSOleksij Rempel 37e793b86aSOleksij RempelIn this guide, we assume that users may have **limited or no access to the link 38e793b86aSOleksij Rempelpartner** and will focus on diagnosing issues locally. 39e793b86aSOleksij Rempel 40e793b86aSOleksij RempelDiagnostic Scenarios 41e793b86aSOleksij Rempel~~~~~~~~~~~~~~~~~~~~ 42e793b86aSOleksij Rempel 43e793b86aSOleksij Rempel- **Link is up and stable, but no data transfer**: If the link is stable but 44e793b86aSOleksij Rempel there are issues with data transmission, refer to the **OSI Layer 2 45e793b86aSOleksij Rempel Troubleshooting Guide**. 46e793b86aSOleksij Rempel 47e793b86aSOleksij Rempel- **Link is unstable**: Link resets, speed drops, or other fluctuations 48e793b86aSOleksij Rempel indicate potential issues at the hardware or physical layer. 49e793b86aSOleksij Rempel 50e793b86aSOleksij Rempel- **No link detected**: The interface is up, but no link is established. 51e793b86aSOleksij Rempel 52e793b86aSOleksij RempelVerify Interface Status 53e793b86aSOleksij Rempel~~~~~~~~~~~~~~~~~~~~~~~ 54e793b86aSOleksij Rempel 55e793b86aSOleksij RempelBegin by verifying the status of the Ethernet interface to check if it is 56e793b86aSOleksij Rempeladministratively up. Unlike `ethtool`, which provides information on the link 57e793b86aSOleksij Rempeland PHY status, it does not show the **administrative state** of the interface. 58e793b86aSOleksij RempelTo check this, you should use the `ip` command, which describes the interface 59e793b86aSOleksij Rempelstate within the angle brackets `"<>"` in its output. 60e793b86aSOleksij Rempel 61e793b86aSOleksij RempelFor example, in the output `<NO-CARRIER,BROADCAST,MULTICAST,UP>`, the important 62e793b86aSOleksij Rempelkeywords are: 63e793b86aSOleksij Rempel 64e793b86aSOleksij Rempel- **UP**: The interface is in the administrative "UP" state. 65e793b86aSOleksij Rempel- **NO-CARRIER**: The interface is administratively up, but no physical link is 66e793b86aSOleksij Rempel detected. 67e793b86aSOleksij Rempel 68e793b86aSOleksij RempelIf the output shows `<BROADCAST,MULTICAST>`, this indicates the interface is in 69e793b86aSOleksij Rempelthe administrative "DOWN" state. 70e793b86aSOleksij Rempel 71e793b86aSOleksij Rempel- **Command:** `ip link show dev <interface>` 72e793b86aSOleksij Rempel 73e793b86aSOleksij Rempel- **Expected Output:** 74e793b86aSOleksij Rempel 75e793b86aSOleksij Rempel .. code-block:: bash 76e793b86aSOleksij Rempel 77e793b86aSOleksij Rempel 4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 ... 78e793b86aSOleksij Rempel link/ether 88:14:2b:00:96:f2 brd ff:ff:ff:ff:ff:ff 79e793b86aSOleksij Rempel 80e793b86aSOleksij Rempel- **Interpreting the Output:** 81e793b86aSOleksij Rempel 82e793b86aSOleksij Rempel - **Administrative UP State**: 83e793b86aSOleksij Rempel 84e793b86aSOleksij Rempel - If the output contains **"UP"**, the interface is administratively up, 85e793b86aSOleksij Rempel and the system is trying to establish a physical link. 86e793b86aSOleksij Rempel 87e793b86aSOleksij Rempel - If you also see **"NO-CARRIER"**, it means the physical link has not been 88e793b86aSOleksij Rempel detected, indicating potential Layer 1 issues like a cable fault, 89e793b86aSOleksij Rempel misconfiguration, or no connection at the link partner. In this case, 90e793b86aSOleksij Rempel proceed to the **Inspect Link Status and PHY Configuration** section. 91e793b86aSOleksij Rempel 92e793b86aSOleksij Rempel - **Administrative DOWN State**: 93e793b86aSOleksij Rempel 94e793b86aSOleksij Rempel - If the output lacks **"UP"** and shows only states like 95e793b86aSOleksij Rempel **"<BROADCAST,MULTICAST>"**, it means the interface is administratively 96e793b86aSOleksij Rempel down. In this case, bring the interface up using the following command: 97e793b86aSOleksij Rempel 98e793b86aSOleksij Rempel .. code-block:: bash 99e793b86aSOleksij Rempel 100e793b86aSOleksij Rempel ip link set dev <interface> up 101e793b86aSOleksij Rempel 102e793b86aSOleksij Rempel- **Next Steps**: 103e793b86aSOleksij Rempel 104e793b86aSOleksij Rempel - If the interface is **administratively up** but shows **NO-CARRIER**, 105e793b86aSOleksij Rempel proceed to the **Inspect Link Status and PHY Configuration** section to 106e793b86aSOleksij Rempel troubleshoot potential physical layer issues. 107e793b86aSOleksij Rempel 108e793b86aSOleksij Rempel - If the interface was **administratively down** and you have brought it up, 109e793b86aSOleksij Rempel ensure to **repeat this verification step** to confirm the new state of the 110e793b86aSOleksij Rempel interface before proceeding 111e793b86aSOleksij Rempel 112e793b86aSOleksij Rempel - **If the interface is up and the link is detected**: 113e793b86aSOleksij Rempel 114e793b86aSOleksij Rempel - If the output shows **"UP"** and there is **no `NO-CARRIER`**, the 115e793b86aSOleksij Rempel interface is administratively up, and the physical link has been 116e793b86aSOleksij Rempel successfully established. If everything is working as expected, the Layer 117e793b86aSOleksij Rempel 1 diagnostics are complete, and no further action is needed. 118e793b86aSOleksij Rempel 119e793b86aSOleksij Rempel - If the interface is up and the link is detected but **no data is being 120e793b86aSOleksij Rempel transferred**, the issue is likely beyond Layer 1, and you should proceed 121e793b86aSOleksij Rempel with diagnosing the higher layers of the OSI model. This may involve 122e793b86aSOleksij Rempel checking Layer 2 configurations (such as VLANs or MAC address issues), 123e793b86aSOleksij Rempel Layer 3 settings (like IP addresses, routing, or ARP), or Layer 4 and 124e793b86aSOleksij Rempel above (firewalls, services, etc.). 125e793b86aSOleksij Rempel 126e793b86aSOleksij Rempel - If the **link is unstable** or **frequently resetting or dropping**, this 127e793b86aSOleksij Rempel may indicate a physical layer issue such as a faulty cable, interference, 128e793b86aSOleksij Rempel or power delivery problems. In this case, proceed with the next step in 129e793b86aSOleksij Rempel this guide. 130e793b86aSOleksij Rempel 131e793b86aSOleksij RempelInspect Link Status and PHY Configuration 132e793b86aSOleksij Rempel~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 133e793b86aSOleksij Rempel 134e793b86aSOleksij RempelUse `ethtool -I` to check the link status, PHY configuration, supported link 135e793b86aSOleksij Rempelmodes, and additional statistics such as the **Link Down Events** counter. This 136e793b86aSOleksij Rempelstep is essential for diagnosing Layer 1 problems such as speed mismatches, 137e793b86aSOleksij Rempelduplex issues, and link instability. 138e793b86aSOleksij Rempel 139e793b86aSOleksij RempelFor both **Single-Pair Ethernet (SPE)** and **Multi-Pair Ethernet (MPE)** 140e793b86aSOleksij Rempeldevices, you will use this step to gather key details about the link. **SPE** 141e793b86aSOleksij Rempellinks generally support a single speed and mode without autonegotiation (with 142e793b86aSOleksij Rempelthe exception of **10BaseT1L**), while **MPE** devices typically support 143e793b86aSOleksij Rempelmultiple link modes and autonegotiation. 144e793b86aSOleksij Rempel 145e793b86aSOleksij Rempel- **Command:** `ethtool -I <interface>` 146e793b86aSOleksij Rempel 147e793b86aSOleksij Rempel- **Example Output for SPE Interface (Non-autonegotiation)**: 148e793b86aSOleksij Rempel 149e793b86aSOleksij Rempel .. code-block:: bash 150e793b86aSOleksij Rempel 151e793b86aSOleksij Rempel Settings for spe4: 152e793b86aSOleksij Rempel Supported ports: [ TP ] 153e793b86aSOleksij Rempel Supported link modes: 100baseT1/Full 154e793b86aSOleksij Rempel Supported pause frame use: No 155e793b86aSOleksij Rempel Supports auto-negotiation: No 156e793b86aSOleksij Rempel Supported FEC modes: Not reported 157e793b86aSOleksij Rempel Advertised link modes: Not applicable 158e793b86aSOleksij Rempel Advertised pause frame use: No 159e793b86aSOleksij Rempel Advertised auto-negotiation: No 160e793b86aSOleksij Rempel Advertised FEC modes: Not reported 161e793b86aSOleksij Rempel Speed: 100Mb/s 162e793b86aSOleksij Rempel Duplex: Full 163e793b86aSOleksij Rempel Auto-negotiation: off 164e793b86aSOleksij Rempel master-slave cfg: forced slave 165e793b86aSOleksij Rempel master-slave status: slave 166e793b86aSOleksij Rempel Port: Twisted Pair 167e793b86aSOleksij Rempel PHYAD: 6 168e793b86aSOleksij Rempel Transceiver: external 169e793b86aSOleksij Rempel MDI-X: Unknown 170e793b86aSOleksij Rempel Supports Wake-on: d 171e793b86aSOleksij Rempel Wake-on: d 172e793b86aSOleksij Rempel Link detected: yes 173e793b86aSOleksij Rempel SQI: 7/7 174e793b86aSOleksij Rempel Link Down Events: 2 175e793b86aSOleksij Rempel 176e793b86aSOleksij Rempel- **Example Output for MPE Interface (Autonegotiation)**: 177e793b86aSOleksij Rempel 178e793b86aSOleksij Rempel .. code-block:: bash 179e793b86aSOleksij Rempel 180e793b86aSOleksij Rempel Settings for eth1: 181e793b86aSOleksij Rempel Supported ports: [ TP MII ] 182e793b86aSOleksij Rempel Supported link modes: 10baseT/Half 10baseT/Full 183e793b86aSOleksij Rempel 100baseT/Half 100baseT/Full 184e793b86aSOleksij Rempel Supported pause frame use: Symmetric Receive-only 185e793b86aSOleksij Rempel Supports auto-negotiation: Yes 186e793b86aSOleksij Rempel Supported FEC modes: Not reported 187e793b86aSOleksij Rempel Advertised link modes: 10baseT/Half 10baseT/Full 188e793b86aSOleksij Rempel 100baseT/Half 100baseT/Full 189e793b86aSOleksij Rempel Advertised pause frame use: Symmetric Receive-only 190e793b86aSOleksij Rempel Advertised auto-negotiation: Yes 191e793b86aSOleksij Rempel Advertised FEC modes: Not reported 192e793b86aSOleksij Rempel Link partner advertised link modes: 10baseT/Half 10baseT/Full 193e793b86aSOleksij Rempel 100baseT/Half 100baseT/Full 194e793b86aSOleksij Rempel Link partner advertised pause frame use: Symmetric Receive-only 195e793b86aSOleksij Rempel Link partner advertised auto-negotiation: Yes 196e793b86aSOleksij Rempel Link partner advertised FEC modes: Not reported 197e793b86aSOleksij Rempel Speed: 100Mb/s 198e793b86aSOleksij Rempel Duplex: Full 199e793b86aSOleksij Rempel Auto-negotiation: on 200e793b86aSOleksij Rempel Port: Twisted Pair 201e793b86aSOleksij Rempel PHYAD: 10 202e793b86aSOleksij Rempel Transceiver: internal 203e793b86aSOleksij Rempel MDI-X: Unknown 204e793b86aSOleksij Rempel Supports Wake-on: pg 205e793b86aSOleksij Rempel Wake-on: p 206e793b86aSOleksij Rempel Link detected: yes 207e793b86aSOleksij Rempel Link Down Events: 1 208e793b86aSOleksij Rempel 209e793b86aSOleksij Rempel- **Next Steps**: 210e793b86aSOleksij Rempel 211e793b86aSOleksij Rempel - Record the output provided by `ethtool`, particularly noting the 212e793b86aSOleksij Rempel **master-slave status**, **speed**, **duplex**, and other relevant fields. 213e793b86aSOleksij Rempel This information will be useful for further analysis or troubleshooting. 214e793b86aSOleksij Rempel Once the **ethtool** output has been collected and stored, move on to the 215e793b86aSOleksij Rempel next diagnostic step. 216e793b86aSOleksij Rempel 217e793b86aSOleksij RempelCheck Power Delivery (PoDL or PoE) 218e793b86aSOleksij Rempel~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 219e793b86aSOleksij Rempel 220e793b86aSOleksij RempelIf it is known that **PoDL** or **PoE** is **not implemented** on the system, 221e793b86aSOleksij Rempelor the **PSE** (Power Sourcing Equipment) is managed by proprietary user-space 222e793b86aSOleksij Rempelsoftware or external tools, you can skip this step. In such cases, verify power 223e793b86aSOleksij Rempeldelivery through alternative methods, such as checking hardware indicators 224e793b86aSOleksij Rempel(LEDs), using multimeters, or consulting vendor-specific software for 225e793b86aSOleksij Rempelmonitoring power status. 226e793b86aSOleksij Rempel 227e793b86aSOleksij RempelIf **PoDL** or **PoE** is implemented and managed directly by Linux, follow 228e793b86aSOleksij Rempelthese steps to ensure power is being delivered correctly: 229e793b86aSOleksij Rempel 230e793b86aSOleksij Rempel- **Command:** `ethtool --show-pse <interface>` 231e793b86aSOleksij Rempel 232e793b86aSOleksij Rempel- **Expected Output Examples**: 233e793b86aSOleksij Rempel 234e793b86aSOleksij Rempel 1. **PSE Not Supported**: 235e793b86aSOleksij Rempel 236e793b86aSOleksij Rempel If no PSE is attached or the interface does not support PSE, the following 237e793b86aSOleksij Rempel output is expected: 238e793b86aSOleksij Rempel 239e793b86aSOleksij Rempel .. code-block:: bash 240e793b86aSOleksij Rempel 241e793b86aSOleksij Rempel netlink error: No PSE is attached 242e793b86aSOleksij Rempel netlink error: Operation not supported 243e793b86aSOleksij Rempel 244e793b86aSOleksij Rempel 2. **PoDL (Single-Pair Ethernet)**: 245e793b86aSOleksij Rempel 246e793b86aSOleksij Rempel When PoDL is implemented, you might see the following attributes: 247e793b86aSOleksij Rempel 248e793b86aSOleksij Rempel .. code-block:: bash 249e793b86aSOleksij Rempel 250e793b86aSOleksij Rempel PSE attributes for eth1: 251e793b86aSOleksij Rempel PoDL PSE Admin State: enabled 252e793b86aSOleksij Rempel PoDL PSE Power Detection Status: delivering power 253e793b86aSOleksij Rempel 254e793b86aSOleksij Rempel 3. **PoE (Clause 33 PSE)**: 255e793b86aSOleksij Rempel 256e793b86aSOleksij Rempel For standard PoE, the output may look like this: 257e793b86aSOleksij Rempel 258e793b86aSOleksij Rempel .. code-block:: bash 259e793b86aSOleksij Rempel 260e793b86aSOleksij Rempel PSE attributes for eth1: 261e793b86aSOleksij Rempel Clause 33 PSE Admin State: enabled 262e793b86aSOleksij Rempel Clause 33 PSE Power Detection Status: delivering power 263e793b86aSOleksij Rempel Clause 33 PSE Available Power Limit: 18000 264e793b86aSOleksij Rempel 265e793b86aSOleksij Rempel- **Adjust Power Limit (if needed)**: 266e793b86aSOleksij Rempel 267e793b86aSOleksij Rempel - Sometimes, the available power limit may not be sufficient for the link 268e793b86aSOleksij Rempel partner. You can increase the power limit as needed. 269e793b86aSOleksij Rempel 270e793b86aSOleksij Rempel - **Command:** `ethtool --set-pse <interface> c33-pse-avail-pw-limit <limit>` 271e793b86aSOleksij Rempel 272e793b86aSOleksij Rempel Example: 273e793b86aSOleksij Rempel 274e793b86aSOleksij Rempel .. code-block:: bash 275e793b86aSOleksij Rempel 276e793b86aSOleksij Rempel ethtool --set-pse eth1 c33-pse-avail-pw-limit 18000 277e793b86aSOleksij Rempel ethtool --show-pse eth1 278e793b86aSOleksij Rempel 279e793b86aSOleksij Rempel **Expected Output** after adjusting the power limit: 280e793b86aSOleksij Rempel 281e793b86aSOleksij Rempel .. code-block:: bash 282e793b86aSOleksij Rempel 283e793b86aSOleksij Rempel Clause 33 PSE Available Power Limit: 18000 284e793b86aSOleksij Rempel 285e793b86aSOleksij Rempel 286e793b86aSOleksij Rempel- **Next Steps**: 287e793b86aSOleksij Rempel 288e793b86aSOleksij Rempel - **PoE or PoDL Not Used**: If **PoE** or **PoDL** is not implemented or used 289e793b86aSOleksij Rempel on the system, proceed to the next diagnostic step, as power delivery is 290e793b86aSOleksij Rempel not relevant for this setup. 291e793b86aSOleksij Rempel 292e793b86aSOleksij Rempel - **PoE or PoDL Controlled Externally**: If **PoE** or **PoDL** is used but 293e793b86aSOleksij Rempel is not managed by the Linux kernel's **PSE-PD** framework (i.e., it is 294e793b86aSOleksij Rempel controlled by proprietary user-space software or external tools), this part 295e793b86aSOleksij Rempel is out of scope for this documentation. Please consult vendor-specific 296e793b86aSOleksij Rempel documentation or external tools for monitoring and managing power delivery. 297e793b86aSOleksij Rempel 298e793b86aSOleksij Rempel - **PSE Admin State Disabled**: 299e793b86aSOleksij Rempel 300e793b86aSOleksij Rempel - If the `PSE Admin State:` is **disabled**, enable it by running one of 301e793b86aSOleksij Rempel the following commands: 302e793b86aSOleksij Rempel 303e793b86aSOleksij Rempel .. code-block:: bash 304e793b86aSOleksij Rempel 305e793b86aSOleksij Rempel ethtool --set-pse <devname> podl-pse-admin-control enable 306e793b86aSOleksij Rempel 307e793b86aSOleksij Rempel or, for Clause 33 PSE (PoE): 308e793b86aSOleksij Rempel 309e793b86aSOleksij Rempel ethtool --set-pse <devname> c33-pse-admin-control enable 310e793b86aSOleksij Rempel 311e793b86aSOleksij Rempel - After enabling the PSE Admin State, return to the start of the **Check 312e793b86aSOleksij Rempel Power Delivery (PoDL or PoE)** step to recheck the power delivery status. 313e793b86aSOleksij Rempel 314e793b86aSOleksij Rempel - **Power Not Delivered**: If the `Power Detection Status` shows something 315e793b86aSOleksij Rempel other than "delivering power" (e.g., `over current`), troubleshoot the 316e793b86aSOleksij Rempel **PSE**. Check for potential issues such as a short circuit in the cable, 317e793b86aSOleksij Rempel insufficient power delivery, or a fault in the PSE itself. 318e793b86aSOleksij Rempel 319e793b86aSOleksij Rempel - **Power Delivered but No Link**: If power is being delivered but no link is 320e793b86aSOleksij Rempel established, proceed with further diagnostics by performing **Cable 321e793b86aSOleksij Rempel Diagnostics** or reviewing the **Inspect Link Status and PHY 322e793b86aSOleksij Rempel Configuration** steps to identify any underlying issues with the physical 323e793b86aSOleksij Rempel link or settings. 324e793b86aSOleksij Rempel 325e793b86aSOleksij RempelCable Diagnostics 326e793b86aSOleksij Rempel~~~~~~~~~~~~~~~~~ 327e793b86aSOleksij Rempel 328e793b86aSOleksij RempelUse `ethtool` to test for physical layer issues such as cable faults. The test 329e793b86aSOleksij Rempelresults can vary depending on the cable's condition, the technology in use, and 330e793b86aSOleksij Rempelthe state of the link partner. The results from the cable test will help in 331e793b86aSOleksij Rempeldiagnosing issues like open circuits, shorts, impedance mismatches, and 332e793b86aSOleksij Rempelnoise-related problems. 333e793b86aSOleksij Rempel 334e793b86aSOleksij Rempel- **Command:** `ethtool --cable-test <interface>` 335e793b86aSOleksij Rempel 336e793b86aSOleksij RempelThe following are the typical outputs for **Single-Pair Ethernet (SPE)** and 337e793b86aSOleksij Rempel**Multi-Pair Ethernet (MPE)**: 338e793b86aSOleksij Rempel 339e793b86aSOleksij Rempel- **For Single-Pair Ethernet (SPE)**: 340e793b86aSOleksij Rempel - **Expected Output (SPE)**: 341e793b86aSOleksij Rempel 342e793b86aSOleksij Rempel .. code-block:: bash 343e793b86aSOleksij Rempel 344e793b86aSOleksij Rempel Cable test completed for device eth1. 345e793b86aSOleksij Rempel Pair A, fault length: 25.00m 346e793b86aSOleksij Rempel Pair A code Open Circuit 347e793b86aSOleksij Rempel 348e793b86aSOleksij Rempel This indicates an open circuit or cable fault at the reported distance, but 349e793b86aSOleksij Rempel results can be influenced by the link partner's state. Refer to the 350e793b86aSOleksij Rempel **"Troubleshooting Based on Cable Test Results"** section for further 351e793b86aSOleksij Rempel interpretation of these results. 352e793b86aSOleksij Rempel 353e793b86aSOleksij Rempel- **For Multi-Pair Ethernet (MPE)**: 354e793b86aSOleksij Rempel - **Expected Output (MPE)**: 355e793b86aSOleksij Rempel 356e793b86aSOleksij Rempel .. code-block:: bash 357e793b86aSOleksij Rempel 358e793b86aSOleksij Rempel Cable test completed for device eth0. 359e793b86aSOleksij Rempel Pair A code OK 360e793b86aSOleksij Rempel Pair B code OK 361e793b86aSOleksij Rempel Pair C code Open Circuit 362e793b86aSOleksij Rempel 363e793b86aSOleksij Rempel Here, Pair C is reported as having an open circuit, while Pairs A and B are 364e793b86aSOleksij Rempel functioning correctly. However, if autonegotiation is in use on Pairs A and 365e793b86aSOleksij Rempel B, the cable test may be disrupted. Refer to the **"Troubleshooting Based on 366e793b86aSOleksij Rempel Cable Test Results"** section for a detailed explanation of these issues and 367e793b86aSOleksij Rempel how to resolve them. 368e793b86aSOleksij Rempel 369e793b86aSOleksij RempelFor detailed descriptions of the different possible cable test results, please 370e793b86aSOleksij Rempelrefer to the **"Troubleshooting Based on Cable Test Results"** section. 371e793b86aSOleksij Rempel 372e793b86aSOleksij RempelTroubleshooting Based on Cable Test Results 373e793b86aSOleksij Rempel^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 374e793b86aSOleksij Rempel 375e793b86aSOleksij RempelAfter running the cable test, the results can help identify specific issues in 376e793b86aSOleksij Rempelthe physical connection. However, it is important to note that **cable testing 377e793b86aSOleksij Rempelresults heavily depend on the capabilities and characteristics of both the 378e793b86aSOleksij Rempellocal hardware and the link partner**. The accuracy and reliability of the 379e793b86aSOleksij Rempelresults can vary significantly between different hardware implementations. 380e793b86aSOleksij Rempel 381e793b86aSOleksij RempelIn some cases, this can introduce **blind spots** in the current cable testing 382e793b86aSOleksij Rempelimplementation, where certain results may not accurately reflect the actual 383e793b86aSOleksij Rempelphysical state of the cable. For example: 384e793b86aSOleksij Rempel 385e793b86aSOleksij Rempel- An **Open Circuit** result might not only indicate a damaged or disconnected 386e793b86aSOleksij Rempel cable but also occur if the cable is properly attached to a powered-down link 387e793b86aSOleksij Rempel partner. 388e793b86aSOleksij Rempel 389e793b86aSOleksij Rempel- Some PHYs may report a **Short within Pair** if the link partner is in 390e793b86aSOleksij Rempel **forced slave mode**, even though there is no actual short in the cable. 391e793b86aSOleksij Rempel 392e793b86aSOleksij RempelTo help users interpret the results more effectively, it could be beneficial to 393e793b86aSOleksij Rempelextend the **kernel UAPI** (User API) to provide additional context or 394e793b86aSOleksij Rempel**possible variants** of issues based on the hardware’s characteristics. Since 395e793b86aSOleksij Rempelthese quirks are often hardware-specific, the **kernel driver** would be an 396e793b86aSOleksij Rempelideal source of such information. By providing flags or hints related to 397e793b86aSOleksij Rempelpotential false positives for each test result, users would have a better 398e793b86aSOleksij Rempelunderstanding of what to verify and where to investigate further. 399e793b86aSOleksij Rempel 400e793b86aSOleksij RempelUntil such improvements are made, users should be aware of these limitations 401e793b86aSOleksij Rempeland manually verify cable issues as needed. Physical inspections may help 402e793b86aSOleksij Rempelresolve uncertainties related to false positive results. 403e793b86aSOleksij Rempel 404e793b86aSOleksij RempelThe results can be one of the following: 405e793b86aSOleksij Rempel 406e793b86aSOleksij Rempel- **OK**: 407e793b86aSOleksij Rempel 408e793b86aSOleksij Rempel - The cable is functioning correctly, and no issues were detected. 409e793b86aSOleksij Rempel 410e793b86aSOleksij Rempel - **Next Steps**: If you are still experiencing issues, it might be related 411e793b86aSOleksij Rempel to higher-layer problems, such as duplex mismatches or speed negotiation, 412e793b86aSOleksij Rempel which are not physical-layer issues. 413e793b86aSOleksij Rempel 414e793b86aSOleksij Rempel - **Special Case for `BaseT1` (1000/100/10BaseT1)**: In `BaseT1` systems, an 415e793b86aSOleksij Rempel "OK" result typically also means that the link is up and likely in **slave 416e793b86aSOleksij Rempel mode**, since cable tests usually only pass in this mode. For some 417e793b86aSOleksij Rempel **10BaseT1L** PHYs, an "OK" result may occur even if the cable is too long 418e793b86aSOleksij Rempel for the PHY's configured range (for example, when the range is configured 419e793b86aSOleksij Rempel for short-distance mode). 420e793b86aSOleksij Rempel 421e793b86aSOleksij Rempel- **Open Circuit**: 422e793b86aSOleksij Rempel 423e793b86aSOleksij Rempel - An **Open Circuit** result typically indicates that the cable is damaged or 424e793b86aSOleksij Rempel disconnected at the reported fault length. Consider these possibilities: 425e793b86aSOleksij Rempel 426e793b86aSOleksij Rempel - If the link partner is in **admin down** state or powered off, you might 427e793b86aSOleksij Rempel still get an "Open Circuit" result even if the cable is functional. 428e793b86aSOleksij Rempel 429e793b86aSOleksij Rempel - **Next Steps**: Inspect the cable at the fault length for visible damage 430e793b86aSOleksij Rempel or loose connections. Verify the link partner is powered on and in the 431e793b86aSOleksij Rempel correct mode. 432e793b86aSOleksij Rempel 433e793b86aSOleksij Rempel- **Short within Pair**: 434e793b86aSOleksij Rempel 435e793b86aSOleksij Rempel - A **Short within Pair** indicates an unintended connection within the same 436e793b86aSOleksij Rempel pair of wires, typically caused by physical damage to the cable. 437e793b86aSOleksij Rempel 438e793b86aSOleksij Rempel - **Next Steps**: Replace or repair the cable and check for any physical 439e793b86aSOleksij Rempel damage or improperly crimped connectors. 440e793b86aSOleksij Rempel 441e793b86aSOleksij Rempel- **Short to Another Pair**: 442e793b86aSOleksij Rempel 443e793b86aSOleksij Rempel - A **Short to Another Pair** means the wires from different pairs are 444e793b86aSOleksij Rempel shorted, which could occur due to physical damage or incorrect wiring. 445e793b86aSOleksij Rempel 446e793b86aSOleksij Rempel - **Next Steps**: Replace or repair the damaged cable. Inspect the cable for 447e793b86aSOleksij Rempel incorrect terminations or pinched wiring. 448e793b86aSOleksij Rempel 449e793b86aSOleksij Rempel- **Impedance Mismatch**: 450e793b86aSOleksij Rempel 451e793b86aSOleksij Rempel - **Impedance Mismatch** indicates a reflection caused by an impedance 452e793b86aSOleksij Rempel discontinuity in the cable. This can happen when a part of the cable has 453e793b86aSOleksij Rempel abnormal impedance (e.g., when different cable types are spliced together 454e793b86aSOleksij Rempel or when there is a defect in the cable). 455e793b86aSOleksij Rempel 456e793b86aSOleksij Rempel - **Next Steps**: Check the cable quality and ensure consistent impedance 457e793b86aSOleksij Rempel throughout its length. Replace any sections of the cable that do not meet 458e793b86aSOleksij Rempel specifications. 459e793b86aSOleksij Rempel 460e793b86aSOleksij Rempel- **Noise**: 461e793b86aSOleksij Rempel 462e793b86aSOleksij Rempel - **Noise** means that the Time Domain Reflectometry (TDR) test could not 463e793b86aSOleksij Rempel complete due to excessive noise on the cable, which can be caused by 464e793b86aSOleksij Rempel interference from electromagnetic sources. 465e793b86aSOleksij Rempel 466e793b86aSOleksij Rempel - **Next Steps**: Identify and eliminate sources of electromagnetic 467e793b86aSOleksij Rempel interference (EMI) near the cable. Consider using shielded cables or 468e793b86aSOleksij Rempel rerouting the cable away from noise sources. 469e793b86aSOleksij Rempel 470e793b86aSOleksij Rempel- **Resolution Not Possible**: 471e793b86aSOleksij Rempel 472e793b86aSOleksij Rempel - **Resolution Not Possible** means that the TDR test could not detect the 473e793b86aSOleksij Rempel issue due to the resolution limitations of the test or because the fault is 474e793b86aSOleksij Rempel beyond the distance that the test can measure. 475e793b86aSOleksij Rempel 476e793b86aSOleksij Rempel - **Next Steps**: Inspect the cable manually if possible, or use alternative 477e793b86aSOleksij Rempel diagnostic tools that can handle greater distances or higher resolution. 478e793b86aSOleksij Rempel 479e793b86aSOleksij Rempel- **Unknown**: 480e793b86aSOleksij Rempel 481e793b86aSOleksij Rempel - An **Unknown** result may occur when the test cannot classify the fault or 482e793b86aSOleksij Rempel when a specific issue is outside the scope of the tool's detection 483e793b86aSOleksij Rempel capabilities. 484e793b86aSOleksij Rempel 485e793b86aSOleksij Rempel - **Next Steps**: Re-run the test, verify the link partner's state, and inspect 486e793b86aSOleksij Rempel the cable manually if necessary. 487e793b86aSOleksij Rempel 488e793b86aSOleksij RempelVerify Link Partner PHY Configuration 489e793b86aSOleksij Rempel~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 490e793b86aSOleksij Rempel 491e793b86aSOleksij RempelIf the cable test passes but the link is still not functioning correctly, it’s 492e793b86aSOleksij Rempelessential to verify the configuration of the link partner’s PHY. Mismatches in 493e793b86aSOleksij Rempelspeed, duplex settings, or master-slave roles can cause connection issues. 494e793b86aSOleksij Rempel 495e793b86aSOleksij RempelAutonegotiation Mismatch 496e793b86aSOleksij Rempel^^^^^^^^^^^^^^^^^^^^^^^^ 497e793b86aSOleksij Rempel 498e793b86aSOleksij Rempel- If both link partners support autonegotiation, ensure that autonegotiation is 499e793b86aSOleksij Rempel enabled on both sides and that all supported link modes are advertised. A 500e793b86aSOleksij Rempel mismatch can lead to connectivity problems or sub optimal performance. 501e793b86aSOleksij Rempel 502e793b86aSOleksij Rempel- **Quick Fix:** Reset autonegotiation to the default settings, which will 503e793b86aSOleksij Rempel advertise all default link modes: 504e793b86aSOleksij Rempel 505e793b86aSOleksij Rempel .. code-block:: bash 506e793b86aSOleksij Rempel 507e793b86aSOleksij Rempel ethtool -s <interface> autoneg on 508e793b86aSOleksij Rempel 509e793b86aSOleksij Rempel- **Command to check configuration:** `ethtool <interface>` 510e793b86aSOleksij Rempel 511e793b86aSOleksij Rempel- **Expected Output:** Ensure that both sides advertise compatible link modes. 512e793b86aSOleksij Rempel If autonegotiation is off, verify that both link partners are configured for 513e793b86aSOleksij Rempel the same speed and duplex. 514e793b86aSOleksij Rempel 515e793b86aSOleksij Rempel The following example shows a case where the local PHY advertises fewer link 516e793b86aSOleksij Rempel modes than it supports. This will reduce the number of overlapping link modes 517e793b86aSOleksij Rempel with the link partner. In the worst case, there will be no common link modes, 518e793b86aSOleksij Rempel and the link will not be created: 519e793b86aSOleksij Rempel 520e793b86aSOleksij Rempel .. code-block:: bash 521e793b86aSOleksij Rempel 522e793b86aSOleksij Rempel Settings for eth0: 523e793b86aSOleksij Rempel Supported link modes: 1000baseT/Full, 100baseT/Full 524e793b86aSOleksij Rempel Advertised link modes: 1000baseT/Full 525e793b86aSOleksij Rempel Speed: 1000Mb/s 526e793b86aSOleksij Rempel Duplex: Full 527e793b86aSOleksij Rempel Auto-negotiation: on 528e793b86aSOleksij Rempel 529e793b86aSOleksij RempelCombined Mode Mismatch (Autonegotiation on One Side, Forced on the Other) 530e793b86aSOleksij Rempel^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 531e793b86aSOleksij Rempel 532e793b86aSOleksij Rempel- One possible issue occurs when one side is using **autonegotiation** (as in 533e793b86aSOleksij Rempel most modern systems), and the other side is set to a **forced link mode** 534e793b86aSOleksij Rempel (e.g., older hardware with single-speed hubs). In such cases, modern PHYs 535e793b86aSOleksij Rempel will attempt to detect the forced mode on the other side. If the link is 536e793b86aSOleksij Rempel established, you may notice: 537e793b86aSOleksij Rempel 538e793b86aSOleksij Rempel - **No or empty "Link partner advertised link modes"**. 539e793b86aSOleksij Rempel 540e793b86aSOleksij Rempel - **"Link partner advertised auto-negotiation:"** will be **"no"** or not 541e793b86aSOleksij Rempel present. 542e793b86aSOleksij Rempel 543e793b86aSOleksij Rempel- This type of detection does not always work reliably: 544e793b86aSOleksij Rempel 545e793b86aSOleksij Rempel - Typically, the modern PHY will default to **Half Duplex**, even if the link 546e793b86aSOleksij Rempel partner is actually configured for **Full Duplex**. 547e793b86aSOleksij Rempel 548e793b86aSOleksij Rempel - Some PHYs may not work reliably if the link partner switches from one 549e793b86aSOleksij Rempel forced mode to another. In this case, only a down/up cycle may help. 550e793b86aSOleksij Rempel 551e793b86aSOleksij Rempel- **Next Steps**: Set both sides to the same fixed speed and duplex mode to 552e793b86aSOleksij Rempel avoid potential detection issues. 553e793b86aSOleksij Rempel 554e793b86aSOleksij Rempel .. code-block:: bash 555e793b86aSOleksij Rempel 556e793b86aSOleksij Rempel ethtool -s <interface> speed 1000 duplex full autoneg off 557e793b86aSOleksij Rempel 558e793b86aSOleksij RempelMaster/Slave Role Mismatch (BaseT1 and 1000BaseT PHYs) 559e793b86aSOleksij Rempel^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 560e793b86aSOleksij Rempel 561e793b86aSOleksij Rempel- In **BaseT1** systems (e.g., 1000BaseT1, 100BaseT1), link establishment 562e793b86aSOleksij Rempel requires that one device is configured as **master** and the other as 563e793b86aSOleksij Rempel **slave**. A mismatch in this master-slave configuration can prevent the link 564e793b86aSOleksij Rempel from being established. However, **1000BaseT** also supports configurable 565e793b86aSOleksij Rempel master/slave roles and can face similar issues. 566e793b86aSOleksij Rempel 567e793b86aSOleksij Rempel- **Role Preference in 1000BaseT**: The **1000BaseT** specification allows link 568e793b86aSOleksij Rempel partners to negotiate master-slave roles or role preferences during 569e793b86aSOleksij Rempel autonegotiation. Some PHYs have hardware limitations or bugs that prevent 570e793b86aSOleksij Rempel them from functioning properly in certain roles. In such cases, drivers may 571e793b86aSOleksij Rempel force these PHYs into a specific role (e.g., **forced master** or **forced 572e793b86aSOleksij Rempel slave**) or try a weaker option by setting preferences. If both link partners 573e793b86aSOleksij Rempel have the same issue and are forced into the same mode (e.g., both forced into 574e793b86aSOleksij Rempel master mode), they will not be able to establish a link. 575e793b86aSOleksij Rempel 576e793b86aSOleksij Rempel- **Next Steps**: Ensure that one side is configured as **master** and the 577e793b86aSOleksij Rempel other as **slave** to avoid this issue, particularly when hardware 578e793b86aSOleksij Rempel limitations are involved, or try the weaker **preferred** option instead of 579e793b86aSOleksij Rempel **forced**. Check for any driver-related restrictions or forced modes. 580e793b86aSOleksij Rempel 581e793b86aSOleksij Rempel- **Command to force master/slave mode**: 582e793b86aSOleksij Rempel 583e793b86aSOleksij Rempel .. code-block:: bash 584e793b86aSOleksij Rempel 585e793b86aSOleksij Rempel ethtool -s <interface> master-slave forced-master 586e793b86aSOleksij Rempel 587e793b86aSOleksij Rempel or: 588e793b86aSOleksij Rempel 589e793b86aSOleksij Rempel .. code-block:: bash 590e793b86aSOleksij Rempel 591e793b86aSOleksij Rempel ethtool -s <interface> master-slave forced-master speed 1000 duplex full autoneg off 592e793b86aSOleksij Rempel 593e793b86aSOleksij Rempel 594e793b86aSOleksij Rempel- **Check the current master/slave status**: 595e793b86aSOleksij Rempel 596e793b86aSOleksij Rempel .. code-block:: bash 597e793b86aSOleksij Rempel 598e793b86aSOleksij Rempel ethtool <interface> 599e793b86aSOleksij Rempel 600e793b86aSOleksij Rempel Example Output: 601e793b86aSOleksij Rempel 602e793b86aSOleksij Rempel .. code-block:: bash 603e793b86aSOleksij Rempel 604e793b86aSOleksij Rempel master-slave cfg: forced-master 605e793b86aSOleksij Rempel master-slave status: master 606e793b86aSOleksij Rempel 607e793b86aSOleksij Rempel- **Hardware Bugs and Driver Forcing**: If a known hardware issue forces the 608e793b86aSOleksij Rempel PHY into a specific mode, it’s essential to check the driver source code or 609e793b86aSOleksij Rempel hardware documentation for details. Ensure that the roles are compatible 610e793b86aSOleksij Rempel across both link partners, and if both PHYs are forced into the same mode, 611e793b86aSOleksij Rempel adjust one side accordingly to resolve the mismatch. 612e793b86aSOleksij Rempel 613e793b86aSOleksij RempelMonitor Link Resets and Speed Drops 614e793b86aSOleksij Rempel~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 615e793b86aSOleksij Rempel 616e793b86aSOleksij RempelIf the link is unstable, showing frequent resets or speed drops, this may 617e793b86aSOleksij Rempelindicate issues with the cable, PHY configuration, or environmental factors. 618e793b86aSOleksij RempelWhile there is still no completely unified way in Linux to directly monitor 619e793b86aSOleksij Rempeldownshift events or link speed changes via user space tools, both the Linux 620e793b86aSOleksij Rempelkernel logs and `ethtool` can provide valuable insights, especially if the 621e793b86aSOleksij Rempeldriver supports reporting such events. 622e793b86aSOleksij Rempel 623e793b86aSOleksij Rempel- **Monitor Kernel Logs for Link Resets and Speed Drops**: 624e793b86aSOleksij Rempel 625e793b86aSOleksij Rempel - The Linux kernel will print link status changes, including downshift 626e793b86aSOleksij Rempel events, in the system logs. These messages typically include speed changes, 627e793b86aSOleksij Rempel duplex mode, and downshifted link speed (if the driver supports it). 628e793b86aSOleksij Rempel 629e793b86aSOleksij Rempel - **Command to monitor kernel logs in real-time:** 630e793b86aSOleksij Rempel 631e793b86aSOleksij Rempel .. code-block:: bash 632e793b86aSOleksij Rempel 633e793b86aSOleksij Rempel dmesg -w | grep "Link is Up\|Link is Down" 634e793b86aSOleksij Rempel 635e793b86aSOleksij Rempel - Example Output (if a downshift occurs): 636e793b86aSOleksij Rempel 637e793b86aSOleksij Rempel .. code-block:: bash 638e793b86aSOleksij Rempel 639e793b86aSOleksij Rempel eth0: Link is Up - 100Mbps/Full (downshifted) - flow control rx/tx 640e793b86aSOleksij Rempel eth0: Link is Down 641e793b86aSOleksij Rempel 642e793b86aSOleksij Rempel This indicates that the link has been established but has downshifted from 643e793b86aSOleksij Rempel a higher speed. 644e793b86aSOleksij Rempel 645e793b86aSOleksij Rempel - **Note**: Not all drivers or PHYs support downshift reporting, so you may 646e793b86aSOleksij Rempel not see this information for all devices. 647e793b86aSOleksij Rempel 648e793b86aSOleksij Rempel- **Monitor Link Down Events Using `ethtool`**: 649e793b86aSOleksij Rempel 650e793b86aSOleksij Rempel - Starting with the latest kernel and `ethtool` versions, you can track 651e793b86aSOleksij Rempel **Link Down Events** using the `ethtool -I` command. This will provide 652e793b86aSOleksij Rempel counters for link drops, helping to diagnose link instability issues if 653e793b86aSOleksij Rempel supported by the driver. 654e793b86aSOleksij Rempel 655e793b86aSOleksij Rempel - **Command to monitor link down events:** 656e793b86aSOleksij Rempel 657e793b86aSOleksij Rempel .. code-block:: bash 658e793b86aSOleksij Rempel 659e793b86aSOleksij Rempel ethtool -I <interface> 660e793b86aSOleksij Rempel 661e793b86aSOleksij Rempel - Example Output (if supported): 662e793b86aSOleksij Rempel 663e793b86aSOleksij Rempel .. code-block:: bash 664e793b86aSOleksij Rempel 665e793b86aSOleksij Rempel PSE attributes for eth1: 666e793b86aSOleksij Rempel Link Down Events: 5 667e793b86aSOleksij Rempel 668e793b86aSOleksij Rempel This indicates that the link has dropped 5 times. Frequent link down events 669e793b86aSOleksij Rempel may indicate cable or environmental issues that require further 670e793b86aSOleksij Rempel investigation. 671e793b86aSOleksij Rempel 672e793b86aSOleksij Rempel- **Check Link Status and Speed**: 673e793b86aSOleksij Rempel 674e793b86aSOleksij Rempel - Even though downshift counts or events are not easily tracked, you can 675e793b86aSOleksij Rempel still use `ethtool` to manually check the current link speed and status. 676e793b86aSOleksij Rempel 677e793b86aSOleksij Rempel - **Command:** `ethtool <interface>` 678e793b86aSOleksij Rempel 679e793b86aSOleksij Rempel - **Expected Output:** 680e793b86aSOleksij Rempel 681e793b86aSOleksij Rempel .. code-block:: bash 682e793b86aSOleksij Rempel 683e793b86aSOleksij Rempel Speed: 1000Mb/s 684e793b86aSOleksij Rempel Duplex: Full 685e793b86aSOleksij Rempel Auto-negotiation: on 686e793b86aSOleksij Rempel Link detected: yes 687e793b86aSOleksij Rempel 688e793b86aSOleksij Rempel Any inconsistencies in the expected speed or duplex setting could indicate 689e793b86aSOleksij Rempel an issue. 690e793b86aSOleksij Rempel 691e793b86aSOleksij Rempel- **Disable Energy-Efficient Ethernet (EEE) for Diagnostics**: 692e793b86aSOleksij Rempel 693e793b86aSOleksij Rempel - **EEE** (Energy-Efficient Ethernet) can be a source of link instability due 694e793b86aSOleksij Rempel to transitions in and out of low-power states. For diagnostic purposes, it 695e793b86aSOleksij Rempel may be useful to **temporarily** disable EEE to determine if it is 696e793b86aSOleksij Rempel contributing to link instability. This is **not a generic recommendation** 697e793b86aSOleksij Rempel for disabling power management. 698e793b86aSOleksij Rempel 699e793b86aSOleksij Rempel - **Next Steps**: Disable EEE and monitor if the link becomes stable. If 700e793b86aSOleksij Rempel disabling EEE resolves the issue, report the bug so that the driver can be 701e793b86aSOleksij Rempel fixed. 702e793b86aSOleksij Rempel 703e793b86aSOleksij Rempel - **Command:** 704e793b86aSOleksij Rempel 705e793b86aSOleksij Rempel .. code-block:: bash 706e793b86aSOleksij Rempel 707e793b86aSOleksij Rempel ethtool --set-eee <interface> eee off 708e793b86aSOleksij Rempel 709e793b86aSOleksij Rempel - **Important**: If disabling EEE resolves the instability, the issue should 710e793b86aSOleksij Rempel be reported to the maintainers as a bug, and the driver should be corrected 711e793b86aSOleksij Rempel to handle EEE properly without causing instability. Disabling EEE 712e793b86aSOleksij Rempel permanently should not be seen as a solution. 713e793b86aSOleksij Rempel 714e793b86aSOleksij Rempel- **Monitor Error Counters**: 715e793b86aSOleksij Rempel 716*7d66c74aSOleksij Rempel - Use `ethtool -S <interface> --all-groups` to retrieve standardized interface 717*7d66c74aSOleksij Rempel statistics if the driver supports the unified interface: 718e793b86aSOleksij Rempel 719*7d66c74aSOleksij Rempel - **Command:** `ethtool -S <interface> --all-groups` 720*7d66c74aSOleksij Rempel 721*7d66c74aSOleksij Rempel - **Example Output (if supported)**: 722*7d66c74aSOleksij Rempel 723*7d66c74aSOleksij Rempel .. code-block:: bash 724*7d66c74aSOleksij Rempel 725*7d66c74aSOleksij Rempel phydev-RxFrames: 100391 726*7d66c74aSOleksij Rempel phydev-RxErrors: 0 727*7d66c74aSOleksij Rempel phydev-TxFrames: 9 728*7d66c74aSOleksij Rempel phydev-TxErrors: 0 729*7d66c74aSOleksij Rempel 730*7d66c74aSOleksij Rempel - If the unified interface is not supported, use `ethtool -S <interface>` to 731*7d66c74aSOleksij Rempel retrieve MAC and PHY counters. Note that non-standardized PHY counter names 732*7d66c74aSOleksij Rempel vary by driver and must be interpreted accordingly: 733e793b86aSOleksij Rempel 734e793b86aSOleksij Rempel - **Command:** `ethtool -S <interface>` 735e793b86aSOleksij Rempel 736e793b86aSOleksij Rempel - **Example Output (if supported)**: 737e793b86aSOleksij Rempel 738e793b86aSOleksij Rempel .. code-block:: bash 739e793b86aSOleksij Rempel 740e793b86aSOleksij Rempel rx_crc_errors: 123 741e793b86aSOleksij Rempel tx_errors: 45 742e793b86aSOleksij Rempel rx_frame_errors: 78 743e793b86aSOleksij Rempel 744e793b86aSOleksij Rempel - **Note**: If no meaningful error counters are available or if counters are 745e793b86aSOleksij Rempel not supported, you may need to rely on physical inspections (e.g., cable 746e793b86aSOleksij Rempel condition) or kernel log messages (e.g., link up/down events) to further 747e793b86aSOleksij Rempel diagnose the issue. 748e793b86aSOleksij Rempel 749*7d66c74aSOleksij Rempel - **Compare Counters**: 750*7d66c74aSOleksij Rempel 751*7d66c74aSOleksij Rempel - Compare the egress and ingress frame counts reported by the PHY and MAC. 752*7d66c74aSOleksij Rempel 753*7d66c74aSOleksij Rempel - A small difference may occur due to sampling rate differences between the 754*7d66c74aSOleksij Rempel MAC and PHY drivers, or if the PHY and MAC are not always fully 755*7d66c74aSOleksij Rempel synchronized in their UP or DOWN states. 756*7d66c74aSOleksij Rempel 757*7d66c74aSOleksij Rempel - Significant discrepancies indicate potential issues in the data path 758*7d66c74aSOleksij Rempel between the MAC and PHY. 759*7d66c74aSOleksij Rempel 760e793b86aSOleksij RempelWhen All Else Fails... 761e793b86aSOleksij Rempel~~~~~~~~~~~~~~~~~~~~~~ 762e793b86aSOleksij Rempel 763e793b86aSOleksij RempelSo you've checked the cables, monitored the logs, disabled EEE, and still... 764e793b86aSOleksij Rempelnothing? Don’t worry, you’re not alone. Sometimes, Ethernet gremlins just don’t 765e793b86aSOleksij Rempelwant to cooperate. 766e793b86aSOleksij Rempel 767e793b86aSOleksij RempelBut before you throw in the towel (or the Ethernet cable), take a deep breath. 768e793b86aSOleksij RempelIt’s always possible that: 769e793b86aSOleksij Rempel 770e793b86aSOleksij Rempel1. Your PHY has a unique, undocumented personality. 771e793b86aSOleksij Rempel 772e793b86aSOleksij Rempel2. The problem is lying dormant, waiting for just the right moment to magically 773e793b86aSOleksij Rempel resolve itself (hey, it happens!). 774e793b86aSOleksij Rempel 775e793b86aSOleksij Rempel3. Or, it could be that the ultimate solution simply hasn’t been invented yet. 776e793b86aSOleksij Rempel 777e793b86aSOleksij RempelIf none of the above bring you comfort, there’s one final step: contribute! If 778e793b86aSOleksij Rempelyou've uncovered new or unusual issues, or have creative diagnostic methods, 779e793b86aSOleksij Rempelfeel free to share your findings and extend this documentation. Together, we 780e793b86aSOleksij Rempelcan hunt down every elusive network issue - one twisted pair at a time. 781e793b86aSOleksij Rempel 782e793b86aSOleksij RempelRemember: sometimes the solution is just a reboot away, but if not, it’s time to 783e793b86aSOleksij Rempeldig deeper - or report that bug! 784e793b86aSOleksij Rempel 785