Skip to content

Commit

Permalink
[vs] Initialization of VOQ switch objects (sonic-net#702)
Browse files Browse the repository at this point in the history
VOQ switch objects are initialized during switch create. This VOQ objects are initialized after regular switch objects are initialized. This PR depends on sonic-net#701 for switch state initialization
  • Loading branch information
vganesan-nokia authored Nov 13, 2020
1 parent e2f76cf commit fc50cf5
Show file tree
Hide file tree
Showing 6 changed files with 30 additions and 9 deletions.
10 changes: 8 additions & 2 deletions vslib/inc/SwitchBCM81724.h
Original file line number Diff line number Diff line change
Expand Up @@ -97,8 +97,14 @@ namespace saivs

protected:

virtual sai_status_t refresh_read_only( _In_ const sai_attr_metadata_t *meta, _In_ sai_object_id_t object_id) override;
virtual sai_status_t refresh_read_only(
_In_ const sai_attr_metadata_t *meta,
_In_ sai_object_id_t object_id) override;

virtual sai_status_t set_switch_default_attributes();
virtual sai_status_t initialize_default_objects() override;

virtual sai_status_t initialize_default_objects(
_In_ uint32_t attr_count,
_In_ const sai_attribute_t *attr_list) override;
};
}
4 changes: 3 additions & 1 deletion vslib/inc/SwitchStateBase.h
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,9 @@ namespace saivs

public:

virtual sai_status_t initialize_default_objects();
virtual sai_status_t initialize_default_objects(
_In_ uint32_t attr_count,
_In_ const sai_attribute_t *attr_list);

virtual sai_status_t create_port_dependencies(
_In_ sai_object_id_t port_id);
Expand Down
5 changes: 4 additions & 1 deletion vslib/inc/VirtualSwitchSaiInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -339,7 +339,10 @@ namespace saivs
_In_ sai_object_id_t switch_id,
_In_ std::shared_ptr<SwitchConfig> config,
_In_ std::shared_ptr<WarmBootState> warmBootState,
_In_ std::weak_ptr<saimeta::Meta> meta);
_In_ std::weak_ptr<saimeta::Meta> meta,
_In_ uint32_t attr_count,
_In_ const sai_attribute_t *attr_list);

private:

static bool doesFdbEntryNotMatchFlushAttr(
Expand Down
4 changes: 3 additions & 1 deletion vslib/src/SwitchBCM81724.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,9 @@ sai_status_t SwitchBCM81724::create_port_dependencies(
return SAI_STATUS_SUCCESS;
}

sai_status_t SwitchBCM81724::initialize_default_objects()
sai_status_t SwitchBCM81724::initialize_default_objects(
_In_ uint32_t attr_count,
_In_ const sai_attribute_t *attr_list)
{
SWSS_LOG_ENTER();

Expand Down
8 changes: 7 additions & 1 deletion vslib/src/SwitchStateBase.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1429,7 +1429,9 @@ sai_status_t SwitchStateBase::set_number_of_ecmp_groups()
return set(SAI_OBJECT_TYPE_SWITCH, m_switch_id, &attr);
}

sai_status_t SwitchStateBase::initialize_default_objects()
sai_status_t SwitchStateBase::initialize_default_objects(
_In_ uint32_t attr_count,
_In_ const sai_attribute_t *attr_list)
{
SWSS_LOG_ENTER();

Expand All @@ -1454,6 +1456,10 @@ sai_status_t SwitchStateBase::initialize_default_objects()
CHECK_STATUS(create_scheduler_groups());
CHECK_STATUS(set_static_crm_values());

// Initialize switch for VOQ attributes

CHECK_STATUS(initialize_voq_switch_objects(attr_count, attr_list));

return SAI_STATUS_SUCCESS;
}

Expand Down
8 changes: 5 additions & 3 deletions vslib/src/VirtualSwitchSaiInterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -540,7 +540,9 @@ std::shared_ptr<SwitchStateBase> VirtualSwitchSaiInterface::init_switch(
_In_ sai_object_id_t switch_id,
_In_ std::shared_ptr<SwitchConfig> config,
_In_ std::shared_ptr<WarmBootState> warmBootState,
_In_ std::weak_ptr<saimeta::Meta> meta)
_In_ std::weak_ptr<saimeta::Meta> meta,
_In_ uint32_t attr_count,
_In_ const sai_attribute_t *attr_list)
{
SWSS_LOG_ENTER();

Expand Down Expand Up @@ -595,7 +597,7 @@ std::shared_ptr<SwitchStateBase> VirtualSwitchSaiInterface::init_switch(
}
else
{
sai_status_t status = ss->initialize_default_objects(); // TODO move to constructor
sai_status_t status = ss->initialize_default_objects(attr_count, attr_list); // TODO move to constructor

if (status != SAI_STATUS_SUCCESS)
{
Expand Down Expand Up @@ -652,7 +654,7 @@ sai_status_t VirtualSwitchSaiInterface::create(
}
}

auto ss = init_switch(switchId, config, warmBootState, m_meta);
auto ss = init_switch(switchId, config, warmBootState, m_meta, attr_count, attr_list);

if (!ss)
{
Expand Down

0 comments on commit fc50cf5

Please sign in to comment.