Skip to content

Commit 0d3749d

Browse files
abdosiqbdwlr
andauthored
Moved SAI Header to git tag v1.8.1 (sonic-net#816)
What I did: Moved the SAI header to v1.8.1. 7cd3a7ed84db3fc9cec13496a5339b6fe1888bb7 (HEAD, tag: v1.8.1, origin/v1.8) Update SAI version to V1.8.1 (sonic-net#1218) 5913e4cdd0c9c7ae859baa2e18086327b39a94da Fix error when compiling Broadcom SAI with v1.8.0 (sonic-net#1216) 5a98bc3c7e86c01f3cf702054f9af7c7c5ca6daf (HEAD, tag: v1.8.0, origin/master, origin/HEAD, master) Update version to 1.8.0 (sonic-net#1207) b3244ceceb45184ffe37da55bb9a98ef126050ce saineighbor.h: Updated SAI_NEIGHBOR_ENTRY_ATTR_ENCAP_INDEX and deprecated SAI_NEIGHBOR_ENTRY_ATTR_ENCAP_IMPOSE_INDEX (sonic-net#1202) 8731ca6e09c7ba99b0b009e5821d80598e216756 Add source/dest/double NAPT entry available attributes (sonic-net#1194) f053d899feb9517f2db43ee462589a30572b5ed1 Add switch attributes for hash offset configuration. (sonic-net#1195) 13e5cd6940f9a0da1878d00f08e5941e09f16e7f PRBS RX State Data Type (sonic-net#1179) 9755845a06525a3c17f03e7b936a70783e8ef068 Packet header based VRF classification (sonic-net#1185) 2369ecb59fff1a5cae948d41eea06bf8b71330b2 SAI versioning (sonic-net#1183) 744279839c176e68b19734657975e3f5ec6f1a32 Replaced SAI_SWITCH_ATTR_MACSEC_OBJECT_ID with SAI_SWITCH_ATTR_MACSEC_OBJECT_LIST (sonic-net#1199) 584c724864fe565357e82d097ddcc7363bddefac [CI] Set up CI&PR with Azure Pipelines (sonic-net#1200) 08192237963174cc60edae9b4812a39c43b291fd Add attribute to query available packet DMA pool size (sonic-net#1198) f092ef1e3ce695fc3f9552721025695312b961a2 Add IPv6 flow label hash attribute. (sonic-net#1192) cbc9562bb7a8f2c3a79702b99be55f3b3afa6957 Override VRF (sonic-net#1186) 1eb35afdb2146baf40e6c2b8f2f8bfe99075eaee Add SAI_SWITCH_ATTR_SWITCH_HARDWARE_INFO format for GB MDIO sysfs access (sonic-net#1171) b2d4c9a57c7f00b2632c35ca5eb3dd6480f7916a Switch scoped tunnel attributes (sonic-net#1173) 96adc95bf8316e1905143d9ecd21f32a43e80d7f Enhancements for MPLS support (sonic-net#1181) 3dcf1f2028da4060b345ad78e8a0c87d225bf5d0 Support for ACL extensions in metadata (sonic-net#1178) 24076be95b871e8f82ecaeb908cad951dc68896c [meta] Add support for allow empty list tag (sonic-net#1190) a2b3344cdde0bf5a4f8e98e1c676a658c0c615b0 spell check fixes (sonic-net#1189) bf4271bab6e8884bd96050bcba44e3134adaaec3 Do not call sai_metadata_sai get APIs before checking if they are allocated (sonic-net#1182) 5d5784dc3dbfc713c92ae7d2c472680b837bb002 [macsec]: Separate XPN configuration attribute from read-only attribute (sonic-net#1169) 6d5a9bf5ad17cb82621cabbe2449524320930606 [macsec]: add SAI_MACSEC_ATTR_SUPPORTED_CIPHER_SUITE_LIST (sonic-net#1172) e72c8f3a0cc543cb228554be82c97a63db917740 [meta] Print each tool version in Makefile (sonic-net#1177) 8f19677da88c7494d563ef7c5acb0529ecbd0b6e [meta] Add check for START, END and RANBE_BASE enums (sonic-net#1175) 24ad7906f145930b2e25682b6248909289d39e72 [meta] Create sai_switch_pointers_t struct (sonic-net#1174) 4f5f84df3fcd0e146707df41d3e2837c48f7c760 Tunnel loopback packet action as resource (sonic-net#1163) 8a0e82c57aa0e22e696158735516904e7dc14052 [meta] Add create only oid attribute check on switch object (sonic-net#1170) 14cf50772e478551920963ecf11f4fd019a0c106 Remove obsolete stub folder (sonic-net#1168) f14f406340e4f5f1b1d674f6fdd5fd861a54c877 [meta] Use safer calloc for integer overflow check (sonic-net#1166) Also this PR include changes of this sonic-net#815 SAI commit b2d4c9a57c7f00b2632c35ca5eb3dd6480f7916a Switch scoped tunnel attributes (sonic-net#1173) needed change in sai_redis_switch.cpp and sai_vs_switch.cpp for compilation. How I verify: Verify Build is fine of libsairedis*.deb, syncd*.deb, swss*.deb Co-authored-by: Ann Pokora <[email protected]>
1 parent 70fff78 commit 0d3749d

36 files changed

+798
-6
lines changed

SAI

Submodule SAI updated 62 files

lib/inc/RedisRemoteSaiInterface.h

+3
Original file line numberDiff line numberDiff line change
@@ -185,18 +185,21 @@ namespace sairedis
185185
public: // bulk create ENTRY
186186

187187
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(fdb_entry);
188+
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(inseg_entry);
188189
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(nat_entry);
189190
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(route_entry);
190191

191192
public: // bulk remove ENTRY
192193

193194
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(fdb_entry);
195+
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(inseg_entry);
194196
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(nat_entry);
195197
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(route_entry);
196198

197199
public: // bulk set ENTRY
198200

199201
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_SET_ENTRY(fdb_entry);
202+
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_SET_ENTRY(inseg_entry);
200203
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_SET_ENTRY(nat_entry);
201204
SAIREDIS_REDISREMOTESAIINTERFACE_DECLARE_BULK_SET_ENTRY(route_entry);
202205

lib/inc/Sai.h

+3
Original file line numberDiff line numberDiff line change
@@ -177,18 +177,21 @@ namespace sairedis
177177
public: // bulk create ENTRY
178178

179179
SAIREDIS_SAI_DECLARE_BULK_CREATE_ENTRY(fdb_entry);
180+
SAIREDIS_SAI_DECLARE_BULK_CREATE_ENTRY(inseg_entry);
180181
SAIREDIS_SAI_DECLARE_BULK_CREATE_ENTRY(nat_entry);
181182
SAIREDIS_SAI_DECLARE_BULK_CREATE_ENTRY(route_entry);
182183

183184
public: // bulk remove ENTRY
184185

185186
SAIREDIS_SAI_DECLARE_BULK_REMOVE_ENTRY(fdb_entry);
187+
SAIREDIS_SAI_DECLARE_BULK_REMOVE_ENTRY(inseg_entry);
186188
SAIREDIS_SAI_DECLARE_BULK_REMOVE_ENTRY(nat_entry);
187189
SAIREDIS_SAI_DECLARE_BULK_REMOVE_ENTRY(route_entry);
188190

189191
public: // bulk set ENTRY
190192

191193
SAIREDIS_SAI_DECLARE_BULK_SET_ENTRY(fdb_entry);
194+
SAIREDIS_SAI_DECLARE_BULK_SET_ENTRY(inseg_entry);
192195
SAIREDIS_SAI_DECLARE_BULK_SET_ENTRY(nat_entry);
193196
SAIREDIS_SAI_DECLARE_BULK_SET_ENTRY(route_entry);
194197

lib/inc/SaiInterface.h

+3
Original file line numberDiff line numberDiff line change
@@ -168,18 +168,21 @@ namespace sairedis
168168
public: // bulk create ENTRY
169169

170170
SAIREDIS_SAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(fdb_entry);
171+
SAIREDIS_SAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(inseg_entry);
171172
SAIREDIS_SAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(nat_entry);
172173
SAIREDIS_SAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(route_entry);
173174

174175
public: // bulk remove ENTRY
175176

176177
SAIREDIS_SAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(fdb_entry);
178+
SAIREDIS_SAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(inseg_entry);
177179
SAIREDIS_SAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(nat_entry);
178180
SAIREDIS_SAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(route_entry);
179181

180182
public: // bulk set ENTRY
181183

182184
SAIREDIS_SAIINTERFACE_DECLARE_BULK_SET_ENTRY(fdb_entry);
185+
SAIREDIS_SAIINTERFACE_DECLARE_BULK_SET_ENTRY(inseg_entry);
183186
SAIREDIS_SAIINTERFACE_DECLARE_BULK_SET_ENTRY(nat_entry);
184187
SAIREDIS_SAIINTERFACE_DECLARE_BULK_SET_ENTRY(route_entry);
185188

lib/src/RedisRemoteSaiInterface.cpp

+76
Original file line numberDiff line numberDiff line change
@@ -1410,6 +1410,24 @@ sai_status_t RedisRemoteSaiInterface::bulkRemove(
14101410
return bulkRemove(SAI_OBJECT_TYPE_NAT_ENTRY, serializedObjectIds, mode, object_statuses);
14111411
}
14121412

1413+
sai_status_t RedisRemoteSaiInterface::bulkRemove(
1414+
_In_ uint32_t object_count,
1415+
_In_ const sai_inseg_entry_t *inseg_entry,
1416+
_In_ sai_bulk_op_error_mode_t mode,
1417+
_Out_ sai_status_t *object_statuses)
1418+
{
1419+
SWSS_LOG_ENTER();
1420+
1421+
std::vector<std::string> serializedObjectIds;
1422+
1423+
for (uint32_t idx = 0; idx < object_count; idx++)
1424+
{
1425+
serializedObjectIds.emplace_back(sai_serialize_inseg_entry(inseg_entry[idx]));
1426+
}
1427+
1428+
return bulkRemove(SAI_OBJECT_TYPE_INSEG_ENTRY, serializedObjectIds, mode, object_statuses);
1429+
}
1430+
14131431
sai_status_t RedisRemoteSaiInterface::bulkRemove(
14141432
_In_ uint32_t object_count,
14151433
_In_ const sai_fdb_entry_t *fdb_entry,
@@ -1486,6 +1504,25 @@ sai_status_t RedisRemoteSaiInterface::bulkSet(
14861504
return bulkSet(SAI_OBJECT_TYPE_NAT_ENTRY, serializedObjectIds, attr_list, mode, object_statuses);
14871505
}
14881506

1507+
sai_status_t RedisRemoteSaiInterface::bulkSet(
1508+
_In_ uint32_t object_count,
1509+
_In_ const sai_inseg_entry_t *inseg_entry,
1510+
_In_ const sai_attribute_t *attr_list,
1511+
_In_ sai_bulk_op_error_mode_t mode,
1512+
_Out_ sai_status_t *object_statuses)
1513+
{
1514+
SWSS_LOG_ENTER();
1515+
1516+
std::vector<std::string> serializedObjectIds;
1517+
1518+
for (uint32_t idx = 0; idx < object_count; idx++)
1519+
{
1520+
serializedObjectIds.emplace_back(sai_serialize_inseg_entry(inseg_entry[idx]));
1521+
}
1522+
1523+
return bulkSet(SAI_OBJECT_TYPE_INSEG_ENTRY, serializedObjectIds, attr_list, mode, object_statuses);
1524+
}
1525+
14891526
sai_status_t RedisRemoteSaiInterface::bulkSet(
14901527
_In_ uint32_t object_count,
14911528
_In_ const sai_fdb_entry_t *fdb_entry,
@@ -1714,6 +1751,45 @@ sai_status_t RedisRemoteSaiInterface::bulkCreate(
17141751
object_statuses);
17151752
}
17161753

1754+
sai_status_t RedisRemoteSaiInterface::bulkCreate(
1755+
_In_ uint32_t object_count,
1756+
_In_ const sai_inseg_entry_t* inseg_entry,
1757+
_In_ const uint32_t *attr_count,
1758+
_In_ const sai_attribute_t **attr_list,
1759+
_In_ sai_bulk_op_error_mode_t mode,
1760+
_Out_ sai_status_t *object_statuses)
1761+
{
1762+
SWSS_LOG_ENTER();
1763+
1764+
// TODO support mode
1765+
1766+
static PerformanceIntervalTimer timer("RedisRemoteSaiInterface::bulkCreate(inseg_entry)");
1767+
1768+
timer.start();
1769+
1770+
std::vector<std::string> serialized_object_ids;
1771+
1772+
// on create vid is put in db by syncd
1773+
for (uint32_t idx = 0; idx < object_count; idx++)
1774+
{
1775+
std::string str_object_id = sai_serialize_inseg_entry(inseg_entry[idx]);
1776+
serialized_object_ids.push_back(str_object_id);
1777+
}
1778+
1779+
auto status = bulkCreate(
1780+
SAI_OBJECT_TYPE_INSEG_ENTRY,
1781+
serialized_object_ids,
1782+
attr_count,
1783+
attr_list,
1784+
mode,
1785+
object_statuses);
1786+
1787+
timer.stop();
1788+
1789+
timer.inc(object_count);
1790+
1791+
return status;
1792+
}
17171793

17181794
sai_status_t RedisRemoteSaiInterface::bulkCreate(
17191795
_In_ uint32_t object_count,

lib/src/Sai.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,7 @@ sai_status_t Sai::bulkCreate( \
505505

506506
DECLARE_BULK_CREATE_ENTRY(ROUTE_ENTRY,route_entry)
507507
DECLARE_BULK_CREATE_ENTRY(FDB_ENTRY,fdb_entry);
508+
DECLARE_BULK_CREATE_ENTRY(INSEG_ENTRY,inseg_entry);
508509
DECLARE_BULK_CREATE_ENTRY(NAT_ENTRY,nat_entry)
509510

510511

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

531532
DECLARE_BULK_REMOVE_ENTRY(ROUTE_ENTRY,route_entry)
532533
DECLARE_BULK_REMOVE_ENTRY(FDB_ENTRY,fdb_entry);
534+
DECLARE_BULK_REMOVE_ENTRY(INSEG_ENTRY,inseg_entry);
533535
DECLARE_BULK_REMOVE_ENTRY(NAT_ENTRY,nat_entry)
534536

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

557559
DECLARE_BULK_SET_ENTRY(ROUTE_ENTRY,route_entry);
558560
DECLARE_BULK_SET_ENTRY(FDB_ENTRY,fdb_entry);
561+
DECLARE_BULK_SET_ENTRY(INSEG_ENTRY,inseg_entry);
559562
DECLARE_BULK_SET_ENTRY(NAT_ENTRY,nat_entry);
560563

561564
// NON QUAD API

lib/src/SaiInterface.cpp

+12
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,9 @@ sai_status_t SaiInterface::create(
4040
case SAI_OBJECT_TYPE_NAT_ENTRY:
4141
return create(&metaKey.objectkey.key.nat_entry, attr_count, attr_list);
4242

43+
case SAI_OBJECT_TYPE_INSEG_ENTRY:
44+
return create(&metaKey.objectkey.key.inseg_entry, attr_count, attr_list);
45+
4346
default:
4447

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

87+
case SAI_OBJECT_TYPE_INSEG_ENTRY:
88+
return remove(&metaKey.objectkey.key.inseg_entry);
89+
8490
default:
8591

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

132+
case SAI_OBJECT_TYPE_INSEG_ENTRY:
133+
return set(&metaKey.objectkey.key.inseg_entry, attr);
134+
126135
default:
127136

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

178+
case SAI_OBJECT_TYPE_INSEG_ENTRY:
179+
return get(&metaKey.objectkey.key.inseg_entry, attr_count, attr_list);
180+
169181
default:
170182

171183
SWSS_LOG_ERROR("object type %s not implemented, FIXME", info->objecttypename);

lib/src/sai_redis_mpls.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
#include "sai_redis.h"
22

33
REDIS_GENERIC_QUAD_ENTRY(INSEG_ENTRY,inseg_entry);
4+
REDIS_BULK_QUAD_ENTRY(INSEG_ENTRY,inseg_entry);
45

56
const sai_mpls_api_t redis_mpls_api = {
67

78
REDIS_GENERIC_QUAD_API(inseg_entry)
9+
REDIS_BULK_QUAD_API(inseg_entry)
810
};

lib/src/sai_redis_switch.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ static sai_status_t redis_switch_mdio_write(
2626

2727
REDIS_GENERIC_QUAD(SWITCH,switch);
2828
REDIS_GENERIC_STATS(SWITCH,switch);
29+
REDIS_GENERIC_QUAD(SWITCH_TUNNEL,switch_tunnel);
2930

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

5354
redis_switch_mdio_read,
5455
redis_switch_mdio_write,
56+
57+
REDIS_GENERIC_QUAD_API(switch_tunnel)
5558
};

meta/DummySaiInterface.cpp

+45
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,20 @@ sai_status_t DummySaiInterface::bulkRemove(
258258
return m_status;
259259
}
260260

261+
sai_status_t DummySaiInterface::bulkRemove(
262+
_In_ uint32_t object_count,
263+
_In_ const sai_inseg_entry_t *inseg_entry,
264+
_In_ sai_bulk_op_error_mode_t mode,
265+
_Out_ sai_status_t *object_statuses)
266+
{
267+
SWSS_LOG_ENTER();
268+
269+
for (uint32_t idx = 0; idx < object_count; idx++)
270+
object_statuses[idx] = m_status;
271+
272+
return m_status;
273+
}
274+
261275
sai_status_t DummySaiInterface::bulkRemove(
262276
_In_ uint32_t object_count,
263277
_In_ const sai_fdb_entry_t *fdb_entry,
@@ -319,6 +333,21 @@ sai_status_t DummySaiInterface::bulkSet(
319333
return m_status;
320334
}
321335

336+
sai_status_t DummySaiInterface::bulkSet(
337+
_In_ uint32_t object_count,
338+
_In_ const sai_inseg_entry_t *inseg_entry,
339+
_In_ const sai_attribute_t *attr_list,
340+
_In_ sai_bulk_op_error_mode_t mode,
341+
_Out_ sai_status_t *object_statuses)
342+
{
343+
SWSS_LOG_ENTER();
344+
345+
for (uint32_t idx = 0; idx < object_count; idx++)
346+
object_statuses[idx] = m_status;
347+
348+
return m_status;
349+
}
350+
322351
sai_status_t DummySaiInterface::bulkSet(
323352
_In_ uint32_t object_count,
324353
_In_ const sai_fdb_entry_t *fdb_entry,
@@ -384,6 +413,22 @@ sai_status_t DummySaiInterface::bulkCreate(
384413
return m_status;
385414
}
386415

416+
sai_status_t DummySaiInterface::bulkCreate(
417+
_In_ uint32_t object_count,
418+
_In_ const sai_inseg_entry_t *inseg_entry,
419+
_In_ const uint32_t *attr_count,
420+
_In_ const sai_attribute_t **attr_list,
421+
_In_ sai_bulk_op_error_mode_t mode,
422+
_Out_ sai_status_t *object_statuses)
423+
{
424+
SWSS_LOG_ENTER();
425+
426+
for (uint32_t idx = 0; idx < object_count; idx++)
427+
object_statuses[idx] = m_status;
428+
429+
return m_status;
430+
}
431+
387432
sai_status_t DummySaiInterface::bulkCreate(
388433
_In_ uint32_t object_count,
389434
_In_ const sai_nat_entry_t *nat_entry,

meta/DummySaiInterface.h

+3
Original file line numberDiff line numberDiff line change
@@ -176,18 +176,21 @@ namespace saimeta
176176
public: // bulk create ENTRY
177177

178178
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(fdb_entry);
179+
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(inseg_entry);
179180
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(nat_entry);
180181
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_CREATE_ENTRY(route_entry);
181182

182183
public: // bulk remove ENTRY
183184

184185
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(fdb_entry);
186+
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(inseg_entry);
185187
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(nat_entry);
186188
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_REMOVE_ENTRY(route_entry);
187189

188190
public: // bulk set ENTRY
189191

190192
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_SET_ENTRY(fdb_entry);
193+
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_SET_ENTRY(inseg_entry);
191194
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_SET_ENTRY(nat_entry);
192195
SAIMETA_DUMMYSAIINTERFACE_DECLARE_BULK_SET_ENTRY(route_entry);
193196

0 commit comments

Comments
 (0)