From 90942f969abb7e4b7114cdedfa035a6af5f1b1e7 Mon Sep 17 00:00:00 2001 From: Dante Su Date: Thu, 5 May 2022 08:33:17 +0000 Subject: [PATCH 1/2] vslib: add support for read-only port capabilities Signed-off-by: Dante Su --- vslib/SwitchStateBase.cpp | 30 ++++++++++++++++++++++++++++++ vslib/SwitchStateBase.h | 2 ++ 2 files changed, 32 insertions(+) diff --git a/vslib/SwitchStateBase.cpp b/vslib/SwitchStateBase.cpp index e977c0335b..afa34bd148 100644 --- a/vslib/SwitchStateBase.cpp +++ b/vslib/SwitchStateBase.cpp @@ -1220,6 +1220,29 @@ sai_status_t SwitchStateBase::set_port_list() return set(SAI_OBJECT_TYPE_SWITCH, m_switch_id, &attr); } +sai_status_t SwitchStateBase::set_port_capabilities() +{ + SWSS_LOG_ENTER(); + + SWSS_LOG_NOTICE("set port capabilities"); + + sai_attribute_t attr; + + for (auto &port_id: m_port_list) + { + attr.id = SAI_PORT_ATTR_SUPPORTED_AUTO_NEG_MODE; + attr.value.booldata = true; + + CHECK_STATUS(set(SAI_OBJECT_TYPE_PORT, port_id, &attr)); + + attr.id = SAI_PORT_ATTR_SUPPORTED_LINK_TRAINING_MODE; + attr.value.booldata = true; + + CHECK_STATUS(set(SAI_OBJECT_TYPE_PORT, port_id, &attr)); + } + return SAI_STATUS_SUCCESS; +} + sai_status_t SwitchStateBase::create_default_virtual_router() { SWSS_LOG_ENTER(); @@ -1597,6 +1620,7 @@ sai_status_t SwitchStateBase::initialize_default_objects( CHECK_STATUS(create_ports()); CHECK_STATUS(create_port_serdes()); CHECK_STATUS(set_port_list()); + CHECK_STATUS(set_port_capabilities()); CHECK_STATUS(create_bridge_ports()); CHECK_STATUS(create_vlan_members()); CHECK_STATUS(set_acl_entry_min_prio()); @@ -2289,6 +2313,12 @@ sai_status_t SwitchStateBase::refresh_read_only( case SAI_PORT_ATTR_PORT_SERDES_ID: return refresh_port_serdes_id(object_id); + + case SAI_PORT_ATTR_SUPPORTED_AUTO_NEG_MODE: + return SAI_STATUS_SUCCESS; + + case SAI_PORT_ATTR_SUPPORTED_LINK_TRAINING_MODE: + return SAI_STATUS_SUCCESS; } } diff --git a/vslib/SwitchStateBase.h b/vslib/SwitchStateBase.h index 76f2527c88..c2e64d50c4 100644 --- a/vslib/SwitchStateBase.h +++ b/vslib/SwitchStateBase.h @@ -65,6 +65,8 @@ namespace saivs virtual sai_status_t set_port_list(); + virtual sai_status_t set_port_capabilities(); + virtual sai_status_t create_fabric_ports(); virtual sai_status_t set_fabric_port_list(); From 8ef35bd1fda2074c485264293fb1819ec0a31c39 Mon Sep 17 00:00:00 2001 From: Dante Su Date: Fri, 13 May 2022 10:46:38 +0000 Subject: [PATCH 2/2] vslib: Drop LT capability query Signed-off-by: Dante Su --- vslib/SwitchStateBase.cpp | 9 --------- 1 file changed, 9 deletions(-) diff --git a/vslib/SwitchStateBase.cpp b/vslib/SwitchStateBase.cpp index afa34bd148..1986c08d4f 100644 --- a/vslib/SwitchStateBase.cpp +++ b/vslib/SwitchStateBase.cpp @@ -1232,12 +1232,6 @@ sai_status_t SwitchStateBase::set_port_capabilities() { attr.id = SAI_PORT_ATTR_SUPPORTED_AUTO_NEG_MODE; attr.value.booldata = true; - - CHECK_STATUS(set(SAI_OBJECT_TYPE_PORT, port_id, &attr)); - - attr.id = SAI_PORT_ATTR_SUPPORTED_LINK_TRAINING_MODE; - attr.value.booldata = true; - CHECK_STATUS(set(SAI_OBJECT_TYPE_PORT, port_id, &attr)); } return SAI_STATUS_SUCCESS; @@ -2316,9 +2310,6 @@ sai_status_t SwitchStateBase::refresh_read_only( case SAI_PORT_ATTR_SUPPORTED_AUTO_NEG_MODE: return SAI_STATUS_SUCCESS; - - case SAI_PORT_ATTR_SUPPORTED_LINK_TRAINING_MODE: - return SAI_STATUS_SUCCESS; } }