@@ -2494,51 +2494,39 @@ void PortsOrch::doLagMemberTask(Consumer &consumer)
2494
2494
status = fvValue (i);
2495
2495
}
2496
2496
2497
- if (lag.m_members .find (port_alias) == lag.m_members .end ())
2498
- {
2499
- /* Assert the port doesn't belong to any LAG already */
2500
- assert (!port.m_lag_id && !port.m_lag_member_id );
2501
-
2502
- if (!addLagMember (lag, port))
2503
- {
2504
- it++;
2505
- continue ;
2506
- }
2507
- }
2508
-
2509
2497
/* Sync an enabled member */
2510
2498
if (status == " enabled" )
2511
2499
{
2512
- /* enable collection first, distribution-only mode
2513
- * is not supported on Mellanox platform
2514
- */
2515
- if (setCollectionOnLagMember (port, true ) &&
2516
- setDistributionOnLagMember (port, true ))
2500
+ /* Duplicate entry */
2501
+ if (lag.m_members .find (port_alias) != lag.m_members .end ())
2517
2502
{
2518
2503
it = consumer.m_toSync .erase (it);
2504
+ continue ;
2519
2505
}
2506
+
2507
+ /* Assert the port doesn't belong to any LAG */
2508
+ assert (!port.m_lag_id && !port.m_lag_member_id );
2509
+
2510
+ if (addLagMember (lag, port))
2511
+ it = consumer.m_toSync .erase (it);
2520
2512
else
2521
- {
2522
2513
it++;
2523
- continue ;
2524
- }
2525
2514
}
2526
2515
/* Sync an disabled member */
2527
2516
else /* status == "disabled" */
2528
2517
{
2529
- /* disable distribution first, distribution-only mode
2530
- * is not supported on Mellanox platform
2531
- */
2532
- if (setDistributionOnLagMember (port, false ) &&
2533
- setCollectionOnLagMember (port, false ))
2518
+ /* "status" is "disabled" at start when m_lag_id and
2519
+ * m_lag_member_id are absent */
2520
+ if (!port.m_lag_id || !port.m_lag_member_id )
2534
2521
{
2535
2522
it = consumer.m_toSync .erase (it);
2523
+ continue ;
2536
2524
}
2525
+
2526
+ if (removeLagMember (lag, port))
2527
+ it = consumer.m_toSync .erase (it);
2537
2528
else
2538
- {
2539
2529
it++;
2540
- continue ;
2541
- }
2542
2530
}
2543
2531
}
2544
2532
/* Remove a LAG member */
@@ -2556,13 +2544,9 @@ void PortsOrch::doLagMemberTask(Consumer &consumer)
2556
2544
}
2557
2545
2558
2546
if (removeLagMember (lag, port))
2559
- {
2560
2547
it = consumer.m_toSync .erase (it);
2561
- }
2562
2548
else
2563
- {
2564
2549
it++;
2565
- }
2566
2550
}
2567
2551
else
2568
2552
{
@@ -3356,52 +3340,6 @@ bool PortsOrch::removeLagMember(Port &lag, Port &port)
3356
3340
return true ;
3357
3341
}
3358
3342
3359
- bool PortsOrch::setCollectionOnLagMember (Port &lagMember, bool enableCollection)
3360
- {
3361
- /* Port must be LAG member */
3362
- assert (port.m_lag_member_id );
3363
-
3364
- sai_status_t status = SAI_STATUS_FAILURE;
3365
- sai_attribute_t attr {};
3366
-
3367
- attr.id = SAI_LAG_MEMBER_ATTR_INGRESS_DISABLE;
3368
- attr.value .booldata = !enableCollection;
3369
-
3370
- status = sai_lag_api->set_lag_member_attribute (lagMember.m_lag_member_id , &attr);
3371
- if (status != SAI_STATUS_SUCCESS)
3372
- {
3373
- SWSS_LOG_ERROR (" Failed to %s collection on LAG member %s" ,
3374
- enableCollection ? " enable" : " disable" ,
3375
- lagMember.m_alias .c_str ());
3376
- return false ;
3377
- }
3378
-
3379
- return true ;
3380
- }
3381
-
3382
- bool PortsOrch::setDistributionOnLagMember (Port &lagMember, bool enableDistribution)
3383
- {
3384
- /* Port must be LAG member */
3385
- assert (port.m_lag_member_id );
3386
-
3387
- sai_status_t status = SAI_STATUS_FAILURE;
3388
- sai_attribute_t attr {};
3389
-
3390
- attr.id = SAI_LAG_MEMBER_ATTR_EGRESS_DISABLE;
3391
- attr.value .booldata = !enableDistribution;
3392
-
3393
- status = sai_lag_api->set_lag_member_attribute (lagMember.m_lag_member_id , &attr);
3394
- if (status != SAI_STATUS_SUCCESS)
3395
- {
3396
- SWSS_LOG_ERROR (" Failed to %s distribution on LAG member %s" ,
3397
- enableDistribution ? " enable" : " disable" ,
3398
- lagMember.m_alias .c_str ());
3399
- return false ;
3400
- }
3401
-
3402
- return true ;
3403
- }
3404
-
3405
3343
void PortsOrch::generateQueueMap ()
3406
3344
{
3407
3345
if (m_isQueueMapGenerated)
0 commit comments