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

Moved SAI Header to git tag v1.8.1 #816

Merged
merged 6 commits into from
Apr 9, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion SAI
Submodule SAI updated 62 files
+40 −0 azure-pipelines.yml
+114 −0 doc/Override-VRF.md
+158 −0 doc/Pre-Ingress-ACL.md
+98 −0 doc/SAI-Proposal-versioning.md
+1 −1 experimental/saiextensions.h
+2 −2 flexsai/p4/backend/json_stage/analyzer.h
+1 −1 flexsai/p4/backend/json_stage/expression.h
+1 −1 flexsai/p4/backend/json_stage/lower.cpp
+1 −1 flexsai/p4/backend/json_stage/lower.h
+1 −1 flexsai/p4/backend/json_stage/saiSwitch.cpp
+3 −3 flexsai/p4/backend/output_stage/SAI_templates/sai_template.h
+14 −1 inc/saiacl.h
+3 −0 inc/saihash.h
+39 −8 inc/saimacsec.h
+97 −0 inc/saimpls.h
+4 −2 inc/saineighbor.h
+10 −19 inc/saiport.h
+9 −0 inc/sairouterinterface.h
+344 −20 inc/saiswitch.h
+21 −59 inc/saitunnel.h
+33 −0 inc/saitypes.h
+1 −0 meta/Doxyfile
+10 −1 meta/Makefile
+3 −0 meta/acronyms.txt
+71 −69 meta/aspell.en.pws
+255 −7 meta/parse.pl
+15 −0 meta/saimetadatatypes.h
+2 −2 meta/saimetadatautils.c
+103 −19 meta/saisanitycheck.c
+9 −9 meta/saiserializetest.c
+36 −0 saiversion.h
+0 −6 stub/Makefile.am
+0 −39 stub/README.md
+0 −8 stub/autoclean.sh
+0 −75 stub/autogen.sh
+0 −0 stub/config/.gitignore
+0 −91 stub/configure.ac
+0 −279 stub/inc/stub_sai.h
+0 −9 stub/sai_interface.ver
+0 −39 stub/src/Makefile.am
+0 −380 stub/src/stub_sai_fdb.c
+0 −369 stub/src/stub_sai_host_interface.c
+0 −296 stub/src/stub_sai_interfacequery.c
+0 −298 stub/src/stub_sai_neighbor.c
+0 −295 stub/src/stub_sai_nexthop.c
+0 −682 stub/src/stub_sai_nexthopgroup.c
+0 −1,384 stub/src/stub_sai_port.c
+0 −423 stub/src/stub_sai_rif.c
+0 −315 stub/src/stub_sai_route.c
+0 −370 stub/src/stub_sai_router.c
+0 −1,233 stub/src/stub_sai_switch.c
+0 −869 stub/src/stub_sai_utils.c
+0 −527 stub/src/stub_sai_vlan.c
+3 −3 test/basic_router/basic_router.cpp
+2 −2 test/basic_router/ip.cpp
+1 −1 test/basic_router/nexthopgrp_mgr.cpp
+4 −4 test/basic_router/route_mgr.cpp
+1 −1 test/sai_ut/routing/sai_l3_neighbor_unit_test.cpp
+1 −1 test/sai_ut/routing/sai_l3_nexthop_unit_test.cpp
+1 −1 test/sai_ut/routing/sai_l3_nexthopgroup_unit_test.cpp
+1 −1 test/sai_ut/routing/sai_l3_rif_unit_test.cpp
+1 −1 test/saithrift/src/switch_sai_rpc_server.cpp
3 changes: 3 additions & 0 deletions lib/inc/RedisRemoteSaiInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -185,18 +185,21 @@ namespace sairedis
public: // bulk create ENTRY

SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(fdb_entry);
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(inseg_entry);
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(nat_entry);
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(route_entry);

public: // bulk remove ENTRY

SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(fdb_entry);
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(inseg_entry);
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(nat_entry);
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(route_entry);

public: // bulk set ENTRY

SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_SET_ENTRY(fdb_entry);
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_SET_ENTRY(inseg_entry);
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_SET_ENTRY(nat_entry);
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_SET_ENTRY(route_entry);

Expand Down
3 changes: 3 additions & 0 deletions lib/inc/Sai.h
Original file line number Diff line number Diff line change
Expand Up @@ -177,18 +177,21 @@ namespace sairedis
public: // bulk create ENTRY

SAIREDIS_SAI_DECLARE_BULK_CREATE_ENTRY(fdb_entry);
SAIREDIS_SAI_DECLARE_BULK_CREATE_ENTRY(inseg_entry);
SAIREDIS_SAI_DECLARE_BULK_CREATE_ENTRY(nat_entry);
SAIREDIS_SAI_DECLARE_BULK_CREATE_ENTRY(route_entry);

public: // bulk remove ENTRY

SAIREDIS_SAI_DECLARE_BULK_REMOVE_ENTRY(fdb_entry);
SAIREDIS_SAI_DECLARE_BULK_REMOVE_ENTRY(inseg_entry);
SAIREDIS_SAI_DECLARE_BULK_REMOVE_ENTRY(nat_entry);
SAIREDIS_SAI_DECLARE_BULK_REMOVE_ENTRY(route_entry);

public: // bulk set ENTRY

SAIREDIS_SAI_DECLARE_BULK_SET_ENTRY(fdb_entry);
SAIREDIS_SAI_DECLARE_BULK_SET_ENTRY(inseg_entry);
SAIREDIS_SAI_DECLARE_BULK_SET_ENTRY(nat_entry);
SAIREDIS_SAI_DECLARE_BULK_SET_ENTRY(route_entry);

Expand Down
3 changes: 3 additions & 0 deletions lib/inc/SaiInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -168,18 +168,21 @@ namespace sairedis
public: // bulk create ENTRY

SAIREDIS_SAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(fdb_entry);
SAIREDIS_SAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(inseg_entry);
SAIREDIS_SAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(nat_entry);
SAIREDIS_SAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(route_entry);

public: // bulk remove ENTRY

SAIREDIS_SAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(fdb_entry);
SAIREDIS_SAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(inseg_entry);
SAIREDIS_SAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(nat_entry);
SAIREDIS_SAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(route_entry);

public: // bulk set ENTRY

SAIREDIS_SAIINTERFACE_DECLARE_BULK_SET_ENTRY(fdb_entry);
SAIREDIS_SAIINTERFACE_DECLARE_BULK_SET_ENTRY(inseg_entry);
SAIREDIS_SAIINTERFACE_DECLARE_BULK_SET_ENTRY(nat_entry);
SAIREDIS_SAIINTERFACE_DECLARE_BULK_SET_ENTRY(route_entry);

Expand Down
76 changes: 76 additions & 0 deletions lib/src/RedisRemoteSaiInterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1410,6 +1410,24 @@ sai_status_t RedisRemoteSaiInterface::bulkRemove(
return bulkRemove(SAI_OBJECT_TYPE_NAT_ENTRY, serializedObjectIds, mode, object_statuses);
}

sai_status_t RedisRemoteSaiInterface::bulkRemove(
_In_ uint32_t object_count,
_In_ const sai_inseg_entry_t *inseg_entry,
_In_ sai_bulk_op_error_mode_t mode,
_Out_ sai_status_t *object_statuses)
{
SWSS_LOG_ENTER();

std::vector<std::string> serializedObjectIds;

for (uint32_t idx = 0; idx < object_count; idx++)
{
serializedObjectIds.emplace_back(sai_serialize_inseg_entry(inseg_entry[idx]));
}

return bulkRemove(SAI_OBJECT_TYPE_INSEG_ENTRY, serializedObjectIds, mode, object_statuses);
}

sai_status_t RedisRemoteSaiInterface::bulkRemove(
_In_ uint32_t object_count,
_In_ const sai_fdb_entry_t *fdb_entry,
Expand Down Expand Up @@ -1486,6 +1504,25 @@ sai_status_t RedisRemoteSaiInterface::bulkSet(
return bulkSet(SAI_OBJECT_TYPE_NAT_ENTRY, serializedObjectIds, attr_list, mode, object_statuses);
}

sai_status_t RedisRemoteSaiInterface::bulkSet(
_In_ uint32_t object_count,
_In_ const sai_inseg_entry_t *inseg_entry,
_In_ const sai_attribute_t *attr_list,
_In_ sai_bulk_op_error_mode_t mode,
_Out_ sai_status_t *object_statuses)
{
SWSS_LOG_ENTER();

std::vector<std::string> serializedObjectIds;

for (uint32_t idx = 0; idx < object_count; idx++)
{
serializedObjectIds.emplace_back(sai_serialize_inseg_entry(inseg_entry[idx]));
}

return bulkSet(SAI_OBJECT_TYPE_INSEG_ENTRY, serializedObjectIds, attr_list, mode, object_statuses);
}

sai_status_t RedisRemoteSaiInterface::bulkSet(
_In_ uint32_t object_count,
_In_ const sai_fdb_entry_t *fdb_entry,
Expand Down Expand Up @@ -1714,6 +1751,45 @@ sai_status_t RedisRemoteSaiInterface::bulkCreate(
object_statuses);
}

sai_status_t RedisRemoteSaiInterface::bulkCreate(
_In_ uint32_t object_count,
_In_ const sai_inseg_entry_t* inseg_entry,
_In_ const uint32_t *attr_count,
_In_ const sai_attribute_t **attr_list,
_In_ sai_bulk_op_error_mode_t mode,
_Out_ sai_status_t *object_statuses)
{
SWSS_LOG_ENTER();

// TODO support mode

static PerformanceIntervalTimer timer("RedisRemoteSaiInterface::bulkCreate(inseg_entry)");

timer.start();

std::vector<std::string> serialized_object_ids;

// on create vid is put in db by syncd
for (uint32_t idx = 0; idx < object_count; idx++)
{
std::string str_object_id = sai_serialize_inseg_entry(inseg_entry[idx]);
serialized_object_ids.push_back(str_object_id);
}

auto status = bulkCreate(
SAI_OBJECT_TYPE_INSEG_ENTRY,
serialized_object_ids,
attr_count,
attr_list,
mode,
object_statuses);

timer.stop();

timer.inc(object_count);

return status;
}

sai_status_t RedisRemoteSaiInterface::bulkCreate(
_In_ uint32_t object_count,
Expand Down
3 changes: 3 additions & 0 deletions lib/src/Sai.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -505,6 +505,7 @@ sai_status_t Sai::bulkCreate( \

DECLARE_BULK_CREATE_ENTRY(ROUTE_ENTRY,route_entry)
DECLARE_BULK_CREATE_ENTRY(FDB_ENTRY,fdb_entry);
DECLARE_BULK_CREATE_ENTRY(INSEG_ENTRY,inseg_entry);
DECLARE_BULK_CREATE_ENTRY(NAT_ENTRY,nat_entry)


Expand All @@ -530,6 +531,7 @@ sai_status_t Sai::bulkRemove( \

DECLARE_BULK_REMOVE_ENTRY(ROUTE_ENTRY,route_entry)
DECLARE_BULK_REMOVE_ENTRY(FDB_ENTRY,fdb_entry);
DECLARE_BULK_REMOVE_ENTRY(INSEG_ENTRY,inseg_entry);
DECLARE_BULK_REMOVE_ENTRY(NAT_ENTRY,nat_entry)

// BULK SET
Expand All @@ -556,6 +558,7 @@ sai_status_t Sai::bulkSet( \

DECLARE_BULK_SET_ENTRY(ROUTE_ENTRY,route_entry);
DECLARE_BULK_SET_ENTRY(FDB_ENTRY,fdb_entry);
DECLARE_BULK_SET_ENTRY(INSEG_ENTRY,inseg_entry);
DECLARE_BULK_SET_ENTRY(NAT_ENTRY,nat_entry);

// NON QUAD API
Expand Down
12 changes: 12 additions & 0 deletions lib/src/SaiInterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ sai_status_t SaiInterface::create(
case SAI_OBJECT_TYPE_NAT_ENTRY:
return create(&metaKey.objectkey.key.nat_entry, attr_count, attr_list);

case SAI_OBJECT_TYPE_INSEG_ENTRY:
return create(&metaKey.objectkey.key.inseg_entry, attr_count, attr_list);

default:

SWSS_LOG_ERROR("object type %s not implemented, FIXME", info->objecttypename);
Expand Down Expand Up @@ -81,6 +84,9 @@ sai_status_t SaiInterface::remove(
case SAI_OBJECT_TYPE_NAT_ENTRY:
return remove(&metaKey.objectkey.key.nat_entry);

case SAI_OBJECT_TYPE_INSEG_ENTRY:
return remove(&metaKey.objectkey.key.inseg_entry);

default:

SWSS_LOG_ERROR("object type %s not implemented, FIXME", info->objecttypename);
Expand Down Expand Up @@ -123,6 +129,9 @@ sai_status_t SaiInterface::set(
case SAI_OBJECT_TYPE_NAT_ENTRY:
return set(&metaKey.objectkey.key.nat_entry, attr);

case SAI_OBJECT_TYPE_INSEG_ENTRY:
return set(&metaKey.objectkey.key.inseg_entry, attr);

default:

SWSS_LOG_ERROR("object type %s not implemented, FIXME", info->objecttypename);
Expand Down Expand Up @@ -166,6 +175,9 @@ sai_status_t SaiInterface::get(
case SAI_OBJECT_TYPE_NAT_ENTRY:
return get(&metaKey.objectkey.key.nat_entry, attr_count, attr_list);

case SAI_OBJECT_TYPE_INSEG_ENTRY:
return get(&metaKey.objectkey.key.inseg_entry, attr_count, attr_list);

default:

SWSS_LOG_ERROR("object type %s not implemented, FIXME", info->objecttypename);
Expand Down
2 changes: 2 additions & 0 deletions lib/src/sai_redis_mpls.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
#include "sai_redis.h"

REDIS_GENERIC_QUAD_ENTRY(INSEG_ENTRY,inseg_entry);
REDIS_BULK_QUAD_ENTRY(INSEG_ENTRY,inseg_entry);

const sai_mpls_api_t redis_mpls_api = {

REDIS_GENERIC_QUAD_API(inseg_entry)
REDIS_BULK_QUAD_API(inseg_entry)
};
3 changes: 3 additions & 0 deletions lib/src/sai_redis_switch.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ static sai_status_t redis_switch_mdio_write(

REDIS_GENERIC_QUAD(SWITCH,switch);
REDIS_GENERIC_STATS(SWITCH,switch);
REDIS_GENERIC_QUAD(SWITCH_TUNNEL,switch_tunnel);

static sai_status_t redis_create_switch_uniq(
_Out_ sai_object_id_t *switch_id,
Expand All @@ -52,4 +53,6 @@ const sai_switch_api_t redis_switch_api = {

redis_switch_mdio_read,
redis_switch_mdio_write,

REDIS_GENERIC_QUAD_API(switch_tunnel)
};
45 changes: 45 additions & 0 deletions meta/DummySaiInterface.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -258,6 +258,20 @@ sai_status_t DummySaiInterface::bulkRemove(
return m_status;
}

sai_status_t DummySaiInterface::bulkRemove(
_In_ uint32_t object_count,
_In_ const sai_inseg_entry_t *inseg_entry,
_In_ sai_bulk_op_error_mode_t mode,
_Out_ sai_status_t *object_statuses)
{
SWSS_LOG_ENTER();

for (uint32_t idx = 0; idx < object_count; idx++)
object_statuses[idx] = m_status;

return m_status;
}

sai_status_t DummySaiInterface::bulkRemove(
_In_ uint32_t object_count,
_In_ const sai_fdb_entry_t *fdb_entry,
Expand Down Expand Up @@ -319,6 +333,21 @@ sai_status_t DummySaiInterface::bulkSet(
return m_status;
}

sai_status_t DummySaiInterface::bulkSet(
_In_ uint32_t object_count,
_In_ const sai_inseg_entry_t *inseg_entry,
_In_ const sai_attribute_t *attr_list,
_In_ sai_bulk_op_error_mode_t mode,
_Out_ sai_status_t *object_statuses)
{
SWSS_LOG_ENTER();

for (uint32_t idx = 0; idx < object_count; idx++)
object_statuses[idx] = m_status;

return m_status;
}

sai_status_t DummySaiInterface::bulkSet(
_In_ uint32_t object_count,
_In_ const sai_fdb_entry_t *fdb_entry,
Expand Down Expand Up @@ -384,6 +413,22 @@ sai_status_t DummySaiInterface::bulkCreate(
return m_status;
}

sai_status_t DummySaiInterface::bulkCreate(
_In_ uint32_t object_count,
_In_ const sai_inseg_entry_t *inseg_entry,
_In_ const uint32_t *attr_count,
_In_ const sai_attribute_t **attr_list,
_In_ sai_bulk_op_error_mode_t mode,
_Out_ sai_status_t *object_statuses)
{
SWSS_LOG_ENTER();

for (uint32_t idx = 0; idx < object_count; idx++)
object_statuses[idx] = m_status;

return m_status;
}

sai_status_t DummySaiInterface::bulkCreate(
_In_ uint32_t object_count,
_In_ const sai_nat_entry_t *nat_entry,
Expand Down
3 changes: 3 additions & 0 deletions meta/DummySaiInterface.h
Original file line number Diff line number Diff line change
Expand Up @@ -176,18 +176,21 @@ namespace saimeta
public: // bulk create ENTRY

SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(fdb_entry);
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(inseg_entry);
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(nat_entry);
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(route_entry);

public: // bulk remove ENTRY

SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(fdb_entry);
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(inseg_entry);
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(nat_entry);
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(route_entry);

public: // bulk set ENTRY

SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_SET_ENTRY(fdb_entry);
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_SET_ENTRY(inseg_entry);
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_SET_ENTRY(nat_entry);
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_SET_ENTRY(route_entry);

Expand Down
Loading