Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

portsorch: initial support for link-training #2359

Merged
merged 8 commits into from
Jul 28, 2022

Conversation

ds952811
Copy link
Contributor

@ds952811 ds952811 commented Jun 28, 2022

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

What I did

  1. Add Link-Training support to portsorch, while Gearbox is not in the scope
  2. Add support for remote speed advertisement
  3. Add support for capability checker

Why I did it

  1. 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
  2. Help users identify the cause of autoneg link failure
  3. Avoid un-necessary SAI calls for autoneg and link-training controls if this feature is not supported

How I verified it

  1. Manual test
  2. Ran the Unit-tests to the corresponding changes

Details if related
This is a subsequent PR of #2149
HLD: sonic-net/SONiC#924, sonic-net/SONiC#925

@ds952811
Copy link
Contributor Author

ds952811 commented Jun 28, 2022

DVS tarball:

https://sonic-build.azurewebsites.net/api/sonic/artifacts?branchName=master&platform=vs&buildId=115121&target=target%2Fdocker-sonic-vs.gz

Test result

ds952811@qemu-ub20:dvs_tests$ ./test.sh
+ '[' '!' -e /var/run/redis/redis.sock ']'
+ docker exec -it vs bash -c 'echo '\''/tmp/core.%e.%p'\'' | tee /proc/sys/kernel/core_pattern'
/tmp/core.%e.%p
+ docker exec -it vs cat /proc/sys/kernel/core_pattern
/tmp/core.%e.%p
+ docker exec -it vs md5sum /usr/bin/orchagent
3622aba59d7164249d1dbdbb9dd74927  /usr/bin/orchagent
+ docker cp ./sonic-swss/orchagent/orchagent vs:/usr/bin/
+ docker exec -it vs md5sum /usr/bin/orchagent
98cbb1956d3dfdd10f235647f15e0c24  /usr/bin/orchagent
+ cd ./sonic-swss/tests
+ sudo python3 -m pytest --dvsname=vs test_port_an.py test_port_lt.py test_route.py test_storm_control.py test_sub_port_intf.py
============================= test session starts ==============================
platform linux -- Python 3.8.10, pytest-7.1.1, pluggy-1.0.0
rootdir: /projects/fastpath/ds952811/community/sonic-swss/tests
plugins: flaky-3.7.0
collected 39 items

test_port_an.py .....                                                    [ 12%]
test_port_lt.py ....                                                     [ 23%]
test_route.py ......sss....                                              [ 56%]
test_storm_control.py .......                                            [ 74%]
test_sub_port_intf.py ..........                                         [100%]
...... omitted ......
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========== 36 passed, 3 skipped, 13 warnings in 1361.03s (0:22:41) ============

@prsunny
Copy link
Collaborator

prsunny commented Jun 30, 2022

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

dgsudharsan
dgsudharsan previously approved these changes Jul 1, 2022
prgeor
prgeor previously approved these changes Jul 11, 2022

void PortsOrch::initPortCapLinkTraining(Port &port)
{
// TODO:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we avoid TODO?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's about the SAI commit associated with sonic-sairedis, hence there is not much we can do right now, this will need to be revisited once the SAI commit is updated

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just for a record, this port attribute is already merged into the master branch of SAI repo. a few months ago.

@prgeor
Copy link
Contributor

prgeor commented Jul 11, 2022

@ds952811 please resolve merge conflict

@ds952811 ds952811 dismissed stale reviews from prgeor and dgsudharsan via 21dd927 July 12, 2022 05:31
@ds952811
Copy link
Contributor Author

@ds952811 please resolve merge conflict

Done, please check it out

// autoneg is not supported, don't retry
it = consumer.m_toSync.erase(it);
continue;
}
if (autoneg_mode_map.find(an_str) == autoneg_mode_map.end())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please add your changes after this check.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

initPortCapAutoNeg(p);
m_portList[alias] = p;
}
if (p.m_cap_an < 1)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this check better? because -1 means not initialized?

if (p.m_cap_an == 0)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Although it's okay to use (p.m_cap_an == 0) right here, but please note we don't want to process the AN request if it's neither initialized nor supported. Hence I prefer keeping 'if (p.m_cap_an < 1)' right here.

}
if (p.m_cap_an < 1)
{
SWSS_LOG_ERROR("%s: autoneg is not supported", p.m_alias.c_str());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you add the p.m_cap_an value in the log?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@@ -266,6 +268,7 @@ class PortsOrch : public Orch, public Subject
void doLagMemberTask(Consumer &consumer);

void doTask(NotificationConsumer &consumer);
void doTask(swss::SelectableTimer &timer);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

there will be too many doTask, for redability, could rename to doRefreshPortAnLtStateTask()

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In that case, this will become an infra. change to the orchagent, and is outside the scope of this PR, it's better to revisit the timer support in the orchagent if this is a concern

}

/* Activate/De-activate a specific port state poller task */
void PortsOrch::updatePortStatePoll(const Port &port, port_state_poll_t type, bool active)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

m_port_state_poll[] is getting updated in two different contexts?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, it's a selectable timer built on top of file descriptors, and it's handled in the same context of other tasks.
i.e.
https://github.com/Azure/sonic-swss/blob/eb79ca4a524899f57995abd5ae5ec5f773ec85d0/orchagent/orchdaemon.cpp#L620


for (auto it = m_port_state_poll.begin(); it != m_port_state_poll.end(); )
{
if ((it->second == 0) || !getPort(it->first, port))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you use PORT_STATE_POLL_NONE instead of 0 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done


if (!getPortLinkTrainingRxStatus(port, rx_status))
{
status = "on"; // LT is enabled, while the rx status is unavailable
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why assume LT is enabled? it should be "unknown"?

Copy link
Contributor Author

@ds952811 ds952811 Jul 13, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The rx status is either 'trained' or 'not trained', and we already have a checker in line 7337 to only process this timer task when LT is enabled, and the status is supposed to be 'on'
i.e. 'on' means LT is enabled, while none of further failure/status is available.

Copy link
Contributor Author

@ds952811 ds952811 Jul 13, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i.e.
If both SAI_PORT_ATTR_LINK_TRAINING_RX_STATUS and SAI_PORT_ATTR_LINK_TRAINING_FAILURE_STATUS are not supported in the SAI, the possible LT status is as follows:

  • off
  • on

If both SAI_PORT_ATTR_LINK_TRAINING_RX_STATUS is supported while SAI_PORT_ATTR_LINK_TRAINING_FAILURE_STATUS is not, the possible LT status is as follows:

  • off
  • on (When the poller is not yet executed)
  • not_trained
  • trained

If both SAI_PORT_ATTR_LINK_TRAINING_RX_STATUS and SAI_PORT_ATTR_LINK_TRAINING_FAILURE_STATUS are supported, the possible LT status is as follows:

  • off
  • on (When the poller is not yet executed)
  • trained
  • frame_lock (i.e. not_trained)
  • snr_low (i.e. not_trained)
  • timeout (i.e. not_trained)

@prgeor
Copy link
Contributor

prgeor commented Jul 13, 2022

@ds952811 could you please rebase with latest master?

@ds952811
Copy link
Contributor Author

@ds952811 could you please rebase with latest master?

Done, please check it out, thanks

@ds952811
Copy link
Contributor Author

/azp run

@azure-pipelines
Copy link

Commenter does not have sufficient privileges for PR 2359 in repo Azure/sonic-swss

@ds952811 ds952811 force-pushed the link-training branch 2 times, most recently from c70b1f9 to 1254268 Compare July 25, 2022 01:40
@ds952811
Copy link
Contributor Author

The sanity check failed as follows, which has nothing to do with this PR

fake_portorch.cpp:521:6: error: no declaration matches 'bool PortsOrch::setPortFec(swss::Port&, sai_port_fec_mode_t)'
 bool PortsOrch::setPortFec(Port &port, sai_port_fec_mode_t mode)
      ^~~~~~~~~
In file included from fake_portorch.cpp:9:
../../../orchagent/portsorch.h:317:10: note: candidate is: 'bool PortsOrch::setPortFec(swss::Port&, std::__cxx11::string&)'
     bool setPortFec(Port &port, std::string &mode);
          ^~~~~~~~~~
../../../orchagent/portsorch.h:76:7: note: 'class PortsOrch' defined here
 class PortsOrch : public Orch, public Subject
       ^~~~~~~~~
make[4]: *** [Makefile:1568: p4orch_tests-fake_portorch.o] Error 1

ds952811 added 4 commits July 26, 2022 09:52
commit 18632a3
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 081d491
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 84bdde4
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 0f73666
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 ddd57fe
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 876e605
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 55ced7d
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 a04594e
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 e9eeb9a
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 4ff604d
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 bdfb8d8
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 1c6bda8
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 09a9b33
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 b0bee3e
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 c4345ef
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>
Signed-off-by: Dante Su <dante.su@broadcom.com>
Signed-off-by: Dante Su <dante.su@broadcom.com>
ds952811 added 3 commits July 26, 2022 09:52
Signed-off-by: Dante Su <dante.su@broadcom.com>
Signed-off-by: Dante Su <dante.su@broadcom.com>
Signed-off-by: Dante Su <dante.su@broadcom.com>
Signed-off-by: Dante Su <dante.su@broadcom.com>
@ds952811
Copy link
Contributor Author

/azpw run

@mssonicbld
Copy link
Collaborator

/AzurePipelines run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@ds952811
Copy link
Contributor Author

It failed as follows, which has nothing to do with this PR

==================================== ERRORS ====================================
_______________ ERROR at setup of test_mclagFdb_basic_config_add _______________

tp = <class 'AssertionError'>, value = None, tb = None

    def reraise(tp, value, tb=None):
        try:
            if value is None:
                value = tp()
            if value.__traceback__ is not tb:
>               raise value.with_traceback(tb)

/usr/lib/python3/dist-packages/six.py:702: 

@adyeung
Copy link

adyeung commented Jul 28, 2022

@prsunny please help merge

@prgeor prgeor merged commit 3161eaa into sonic-net:master Jul 28, 2022
@vboykox
Copy link
Member

vboykox commented Aug 4, 2022

@ds952811 is it possible to monitor ilnk-training status in case setting LT on/off is not supported?

@ds952811
Copy link
Contributor Author

ds952811 commented Aug 5, 2022 via email

@vboykox
Copy link
Member

vboykox commented Aug 5, 2022

It's done by dropping the checker in the status poller, but why do we need this? If the LT on/off is not supported (i.e. standalone link-training), it's most unlikely the LT status get operations are implemented. Best Wishes, Dante (Kuo-Jung) Su

On Fri, Aug 5, 2022 at 1:56 AM Volodymyr Boiko @.> wrote: @ds952811 https://github.com/ds952811 is it possible to monitor ilnk-training status in case setting LT on/off is not supported? — Reply to this email directly, view it on GitHub <#2359 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AMLISKNUAJMIA7B675PZEL3VXP74TANCNFSM52BMTXOQ . You are receiving this because you were mentioned.Message ID: @.>
-- This electronic communication and the information and any files transmitted with it, or attached to it, are confidential and are intended solely for the use of the individual or entity to whom it is addressed and may contain information that is confidential, legally privileged, protected by privacy laws, or otherwise restricted from disclosure to anyone else. If you are not the intended recipient or the person responsible for delivering the e-mail to the intended recipient, you are hereby notified that any use, copying, distributing, dissemination, forwarding, printing, or copying of this e-mail is strictly prohibited. If you received this e-mail in error, please return the e-mail to the sender, delete it from your computer, and destroy any printed copy of it.

Even if standalone is not supported we might want to provide oper status after running AN - if AN is completed we might want to show the link is trained.
Or I miss something?

@ds952811
Copy link
Contributor Author

ds952811 commented Aug 5, 2022

Yes, this is a valid use case, we could activate the LT status poller when either AN or LT is enabled.
But how do we deal with the RFE in the community? i.e. Should I raise a new PR for this?

@vboykox
Copy link
Member

vboykox commented Aug 5, 2022

Yes, this is a valid use case, we could activate the LT status poller when either AN or LT is enabled. But how do we deal with the RFE in the community? i.e. Should I raise a new PR for this?

@ds952811 do you mean PR for documentation? I think yes, better to have the idea reviewed in community and documented first before chaning the behavior.

@ds952811
Copy link
Contributor Author

ds952811 commented Aug 5, 2022

While the requested feature is working on the BRCM chips, I do not know what will be the case for the non-BRCM chips, and the poller will generate a series of error logs if the LT status retrieval is not supported by the chip. (Either PHY or MAC).
And the link-training status for AutoNeg is mainly for debugging purposes. Hence it's better to stick with the current implementation as of now, and we could circle back.

Note: In the case of BRCM private image, we do have LT status poller enabled for both AN and LT, and it's for debugging the link failure for AN. e.g. LT is likely to fail on the optics, hence having AN enabled on a optic is most likely fail at this case.

@vboykox
Copy link
Member

vboykox commented Aug 5, 2022

@ds952811 the question why the poller should generate the error logs if status "not supported" is returned from SAI call?
If the not_supported is returned, we can poll silently/stop polling the port at all for LT status.

@ds952811
Copy link
Contributor Author

ds952811 commented Aug 5, 2022

Yep, you're absolutely right about it, we could suppress the error logs if NOT_SUPPORTED is returned from the SAI library. Let's raise a new PR for this enhancement.

preetham-singh pushed a commit to preetham-singh/sonic-swss that referenced this pull request Aug 6, 2022
* Squashed commit of the following:

commit 18632a3
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 081d491
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 84bdde4
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 0f73666
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 ddd57fe
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 876e605
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 55ced7d
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 a04594e
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 e9eeb9a
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 4ff604d
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 bdfb8d8
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 1c6bda8
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 09a9b33
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 b0bee3e
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 c4345ef
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 8e2f7a4.

* 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>
yxieca pushed a commit that referenced this pull request Aug 11, 2022
* Squashed commit of the following:

commit 18632a3
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 081d491
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 84bdde4
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 0f73666
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 ddd57fe
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 876e605
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 55ced7d
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 a04594e
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 e9eeb9a
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 4ff604d
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 bdfb8d8
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 1c6bda8
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 09a9b33
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 b0bee3e
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 c4345ef
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 8e2f7a4.

* 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>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants