{
  "id": "networking/ethtool-autoneg-failure",
  "signature": "ethtool: Link detected: no (autonegotiation failed) on eth0",
  "signature_zh": "ethtool：链路检测到：无（自动协商失败）在eth0上",
  "regex": "ethtool: Link detected: no \\(autonegotiation failed\\) on \\w+",
  "domain": "networking",
  "category": "system_error",
  "subcategory": null,
  "root_cause": "The Ethernet interface failed to establish a link due to autonegotiation failure, typically caused by mismatched speed/duplex settings between the NIC and the switch port, or a faulty cable/connector.",
  "root_cause_type": "generic",
  "root_cause_zh": "以太网接口因自动协商失败而无法建立链路，通常由NIC和交换机端口之间的速度/双工设置不匹配，或电缆/连接器故障引起。",
  "versions": [
    {
      "version": "ethtool 5.10-6.10",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Linux kernel 5.10-6.8",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Intel I350/i40e drivers 5.x-6.x",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Broadcom bnxt_en driver",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Mellanox mlx5 driver",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "Forcing speed/duplex on only one side (e.g., NIC set to 1000/full, switch set to auto)",
      "why_fails": "Autonegotiation requires both sides to have matching settings; forcing one side while leaving the other on auto causes a duplex mismatch, leading to packet loss or no link.",
      "fail_rate": 0.85,
      "condition": "",
      "sources": []
    },
    {
      "action": "Replacing the NIC without testing the cable or switch port",
      "why_fails": "The issue may be a bad cable or switch port; replacing the NIC wastes time and resources.",
      "fail_rate": 0.6,
      "condition": "",
      "sources": []
    },
    {
      "action": "Setting the interface to a lower speed (e.g., 100 Mbps) without verifying switch support",
      "why_fails": "The switch port may not support 100 Mbps or may have a different configuration, causing the same failure.",
      "fail_rate": 0.7,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Check cable and connection: use `ethtool eth0` to see current settings, then test with a known-good cable. Replace if faulty.",
      "success_rate": 0.8,
      "how": "Check cable and connection: use `ethtool eth0` to see current settings, then test with a known-good cable. Replace if faulty.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Force both sides to the same speed/duplex: on Linux, `ethtool -s eth0 speed 1000 duplex full autoneg off` and configure the switch port to 1000/full. Verify with `ethtool eth0`.",
      "success_rate": 0.75,
      "how": "Force both sides to the same speed/duplex: on Linux, `ethtool -s eth0 speed 1000 duplex full autoneg off` and configure the switch port to 1000/full. Verify with `ethtool eth0`.",
      "condition": "",
      "sources": []
    },
    {
      "action": "If autoneg is required, ensure both sides support the same capabilities: update NIC firmware or driver, and verify switch port configuration (e.g., `show interfaces status` on Cisco).",
      "success_rate": 0.7,
      "how": "If autoneg is required, ensure both sides support the same capabilities: update NIC firmware or driver, and verify switch port configuration (e.g., `show interfaces status` on Cisco).",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Check cable and connection: use `ethtool eth0` to see current settings, then test with a known-good cable. Replace if faulty.",
    "Force both sides to the same speed/duplex: on Linux, `ethtool -s eth0 speed 1000 duplex full autoneg off` and configure the switch port to 1000/full. Verify with `ethtool eth0`.",
    "If autoneg is required, ensure both sides support the same capabilities: update NIC firmware or driver, and verify switch port configuration (e.g., `show interfaces status` on Cisco)."
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://www.kernel.org/doc/html/latest/networking/ethtool.html",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.85,
  "fix_success_rate": 0.75,
  "resolvable": "partial",
  "first_seen": "2024-05-12",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}