Project

General

Profile

Actions

Bug #13433

closed

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

Added by Paul Winder over 1 year ago. Updated over 1 year ago.

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

100%

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.

Actions

Also available in: Atom PDF