Skip to content

Commit

Permalink
portsorch: initial support for link-training (#2359)
Browse files Browse the repository at this point in the history
* Squashed commit of the following:

commit 18632a3
Author: Dante Su <[email protected]>
Date:   Mon May 23 12:22:49 2022 +0000

    optimize port state refresh logic

    Signed-off-by: Dante Su <[email protected]>

commit 081d491
Author: ds952811 <[email protected]>
Date:   Mon May 23 02:33:56 2022 +0000

    address review comments

    Signed-off-by: ds952811 <[email protected]>

commit 84bdde4
Author: Dante Su <[email protected]>
Date:   Fri May 20 02:15:59 2022 +0000

    update the default LT capability upon get failures

    Signed-off-by: Dante Su <[email protected]>

commit 0f73666
Author: Dante Su <[email protected]>
Date:   Thu May 19 11:28:38 2022 +0000

    Rename updatePortStatesXX as refreshPortStatesXX

    Signed-off-by: Dante Su <[email protected]>

commit ddd57fe
Author: Dante Su <[email protected]>
Date:   Thu May 19 04:03:13 2022 +0000

    Have AN cap defaults to 1, and use AN attr for LT cap query

    Signed-off-by: Dante Su <[email protected]>

commit 876e605
Author: Dante Su <[email protected]>
Date:   Fri May 13 11:15:12 2022 +0000

    drop LT capability query

    Signed-off-by: Dante Su <[email protected]>

commit 55ced7d
Author: Dante Su <[email protected]>
Date:   Fri Apr 29 13:53:17 2022 +0000

    incorporate autoneg support from PR#2215

    Signed-off-by: Dante Su <[email protected]>

commit a04594e
Author: Dante Su <[email protected]>
Date:   Thu Apr 28 16:33:14 2022 +0000

    address review comments

    Signed-off-by: Dante Su <[email protected]>

commit e9eeb9a
Author: Dante Su <[email protected]>
Date:   Thu Apr 28 15:00:04 2022 +0000

    address review comments

    Signed-off-by: Dante Su <[email protected]>

commit 4ff604d
Author: Dante Su <[email protected]>
Date:   Fri Apr 22 03:51:56 2022 +0000

    Stop the port state poll by default

    Signed-off-by: Dante Su <[email protected]>

commit bdfb8d8
Author: Dante Su <[email protected]>
Date:   Fri Apr 22 03:48:07 2022 +0000

    address review comments

    Signed-off-by: Dante Su <[email protected]>

commit 1c6bda8
Author: Dante Su <[email protected]>
Date:   Mon Apr 18 08:46:21 2022 +0000

    Restore pre-emphasis when LT is transitioned from ON to OFF

    Signed-off-by: Dante Su <[email protected]>

commit 09a9b33
Author: Dante Su <[email protected]>
Date:   Mon Apr 18 02:33:11 2022 +0000

    fix build failure due to SAI_PORT_ATTR_SUPPORTED_LINK_TRAINING_MODE

    Signed-off-by: Dante Su <[email protected]>

commit b0bee3e
Author: Dante Su <[email protected]>
Date:   Thu Apr 14 07:54:14 2022 +0000

    address review comments

    Signed-off-by: Dante Su <[email protected]>

commit c4345ef
Author: Dante Su <[email protected]>
Date:   Fri Mar 25 02:26:05 2022 +0000

    portsorch: initial support for link-training

    - What I did
    Add Link-Training support to portsorch, while Gearbox is not in the scope

    - Why I did it
    In the case of DAC, static pre-calibrated pre-emphasis is rarely available on SONIC, as most of the ODM are expecting this to be done dynamically at runtime via link-training, hence we'll need this feature to improve the link quality

    - How I verified it
    Manual test
    Ran the Unit-tests to the corresponding changes

    Signed-off-by: Dante Su <[email protected]>

* Add support for selected multiple tests

Signed-off-by: Dante Su <[email protected]>

* Revert "Add support for selected multiple tests"

This reverts commit 8e2f7a4.

* fix the comment for 'autoneg is not supported'

Signed-off-by: Dante Su <[email protected]>

* address review comments

Signed-off-by: Dante Su <[email protected]>

* validate AN cap only when there is an update to AN config

Signed-off-by: Dante Su <[email protected]>

* drop the changes to tests/conftest.py

Signed-off-by: Dante Su <[email protected]>

* fix link failure in p4orch_tests-fake_portorch.o

Signed-off-by: Dante Su <[email protected]>
  • Loading branch information
ds952811 authored Jul 28, 2022
1 parent 525a57f commit 3161eaa
Show file tree
Hide file tree
Showing 6 changed files with 569 additions and 6 deletions.
6 changes: 5 additions & 1 deletion orchagent/p4orch/tests/fake_portorch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -689,4 +689,8 @@ void PortsOrch::voqSyncDelLagMember(Port &lag, Port &port)
std::unordered_set<std::string> PortsOrch::generateCounterStats(const string &type, bool gearbox)
{
return {};
}
}

void PortsOrch::doTask(swss::SelectableTimer &timer)
{
}
7 changes: 7 additions & 0 deletions orchagent/port.h
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,7 @@ class Port
uint32_t m_speed = 0; // Mbps
std::string m_learn_mode = "hardware";
AutoNegMode m_autoneg = Port::AutoNegMode::AUTONEG_NOT_SET;
int m_link_training = -1; // -1 means not set, 0 = disabled, 1 = enabled
bool m_admin_state_up = false;
bool m_init = false;
bool m_l3_vni = false;
Expand Down Expand Up @@ -177,8 +178,14 @@ class Port
sai_object_id_t m_system_side_id = 0;
sai_object_id_t m_line_side_id = 0;

/* pre-emphasis */
std::map<sai_port_serdes_attr_t, std::vector<uint32_t>> m_preemphasis;

bool m_fec_cfg = false;
bool m_an_cfg = false;

int m_cap_an = -1; /* Capability - AutoNeg, -1 means not set */
int m_cap_lt = -1; /* Capability - LinkTraining, -1 means not set */
};

}
Expand Down
Loading

0 comments on commit 3161eaa

Please sign in to comment.