Bug #13433
After cxgbe transceiver is reseated, link does not return to up state
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.
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.