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 18632a3e84de380ad29a671a6496018cfd1cd540
Author: Dante Su <dante.su@broadcom.com>
Date:   Mon May 23 12:22:49 2022 +0000

    optimize port state refresh logic

    Signed-off-by: Dante Su <dante.su@broadcom.com>

commit 081d491c9bc3cda80343d1476b76c457bdeacb8e
Author: ds952811 <ds952811@broadcom.com>
Date:   Mon May 23 02:33:56 2022 +0000

    address review comments

    Signed-off-by: ds952811 <ds952811@broadcom.com>

commit 84bdde4913cae37dc96ceb110cb2503633922847
Author: Dante Su <dante.su@broadcom.com>
Date:   Fri May 20 02:15:59 2022 +0000

    update the default LT capability upon get failures

    Signed-off-by: Dante Su <dante.su@broadcom.com>

commit 0f73666ba3b13af2116e55b0238e96c6e9c49270
Author: Dante Su <dante.su@broadcom.com>
Date:   Thu May 19 11:28:38 2022 +0000

    Rename updatePortStatesXX as refreshPortStatesXX

    Signed-off-by: Dante Su <dante.su@broadcom.com>

commit ddd57fe08f78f4463ee39a2075b0b0b0d56e9117
Author: Dante Su <dante.su@broadcom.com>
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 <dante.su@broadcom.com>

commit 876e605b8462c4318f09af86767453907d055e5b
Author: Dante Su <dante.su@broadcom.com>
Date:   Fri May 13 11:15:12 2022 +0000

    drop LT capability query

    Signed-off-by: Dante Su <dante.su@broadcom.com>

commit 55ced7db0155d161d5637f889453e7d53cdbbf10
Author: Dante Su <dante.su@broadcom.com>
Date:   Fri Apr 29 13:53:17 2022 +0000

    incorporate autoneg support from PR#2215

    Signed-off-by: Dante Su <dante.su@broadcom.com>

commit a04594e6efee7d5f5e3b86f45c413196affc89a8
Author: Dante Su <dante.su@broadcom.com>
Date:   Thu Apr 28 16:33:14 2022 +0000

    address review comments

    Signed-off-by: Dante Su <dante.su@broadcom.com>

commit e9eeb9a87f27740ee692e0a1e86e4a10dd9e943f
Author: Dante Su <dante.su@broadcom.com>
Date:   Thu Apr 28 15:00:04 2022 +0000

    address review comments

    Signed-off-by: Dante Su <dante.su@broadcom.com>

commit 4ff604da578b3fa2a40544c6f800c68cef4b9622
Author: Dante Su <dante.su@broadcom.com>
Date:   Fri Apr 22 03:51:56 2022 +0000

    Stop the port state poll by default

    Signed-off-by: Dante Su <dante.su@broadcom.com>

commit bdfb8d847fc81bc4771592d18e8e0747114688b3
Author: Dante Su <dante.su@broadcom.com>
Date:   Fri Apr 22 03:48:07 2022 +0000

    address review comments

    Signed-off-by: Dante Su <dante.su@broadcom.com>

commit 1c6bda8279bcdcce564bdf83c59dc6a3ac7e3f97
Author: Dante Su <dante.su@broadcom.com>
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 <dante.su@broadcom.com>

commit 09a9b334f8f4b06d399e4b3af73443f4b16d5640
Author: Dante Su <dante.su@broadcom.com>
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 <dante.su@broadcom.com>

commit b0bee3ec7bd1c00c976e812eae27f0e88d41f630
Author: Dante Su <dante.su@broadcom.com>
Date:   Thu Apr 14 07:54:14 2022 +0000

    address review comments

    Signed-off-by: Dante Su <dante.su@broadcom.com>

commit c4345efbafd1881ab6b80e878e2ecb9d7e637b3b
Author: Dante Su <dante.su@broadcom.com>
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 <dante.su@broadcom.com>

* Add support for selected multiple tests

Signed-off-by: Dante Su <dante.su@broadcom.com>

* Revert "Add support for selected multiple tests"

This reverts commit 8e2f7a4334278589581b2110e76f4252bbec03f0.

* fix the comment for 'autoneg is not supported'

Signed-off-by: Dante Su <dante.su@broadcom.com>

* address review comments

Signed-off-by: Dante Su <dante.su@broadcom.com>

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

Signed-off-by: Dante Su <dante.su@broadcom.com>

* drop the changes to tests/conftest.py

Signed-off-by: Dante Su <dante.su@broadcom.com>

* fix link failure in p4orch_tests-fake_portorch.o

Signed-off-by: Dante Su <dante.su@broadcom.com>
  • 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.