Skip to content

Commit edbceb9

Browse files
authored
[syncd][vslib] Keep new warm boot discovered SERDES objects (#985)
1 parent af5c156 commit edbceb9

16 files changed

+336
-66
lines changed

syncd/ComparisonLogic.cpp

+17
Original file line numberDiff line numberDiff line change
@@ -2333,6 +2333,7 @@ void ComparisonLogic::populateExistingObjects(
23332333

23342334
auto coldBootDiscoveredVids = m_switch->getColdBootDiscoveredVids();
23352335
auto warmBootDiscoveredVids = m_switch->getWarmBootDiscoveredVids();
2336+
auto warmBootNewDiscoveredVids = m_switch->getWarmBootNewDiscoveredVids();
23362337

23372338
/*
23382339
* If some objects that are existing objects on switch are not present in
@@ -2455,6 +2456,22 @@ void ComparisonLogic::populateExistingObjects(
24552456
}
24562457
}
24572458

2459+
if (warmBootNewDiscoveredVids.size())
2460+
{
2461+
// We have some new discovered VIDs after warm boot, we need to
2462+
// create temporary objects from them, so comparison logic will not
2463+
// get confused and will not remove them.
2464+
//
2465+
// TODO: there could be potential issue here, when user will remove
2466+
// one of the new discovered object in init view phase, then we
2467+
// can't put that object to DB, and it should be removed.
2468+
2469+
performColdCheck = false;
2470+
2471+
SWSS_LOG_NOTICE("creating and matching %zu new discovered WARM BOOT objects",
2472+
warmBootNewDiscoveredVids.size());
2473+
}
2474+
24582475
if (performColdCheck && coldBootDiscoveredVids.find(vid) == coldBootDiscoveredVids.end())
24592476
{
24602477
SWSS_LOG_INFO("object is not on default existing list: %s RID %s VID %s",

syncd/SaiSwitch.cpp

+53-63
Original file line numberDiff line numberDiff line change
@@ -69,8 +69,6 @@ SaiSwitch::SaiSwitch(
6969

7070
helperLoadColdVids();
7171

72-
helperPopulateWarmBootVids();
73-
7472
if (getSwitchType() == SAI_SWITCH_TYPE_NPU)
7573
{
7674
saiGetMacAddress(m_default_mac_address);
@@ -899,46 +897,6 @@ sai_object_id_t SaiSwitch::getDefaultValueForOidAttr(
899897
return ita->second;
900898
}
901899

902-
void SaiSwitch::helperPopulateWarmBootVids()
903-
{
904-
SWSS_LOG_ENTER();
905-
906-
if (!m_warmBoot)
907-
return;
908-
909-
SWSS_LOG_NOTICE("populate warm boot VIDs");
910-
911-
// It may happen, that after warm boot some new oids were discovered that
912-
// were not present on warm shutdown, this may happen during vendor SAI
913-
// update and for example introducing some new default objects on switch or
914-
// queues on cpu. In this case, translator will create new VID/RID pair on
915-
// database and local memory.
916-
917-
auto rid2vid = getRidToVidMap();
918-
919-
for (sai_object_id_t rid: m_discovered_rids)
920-
{
921-
sai_object_id_t vid = m_translator->translateRidToVid(rid, m_switch_vid);
922-
923-
m_warmBootDiscoveredVids.insert(vid);
924-
925-
if (rid2vid.find(rid) == rid2vid.end())
926-
{
927-
SWSS_LOG_NOTICE("spotted new RID %s (VID %s) on WARM BOOT",
928-
sai_serialize_object_id(rid).c_str(),
929-
sai_serialize_object_id(vid).c_str());
930-
931-
m_warmBootNewDiscoveredVids.insert(vid);
932-
933-
// this means that some new objects were discovered but they are
934-
// not present in current ASIC_VIEW, and we need to create dummy
935-
// entries for them
936-
937-
redisSetDummyAsicStateForRealObjectId(rid);
938-
}
939-
}
940-
}
941-
942900
std::vector<uint32_t> SaiSwitch::saiGetPortLanes(
943901
_In_ sai_object_id_t port_rid)
944902
{
@@ -1088,6 +1046,21 @@ void SaiSwitch::collectPortRelatedObjects(
10881046
related.insert(objlist.begin(), objlist.end());
10891047
}
10901048

1049+
// treat port serdes as related object
1050+
1051+
sai_attribute_t attr;
1052+
1053+
attr.id = SAI_PORT_ATTR_PORT_SERDES_ID;
1054+
1055+
auto status = m_vendorSai->get(SAI_OBJECT_TYPE_PORT, portRid, 1, &attr);
1056+
1057+
if (status == SAI_STATUS_SUCCESS && attr.value.oid != SAI_NULL_OBJECT_ID)
1058+
{
1059+
// some platforms not support PORT SERDES, so get it only on success
1060+
1061+
related.insert(attr.value.oid);
1062+
}
1063+
10911064
SWSS_LOG_NOTICE("obtained %zu port %s related RIDs",
10921065
related.size(),
10931066
sai_serialize_object_id(portRid).c_str());
@@ -1165,44 +1138,61 @@ void SaiSwitch::checkWarmBootDiscoveredRids()
11651138
{
11661139
SWSS_LOG_ENTER();
11671140

1168-
/*
1141+
if (!m_warmBoot)
1142+
{
1143+
return;
1144+
}
1145+
1146+
SWSS_LOG_NOTICE("check warm boot RIDs");
1147+
1148+
/**
1149+
* It may happen, that after warm boot some new oids were discovered that
1150+
* were not present on warm shutdown, this may happen during vendor SAI
1151+
* update and for example introducing some new default objects on switch or
1152+
* queues on cpu. In this case, translator will create new VID/RID pair on
1153+
* database and local memory.
1154+
*
11691155
* After switch was created, rid discovery method was called, and all
11701156
* discovered RIDs should be present in current RID2VID map in redis
1171-
* database. If any RID is missing, then ether there is bug in vendor code,
1172-
* and after warm boot some RID values changed or we have a bug and forgot
1173-
* to put rid/vid pair to redis.
1157+
* database. If any RID is missing, then ether:
1158+
* - there is bug in vendor code and after warm boot some RID values changed
1159+
* - or we have a bug and forgot to put rid/vid pair to redis
1160+
* - or we new objects was actually introduced with new firmware like for
1161+
* example PORT_SERDES
11741162
*
11751163
* Assumption here is that during warm boot ASIC state will not change.
11761164
*/
11771165

11781166
auto rid2vid = getRidToVidMap();
11791167

1180-
bool success = true;
1181-
1182-
for (auto rid: getDiscoveredRids())
1168+
for (sai_object_id_t rid: getDiscoveredRids())
11831169
{
1184-
if (rid2vid.find(rid) != rid2vid.end())
1185-
continue;
1170+
sai_object_id_t vid = m_translator->translateRidToVid(rid, m_switch_vid);
1171+
1172+
m_warmBootDiscoveredVids.insert(vid);
11861173

1187-
auto ot = m_vendorSai->objectTypeQuery(rid);
1174+
if (rid2vid.find(rid) == rid2vid.end())
1175+
{
1176+
auto ot = m_vendorSai->objectTypeQuery(rid);
11881177

1189-
// SWSS_LOG_ERROR("RID %s (%s) is missing from current RID2VID map after WARM boot!",
1190-
SWSS_LOG_WARN("RID %s (%s) is missing from current RID2VID map after WARM boot!",
1191-
sai_serialize_object_id(rid).c_str(),
1192-
sai_serialize_object_type(ot).c_str());
1178+
SWSS_LOG_NOTICE("spotted new RID %s missing from current RID2VID (new VID %s) (%s) on WARM BOOT",
1179+
sai_serialize_object_id(rid).c_str(),
1180+
sai_serialize_object_id(vid).c_str(),
1181+
sai_serialize_object_type(ot).c_str());
11931182

1194-
// XXX workaround, put discovered object in database
1183+
m_warmBootNewDiscoveredVids.insert(vid);
11951184

1196-
redisSetDummyAsicStateForRealObjectId(rid);
1185+
// this means that some new objects were discovered but they are
1186+
// not present in current ASIC_VIEW, and we need to create dummy
1187+
// entries for them
11971188

1198-
success = false;
1189+
redisSetDummyAsicStateForRealObjectId(rid);
1190+
}
11991191
}
12001192

1201-
if (!success)
1193+
if (m_warmBootNewDiscoveredVids.size())
12021194
{
1203-
// XXX workaround
1204-
//SWSS_LOG_THROW("FATAL, some discovered RIDs are not present in current RID2VID map, bug");
1205-
SWSS_LOG_ERROR("FATAL, some discovered RIDs are not present in current RID2VID map, WORKAROUND, inserting them to ASIC_DB");
1195+
SWSS_LOG_NOTICE("discovered %zu new RIDs on WARM BOOT, new firmware? or bug", m_warmBootNewDiscoveredVids.size());
12061196
}
12071197

12081198
SWSS_LOG_NOTICE("all discovered RIDs are present in current RID2VID map for switch VID %s",

syncd/SaiSwitch.h

-2
Original file line numberDiff line numberDiff line change
@@ -286,8 +286,6 @@ namespace syncd
286286

287287
void helperLoadColdVids();
288288

289-
void helperPopulateWarmBootVids();
290-
291289
/*
292290
* Other Methods.
293291
*/

tests/BCM56850.pl

+46
Original file line numberDiff line numberDiff line change
@@ -705,8 +705,54 @@ sub test_buffer_profile_get
705705
play "buffer_profile_get_B.rec";
706706
}
707707

708+
sub test_brcm_warm_new_object_port_serdes
709+
{
710+
fresh_start;
711+
712+
play "empty_sw.rec";
713+
714+
print "port serdes objects in ASIC_DB: ";
715+
print `redis-cli -n 1 keys "*_SERDES*" | wc -l`;
716+
717+
request_warm_shutdown;
718+
719+
# remove port serdes from asic db to simulate
720+
# previous boot didn't contained serdes objects
721+
722+
print "port serdes entries (objects and attributes) in sai_warmboot.bin: ";
723+
print `cat sai_warmboot.bin | grep _SERDES_| wc -l`;
724+
725+
print "removed port serdes objects from ASIC_DB: ";
726+
print `redis-cli -n 1 --scan --pattern '*SERDES*' |xargs redis-cli -n 1 DEL`;
727+
728+
# need to handle rid2vid map
729+
730+
print "removed port serdes from VIDTORID map: ";
731+
print `redis-cli -n 1 HKEYS VIDTORID |grep oid:0x5700 | xargs redis-cli -n 1 HDEL VIDTORID`;
732+
print "removed remove serdes from RIDTOVID map: ";
733+
print `redis-cli -n 1 HKEYS RIDTOVID |grep oid:0x5700 | xargs redis-cli -n 1 HDEL RIDTOVID`;
734+
735+
start_syncd_warm;
736+
737+
play "empty_sw.rec", 0;
738+
739+
print "check ASIC_DB for serdes\n";
740+
print "RIDTOVID: ", `redis-cli -n 1 HKEYS RIDTOVID |grep oid:0x5700 |wc -l`;
741+
print "VIDTORID: ", `redis-cli -n 1 HKEYS VIDTORID |grep oid:0x5700 |wc -l`;
742+
print "ASIC_DB: ", `redis-cli -n 1 keys "*_SERDES*"| wc -l`;
743+
}
744+
745+
sub test_remove_port_serdes
746+
{
747+
fresh_start;
748+
749+
play "test_remove_port_serdes.rec";
750+
}
751+
708752
# RUN TESTS
709753

754+
test_remove_port_serdes;
755+
test_brcm_warm_new_object_port_serdes;
710756
test_buffer_profile_get;
711757
test_multi_switch_key;
712758
test_ignore_attributes;

tests/BCM56850/remove_create_port.rec

+3
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
2018-08-06.22:34:50.355829|G|SAI_STATUS_SUCCESS|SAI_BRIDGE_ATTR_PORT_LIST=32:oid:0x3a000000000002,oid:0x3a000000000003,oid:0x3a000000000004,oid:0x3a000000000005,oid:0x3a000000000006,oid:0x3a000000000007,oid:0x3a000000000008,oid:0x3a000000000009,oid:0x3a00000000000a,oid:0x3a00000000000b,oid:0x3a00000000000c,oid:0x3a00000000000d,oid:0x3a00000000000e,oid:0x3a00000000000f,oid:0x3a000000000010,oid:0x3a000000000011,oid:0x3a000000000012,oid:0x3a000000000013,oid:0x3a000000000014,oid:0x3a000000000015,oid:0x3a000000000016,oid:0x3a000000000017,oid:0x3a000000000018,oid:0x3a000000000019,oid:0x3a00000000001a,oid:0x3a00000000001b,oid:0x3a00000000001c,oid:0x3a00000000001d,oid:0x3a00000000001e,oid:0x3a00000000001f,oid:0x3a000000000020,oid:0x3a000000000021
1212
2018-08-06.22:34:50.347983|r|SAI_OBJECT_TYPE_VLAN_MEMBER:oid:0x27000000000002
1313
2018-08-06.22:34:50.360742|r|SAI_OBJECT_TYPE_BRIDGE_PORT:oid:0x3a000000000002
14+
2022-02-18.20:30:58.867607|g|SAI_OBJECT_TYPE_PORT:oid:0x1000000000002|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x0
15+
2022-02-18.20:30:58.868642|G|SAI_STATUS_SUCCESS|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x570000000005a7
16+
2022-02-18.20:30:58.868723|r|SAI_OBJECT_TYPE_PORT_SERDES:oid:0x570000000005a7
1417
2017-06-14.01:56:11.535437|r|SAI_OBJECT_TYPE_PORT:oid:0x1000000000002
1518
2017-06-14.01:56:05.520538|g|SAI_OBJECT_TYPE_SWITCH:oid:0x21000000000000|SAI_SWITCH_ATTR_PORT_LIST=31:oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0
1619
2017-06-14.01:56:05.525938|G|SAI_STATUS_SUCCESS|SAI_SWITCH_ATTR_PORT_LIST=31:oid:0x1000000000003,oid:0x1000000000004,oid:0x1000000000005,oid:0x1000000000006,oid:0x1000000000007,oid:0x1000000000008,oid:0x1000000000009,oid:0x100000000000a,oid:0x100000000000b,oid:0x100000000000c,oid:0x100000000000d,oid:0x100000000000e,oid:0x100000000000f,oid:0x1000000000010,oid:0x1000000000011,oid:0x1000000000012,oid:0x1000000000013,oid:0x1000000000014,oid:0x1000000000015,oid:0x1000000000016,oid:0x1000000000017,oid:0x1000000000018,oid:0x1000000000019,oid:0x100000000001a,oid:0x100000000001b,oid:0x100000000001c,oid:0x100000000001d,oid:0x100000000001e,oid:0x100000000001f,oid:0x1000000000020,oid:0x1000000000021

tests/BCM56850/remove_port.rec

+15
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,29 @@
2121
2018-08-06.22:34:50.355829|G|SAI_STATUS_SUCCESS|SAI_BRIDGE_ATTR_PORT_LIST=32:oid:0x3a000000000002,oid:0x3a000000000003,oid:0x3a000000000004,oid:0x3a000000000005,oid:0x3a000000000006,oid:0x3a000000000007,oid:0x3a000000000008,oid:0x3a000000000009,oid:0x3a00000000000a,oid:0x3a00000000000b,oid:0x3a00000000000c,oid:0x3a00000000000d,oid:0x3a00000000000e,oid:0x3a00000000000f,oid:0x3a000000000010,oid:0x3a000000000011,oid:0x3a000000000012,oid:0x3a000000000013,oid:0x3a000000000014,oid:0x3a000000000015,oid:0x3a000000000016,oid:0x3a000000000017,oid:0x3a000000000018,oid:0x3a000000000019,oid:0x3a00000000001a,oid:0x3a00000000001b,oid:0x3a00000000001c,oid:0x3a00000000001d,oid:0x3a00000000001e,oid:0x3a00000000001f,oid:0x3a000000000020,oid:0x3a000000000021
2222
2018-08-06.22:34:50.347983|r|SAI_OBJECT_TYPE_VLAN_MEMBER:oid:0x27000000000002
2323
2018-08-06.22:34:50.360742|r|SAI_OBJECT_TYPE_BRIDGE_PORT:oid:0x3a000000000002
24+
2022-02-18.20:30:58.867607|g|SAI_OBJECT_TYPE_PORT:oid:0x1000000000002|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x0
25+
2022-02-18.20:30:58.868642|G|SAI_STATUS_SUCCESS|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x570000000005a7
26+
2022-02-18.20:30:58.868723|r|SAI_OBJECT_TYPE_PORT_SERDES:oid:0x570000000005a7
2427
2017-06-14.01:56:11.535437|r|SAI_OBJECT_TYPE_PORT:oid:0x1000000000002
2528
2017-06-14.01:56:11.535437|c|SAI_OBJECT_TYPE_PORT:oid:0x1000000000022|SAI_PORT_ATTR_SPEED=10000|SAI_PORT_ATTR_HW_LANE_LIST=1:202
2629
2017-06-14.01:56:11.535437|c|SAI_OBJECT_TYPE_PORT:oid:0x1000000000023|SAI_PORT_ATTR_SPEED=10000|SAI_PORT_ATTR_HW_LANE_LIST=1:203
2730
2017-06-14.01:56:11.535437|c|SAI_OBJECT_TYPE_PORT:oid:0x1000000000024|SAI_PORT_ATTR_SPEED=10000|SAI_PORT_ATTR_HW_LANE_LIST=1:204
2831
2017-06-14.01:56:11.535437|c|SAI_OBJECT_TYPE_PORT:oid:0x1000000000025|SAI_PORT_ATTR_SPEED=10000|SAI_PORT_ATTR_HW_LANE_LIST=1:205
32+
2022-02-18.20:30:58.867607|g|SAI_OBJECT_TYPE_PORT:oid:0x1000000000022|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x0
33+
2022-02-18.20:30:58.868642|G|SAI_STATUS_SUCCESS|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x570000000005a7
34+
2022-02-18.20:30:58.868723|r|SAI_OBJECT_TYPE_PORT_SERDES:oid:0x570000000005a7
2935
2017-06-14.01:56:11.535437|r|SAI_OBJECT_TYPE_PORT:oid:0x1000000000022
36+
2022-02-18.20:30:58.867607|g|SAI_OBJECT_TYPE_PORT:oid:0x1000000000023|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x0
37+
2022-02-18.20:30:58.868642|G|SAI_STATUS_SUCCESS|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x570000000005a7
38+
2022-02-18.20:30:58.868723|r|SAI_OBJECT_TYPE_PORT_SERDES:oid:0x570000000005a7
3039
2017-06-14.01:56:11.535437|r|SAI_OBJECT_TYPE_PORT:oid:0x1000000000023
40+
2022-02-18.20:30:58.867607|g|SAI_OBJECT_TYPE_PORT:oid:0x1000000000024|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x0
41+
2022-02-18.20:30:58.868642|G|SAI_STATUS_SUCCESS|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x570000000005a7
42+
2022-02-18.20:30:58.868723|r|SAI_OBJECT_TYPE_PORT_SERDES:oid:0x570000000005a7
3143
2017-06-14.01:56:11.535437|r|SAI_OBJECT_TYPE_PORT:oid:0x1000000000024
44+
2022-02-18.20:30:58.867607|g|SAI_OBJECT_TYPE_PORT:oid:0x1000000000025|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x0
45+
2022-02-18.20:30:58.868642|G|SAI_STATUS_SUCCESS|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x570000000005a7
46+
2022-02-18.20:30:58.868723|r|SAI_OBJECT_TYPE_PORT_SERDES:oid:0x570000000005a7
3247
2017-06-14.01:56:11.535437|r|SAI_OBJECT_TYPE_PORT:oid:0x1000000000025
3348
2017-06-14.01:56:06.151337|a|APPLY_VIEW
3449
2017-06-14.01:56:06.156740|A|SAI_STATUS_SUCCESS
+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
2017-06-14.01:55:46.541806|#|recording on: ./sairedis.2017-06-14.01:55:46.541389.rec
2+
2017-06-14.01:55:46.543987|a|INIT_VIEW
3+
2017-06-14.01:55:46.551164|A|SAI_STATUS_SUCCESS
4+
2017-06-14.01:55:46.555975|c|SAI_OBJECT_TYPE_SWITCH:oid:0x21000000000000|SAI_SWITCH_ATTR_INIT_SWITCH=true
5+
2017-06-14.01:56:05.520538|g|SAI_OBJECT_TYPE_SWITCH:oid:0x21000000000000|SAI_SWITCH_ATTR_PORT_LIST=32:oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0
6+
2017-06-14.01:56:05.525938|G|SAI_STATUS_SUCCESS|SAI_SWITCH_ATTR_PORT_LIST=32:oid:0x1000000000002,oid:0x1000000000003,oid:0x1000000000004,oid:0x1000000000005,oid:0x1000000000006,oid:0x1000000000007,oid:0x1000000000008,oid:0x1000000000009,oid:0x100000000000a,oid:0x100000000000b,oid:0x100000000000c,oid:0x100000000000d,oid:0x100000000000e,oid:0x100000000000f,oid:0x1000000000010,oid:0x1000000000011,oid:0x1000000000012,oid:0x1000000000013,oid:0x1000000000014,oid:0x1000000000015,oid:0x1000000000016,oid:0x1000000000017,oid:0x1000000000018,oid:0x1000000000019,oid:0x100000000001a,oid:0x100000000001b,oid:0x100000000001c,oid:0x100000000001d,oid:0x100000000001e,oid:0x100000000001f,oid:0x1000000000020,oid:0x1000000000021
7+
2018-08-06.22:34:50.344893|g|SAI_OBJECT_TYPE_SWITCH:oid:0x21000000000000|SAI_SWITCH_ATTR_DEFAULT_1Q_BRIDGE_ID=oid:0x0|SAI_SWITCH_ATTR_DEFAULT_VLAN_ID=oid:0x0
8+
2018-08-06.22:34:50.345605|G|SAI_STATUS_SUCCESS|SAI_SWITCH_ATTR_DEFAULT_1Q_BRIDGE_ID=oid:0x39000000000001|SAI_SWITCH_ATTR_DEFAULT_VLAN_ID=oid:0x26000000000001
9+
2018-08-06.22:34:50.345660|g|SAI_OBJECT_TYPE_VLAN:oid:0x26000000000001|SAI_VLAN_ATTR_MEMBER_LIST=32:oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0
10+
2018-08-06.22:34:50.347858|G|SAI_STATUS_SUCCESS|SAI_VLAN_ATTR_MEMBER_LIST=32:oid:0x27000000000002,oid:0x27000000000003,oid:0x27000000000004,oid:0x27000000000005,oid:0x27000000000006,oid:0x27000000000007,oid:0x27000000000008,oid:0x27000000000009,oid:0x2700000000000a,oid:0x2700000000000b,oid:0x2700000000000c,oid:0x2700000000000d,oid:0x2700000000000e,oid:0x2700000000000f,oid:0x27000000000010,oid:0x27000000000011,oid:0x27000000000012,oid:0x27000000000013,oid:0x27000000000014,oid:0x27000000000015,oid:0x27000000000016,oid:0x27000000000017,oid:0x27000000000018,oid:0x27000000000019,oid:0x2700000000001a,oid:0x2700000000001b,oid:0x2700000000001c,oid:0x2700000000001d,oid:0x2700000000001e,oid:0x2700000000001f,oid:0x27000000000020,oid:0x27000000000021
11+
2018-08-06.22:34:50.351789|g|SAI_OBJECT_TYPE_BRIDGE:oid:0x39000000000001|SAI_BRIDGE_ATTR_PORT_LIST=32:oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0,oid:0x0
12+
2018-08-06.22:34:50.355829|G|SAI_STATUS_SUCCESS|SAI_BRIDGE_ATTR_PORT_LIST=32:oid:0x3a000000000002,oid:0x3a000000000003,oid:0x3a000000000004,oid:0x3a000000000005,oid:0x3a000000000006,oid:0x3a000000000007,oid:0x3a000000000008,oid:0x3a000000000009,oid:0x3a00000000000a,oid:0x3a00000000000b,oid:0x3a00000000000c,oid:0x3a00000000000d,oid:0x3a00000000000e,oid:0x3a00000000000f,oid:0x3a000000000010,oid:0x3a000000000011,oid:0x3a000000000012,oid:0x3a000000000013,oid:0x3a000000000014,oid:0x3a000000000015,oid:0x3a000000000016,oid:0x3a000000000017,oid:0x3a000000000018,oid:0x3a000000000019,oid:0x3a00000000001a,oid:0x3a00000000001b,oid:0x3a00000000001c,oid:0x3a00000000001d,oid:0x3a00000000001e,oid:0x3a00000000001f,oid:0x3a000000000020,oid:0x3a000000000021
13+
2018-08-06.22:34:50.347983|r|SAI_OBJECT_TYPE_VLAN_MEMBER:oid:0x27000000000002
14+
2018-08-06.22:34:50.360742|r|SAI_OBJECT_TYPE_BRIDGE_PORT:oid:0x3a000000000002
15+
2022-02-18.20:30:58.867607|g|SAI_OBJECT_TYPE_PORT:oid:0x1000000000002|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x0
16+
2022-02-18.20:30:58.868642|G|SAI_STATUS_SUCCESS|SAI_PORT_ATTR_PORT_SERDES_ID=oid:0x570000000005a7
17+
2022-02-18.20:30:58.868723|r|SAI_OBJECT_TYPE_PORT_SERDES:oid:0x570000000005a7
18+
2017-06-14.01:56:11.535437|r|SAI_OBJECT_TYPE_PORT:oid:0x1000000000002
19+
2017-06-14.01:56:06.151337|a|APPLY_VIEW
20+
2017-06-14.01:56:06.156740|A|SAI_STATUS_SUCCESS

0 commit comments

Comments
 (0)