Lines Matching +full:ethernet +full:- +full:pse
1 .. SPDX-License-Identifier: GPL-2.0
3 Diagnostic Concept for Investigating Twisted Pair Ethernet Variants at OSI Layer 1
7 ------------
11 1. **Users and System Administrators**: For those dealing with real-world
12 Ethernet issues, this guide provides a practical, step-by-step
14 Pair Ethernet at OSI Layer 1. If you're facing unstable links, speed drops,
15 or mysterious network issues, jump right into the step-by-step guide and
24 Step-by-Step Diagnostic Guide from Linux (General Ethernet)
25 -----------------------------------------------------------
27 This diagnostic guide covers common Ethernet troubleshooting scenarios,
28 focusing on **link stability and detection** across different Ethernet
29 environments, including **Single-Pair Ethernet (SPE)** and **Multi-Pair
30 Ethernet (MPE)**, as well as power delivery technologies like **PoDL** (Power
31 over Data Line) and **PoE** (Clause 33 PSE).
43 - **Link is up and stable, but no data transfer**: If the link is stable but
47 - **Link is unstable**: Link resets, speed drops, or other fluctuations
50 - **No link detected**: The interface is up, but no link is established.
55 Begin by verifying the status of the Ethernet interface to check if it is
61 For example, in the output `<NO-CARRIER,BROADCAST,MULTICAST,UP>`, the important
64 - **UP**: The interface is in the administrative "UP" state.
65 - **NO-CARRIER**: The interface is administratively up, but no physical link is
71 - **Command:** `ip link show dev <interface>`
73 - **Expected Output:**
75 .. code-block:: bash
77 4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 ...
80 - **Interpreting the Output:**
82 - **Administrative UP State**:
84 - If the output contains **"UP"**, the interface is administratively up,
87 - If you also see **"NO-CARRIER"**, it means the physical link has not been
92 - **Administrative DOWN State**:
94 - If the output lacks **"UP"** and shows only states like
98 .. code-block:: bash
102 - **Next Steps**:
104 - If the interface is **administratively up** but shows **NO-CARRIER**,
108 - If the interface was **administratively down** and you have brought it up,
112 - **If the interface is up and the link is detected**:
114 - If the output shows **"UP"** and there is **no `NO-CARRIER`**, the
119 - If the interface is up and the link is detected but **no data is being
126 - If the **link is unstable** or **frequently resetting or dropping**, this
134 Use `ethtool -I` to check the link status, PHY configuration, supported link
139 For both **Single-Pair Ethernet (SPE)** and **Multi-Pair Ethernet (MPE)**
145 - **Command:** `ethtool -I <interface>`
147 - **Example Output for SPE Interface (Non-autonegotiation)**:
149 .. code-block:: bash
155 Supports auto-negotiation: No
159 Advertised auto-negotiation: No
163 Auto-negotiation: off
164 master-slave cfg: forced slave
165 master-slave status: slave
169 MDI-X: Unknown
170 Supports Wake-on: d
171 Wake-on: d
176 - **Example Output for MPE Interface (Autonegotiation)**:
178 .. code-block:: bash
184 Supported pause frame use: Symmetric Receive-only
185 Supports auto-negotiation: Yes
189 Advertised pause frame use: Symmetric Receive-only
190 Advertised auto-negotiation: Yes
194 Link partner advertised pause frame use: Symmetric Receive-only
195 Link partner advertised auto-negotiation: Yes
199 Auto-negotiation: on
203 MDI-X: Unknown
204 Supports Wake-on: pg
205 Wake-on: p
209 - **Next Steps**:
211 - Record the output provided by `ethtool`, particularly noting the
212 **master-slave status**, **speed**, **duplex**, and other relevant fields.
221 or the **PSE** (Power Sourcing Equipment) is managed by proprietary user-space
224 (LEDs), using multimeters, or consulting vendor-specific software for
230 - **Command:** `ethtool --show-pse <interface>`
232 - **Expected Output Examples**:
234 1. **PSE Not Supported**:
236 If no PSE is attached or the interface does not support PSE, the following
239 .. code-block:: bash
241 netlink error: No PSE is attached
244 2. **PoDL (Single-Pair Ethernet)**:
248 .. code-block:: bash
250 PSE attributes for eth1:
251 PoDL PSE Admin State: enabled
252 PoDL PSE Power Detection Status: delivering power
254 3. **PoE (Clause 33 PSE)**:
258 .. code-block:: bash
260 PSE attributes for eth1:
261 Clause 33 PSE Admin State: enabled
262 Clause 33 PSE Power Detection Status: delivering power
263 Clause 33 PSE Available Power Limit: 18000
265 - **Adjust Power Limit (if needed)**:
267 - Sometimes, the available power limit may not be sufficient for the link
270 - **Command:** `ethtool --set-pse <interface> c33-pse-avail-pw-limit <limit>`
274 .. code-block:: bash
276 ethtool --set-pse eth1 c33-pse-avail-pw-limit 18000
277 ethtool --show-pse eth1
281 .. code-block:: bash
283 Clause 33 PSE Available Power Limit: 18000
286 - **Next Steps**:
288 - **PoE or PoDL Not Used**: If **PoE** or **PoDL** is not implemented or used
292 - **PoE or PoDL Controlled Externally**: If **PoE** or **PoDL** is used but
293 is not managed by the Linux kernel's **PSE-PD** framework (i.e., it is
294 controlled by proprietary user-space software or external tools), this part
295 is out of scope for this documentation. Please consult vendor-specific
298 - **PSE Admin State Disabled**:
300 - If the `PSE Admin State:` is **disabled**, enable it by running one of
303 .. code-block:: bash
305 ethtool --set-pse <devname> podl-pse-admin-control enable
307 or, for Clause 33 PSE (PoE):
309 ethtool --set-pse <devname> c33-pse-admin-control enable
311 - After enabling the PSE Admin State, return to the start of the **Check
314 - **Power Not Delivered**: If the `Power Detection Status` shows something
316 **PSE**. Check for potential issues such as a short circuit in the cable,
317 insufficient power delivery, or a fault in the PSE itself.
319 - **Power Delivered but No Link**: If power is being delivered but no link is
332 noise-related problems.
334 - **Command:** `ethtool --cable-test <interface>`
336 The following are the typical outputs for **Single-Pair Ethernet (SPE)** and
337 **Multi-Pair Ethernet (MPE)**:
339 - **For Single-Pair Ethernet (SPE)**:
340 - **Expected Output (SPE)**:
342 .. code-block:: bash
353 - **For Multi-Pair Ethernet (MPE)**:
354 - **Expected Output (MPE)**:
356 .. code-block:: bash
385 - An **Open Circuit** result might not only indicate a damaged or disconnected
386 cable but also occur if the cable is properly attached to a powered-down link
389 - Some PHYs may report a **Short within Pair** if the link partner is in
395 these quirks are often hardware-specific, the **kernel driver** would be an
406 - **OK**:
408 - The cable is functioning correctly, and no issues were detected.
410 - **Next Steps**: If you are still experiencing issues, it might be related
411 to higher-layer problems, such as duplex mismatches or speed negotiation,
412 which are not physical-layer issues.
414 - **Special Case for `BaseT1` (1000/100/10BaseT1)**: In `BaseT1` systems, an
419 for short-distance mode).
421 - **Open Circuit**:
423 - An **Open Circuit** result typically indicates that the cable is damaged or
426 - If the link partner is in **admin down** state or powered off, you might
429 - **Next Steps**: Inspect the cable at the fault length for visible damage
433 - **Short within Pair**:
435 - A **Short within Pair** indicates an unintended connection within the same
438 - **Next Steps**: Replace or repair the cable and check for any physical
441 - **Short to Another Pair**:
443 - A **Short to Another Pair** means the wires from different pairs are
446 - **Next Steps**: Replace or repair the damaged cable. Inspect the cable for
449 - **Impedance Mismatch**:
451 - **Impedance Mismatch** indicates a reflection caused by an impedance
456 - **Next Steps**: Check the cable quality and ensure consistent impedance
460 - **Noise**:
462 - **Noise** means that the Time Domain Reflectometry (TDR) test could not
466 - **Next Steps**: Identify and eliminate sources of electromagnetic
470 - **Resolution Not Possible**:
472 - **Resolution Not Possible** means that the TDR test could not detect the
476 - **Next Steps**: Inspect the cable manually if possible, or use alternative
479 - **Unknown**:
481 - An **Unknown** result may occur when the test cannot classify the fault or
485 - **Next Steps**: Re-run the test, verify the link partner's state, and inspect
493 speed, duplex settings, or master-slave roles can cause connection issues.
498 - If both link partners support autonegotiation, ensure that autonegotiation is
502 - **Quick Fix:** Reset autonegotiation to the default settings, which will
505 .. code-block:: bash
507 ethtool -s <interface> autoneg on
509 - **Command to check configuration:** `ethtool <interface>`
511 - **Expected Output:** Ensure that both sides advertise compatible link modes.
520 .. code-block:: bash
527 Auto-negotiation: on
532 - One possible issue occurs when one side is using **autonegotiation** (as in
534 (e.g., older hardware with single-speed hubs). In such cases, modern PHYs
538 - **No or empty "Link partner advertised link modes"**.
540 - **"Link partner advertised auto-negotiation:"** will be **"no"** or not
543 - This type of detection does not always work reliably:
545 - Typically, the modern PHY will default to **Half Duplex**, even if the link
548 - Some PHYs may not work reliably if the link partner switches from one
551 - **Next Steps**: Set both sides to the same fixed speed and duplex mode to
554 .. code-block:: bash
556 ethtool -s <interface> speed 1000 duplex full autoneg off
561 - In **BaseT1** systems (e.g., 1000BaseT1, 100BaseT1), link establishment
563 **slave**. A mismatch in this master-slave configuration can prevent the link
567 - **Role Preference in 1000BaseT**: The **1000BaseT** specification allows link
568 partners to negotiate master-slave roles or role preferences during
576 - **Next Steps**: Ensure that one side is configured as **master** and the
579 **forced**. Check for any driver-related restrictions or forced modes.
581 - **Command to force master/slave mode**:
583 .. code-block:: bash
585 ethtool -s <interface> master-slave forced-master
589 .. code-block:: bash
591 ethtool -s <interface> master-slave forced-master speed 1000 duplex full autoneg off
594 - **Check the current master/slave status**:
596 .. code-block:: bash
602 .. code-block:: bash
604 master-slave cfg: forced-master
605 master-slave status: master
607 - **Hardware Bugs and Driver Forcing**: If a known hardware issue forces the
623 - **Monitor Kernel Logs for Link Resets and Speed Drops**:
625 - The Linux kernel will print link status changes, including downshift
629 - **Command to monitor kernel logs in real-time:**
631 .. code-block:: bash
633 dmesg -w | grep "Link is Up\|Link is Down"
635 - Example Output (if a downshift occurs):
637 .. code-block:: bash
639 eth0: Link is Up - 100Mbps/Full (downshifted) - flow control rx/tx
645 - **Note**: Not all drivers or PHYs support downshift reporting, so you may
648 - **Monitor Link Down Events Using `ethtool`**:
650 - Starting with the latest kernel and `ethtool` versions, you can track
651 **Link Down Events** using the `ethtool -I` command. This will provide
655 - **Command to monitor link down events:**
657 .. code-block:: bash
659 ethtool -I <interface>
661 - Example Output (if supported):
663 .. code-block:: bash
665 PSE attributes for eth1:
672 - **Check Link Status and Speed**:
674 - Even though downshift counts or events are not easily tracked, you can
677 - **Command:** `ethtool <interface>`
679 - **Expected Output:**
681 .. code-block:: bash
685 Auto-negotiation: on
691 - **Disable Energy-Efficient Ethernet (EEE) for Diagnostics**:
693 - **EEE** (Energy-Efficient Ethernet) can be a source of link instability due
694 to transitions in and out of low-power states. For diagnostic purposes, it
699 - **Next Steps**: Disable EEE and monitor if the link becomes stable. If
703 - **Command:**
705 .. code-block:: bash
707 ethtool --set-eee <interface> eee off
709 - **Important**: If disabling EEE resolves the instability, the issue should
714 - **Monitor Error Counters**:
716 - Use `ethtool -S <interface> --all-groups` to retrieve standardized interface
719 - **Command:** `ethtool -S <interface> --all-groups`
721 - **Example Output (if supported)**:
723 .. code-block:: bash
725 phydev-RxFrames: 100391
726 phydev-RxErrors: 0
727 phydev-TxFrames: 9
728 phydev-TxErrors: 0
730 - If the unified interface is not supported, use `ethtool -S <interface>` to
731 retrieve MAC and PHY counters. Note that non-standardized PHY counter names
734 - **Command:** `ethtool -S <interface>`
736 - **Example Output (if supported)**:
738 .. code-block:: bash
744 - **Note**: If no meaningful error counters are available or if counters are
749 - **Compare Counters**:
751 - Compare the egress and ingress frame counts reported by the PHY and MAC.
753 - A small difference may occur due to sampling rate differences between the
757 - Significant discrepancies indicate potential issues in the data path
764 nothing? Don’t worry, you’re not alone. Sometimes, Ethernet gremlins just don’t
767 But before you throw in the towel (or the Ethernet cable), take a deep breath.
780 can hunt down every elusive network issue - one twisted pair at a time.
783 dig deeper - or report that bug!