Project

General

Profile

Bug #13433

After cxgbe transceiver is reseated, link does not return to up state

Added by Paul Winder 15 days ago. Updated 15 days ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Difficulty:
Medium
Tags:
Gerrit CR:

Description

The problem seems to appear when a non-default FEC setting is applied to the link. When the transceiver is removed and then re-inserted the link does not come back up.

A work around is to change the FEC configuration and then change it back.

Before the transceiver was removed the link_cfg was:

> 0xfffffeb1fa794a80::print -t struct port_info link_cfg
struct link_config link_cfg = {
    fw_port_cap32_t link_cfg.pcaps = 0x118f007e
    fw_port_cap32_t link_cfg.def_acaps = 0x10870040
    fw_port_cap32_t link_cfg.acaps = 0x40
    fw_port_cap32_t link_cfg.lpacaps = 0x70000
    fw_port_cap32_t link_cfg.speed_caps = 0x40
    u32 link_cfg.speed = 0x186a0
    cc_pause_t link_cfg.requested_fc = 0x3
    cc_pause_t link_cfg.fc = 0x3
    cc_fec_t link_cfg.requested_fec = 0x4
    cc_fec_t link_cfg.fec = 0x4
    unsigned char link_cfg.autoneg = 0
    unsigned char link_cfg.link_ok = 0x1
    unsigned char link_cfg.link_down_rc = 0
    bool link_cfg.new_module = 0 (0)
    bool link_cfg.redo_l1cfg = 0 (0)

and after it was removed and re-inserted:

> 0xfffffeb1fa794a80::print -t struct port_info link_cfg
struct link_config link_cfg = {
    fw_port_cap32_t link_cfg.pcaps = 0x118f007e
    fw_port_cap32_t link_cfg.def_acaps = 0x870040
    fw_port_cap32_t link_cfg.acaps = 0x40
    fw_port_cap32_t link_cfg.lpacaps = 0x70000
    fw_port_cap32_t link_cfg.speed_caps = 0x40
    u32 link_cfg.speed = 0x186a0
    cc_pause_t link_cfg.requested_fc = 0x3
    cc_pause_t link_cfg.fc = 0x3
    cc_fec_t link_cfg.requested_fec = 0x4
    cc_fec_t link_cfg.fec = 0x1
    unsigned char link_cfg.autoneg = 0
    unsigned char link_cfg.link_ok = 0
    unsigned char link_cfg.link_down_rc = 0
    bool link_cfg.new_module = 0 (0)
    bool link_cfg.redo_l1cfg = 0 (0)
}

The link_cfg.fec fields differ, the value in link_cfg.requested_fec should be re-applied.

#1

Updated by Paul Winder 15 days ago

  • Assignee set to Paul Winder
#2

Updated by Paul Winder 15 days ago

Tested using ports with default and non-default FEC settings. In all case when the transceiver was removed and re-inserted the link came up.

#3

Updated by Electric Monk 15 days ago

  • Gerrit CR set to 1153

Also available in: Atom PDF