@@ -4503,105 +4503,105 @@ async fn test_ipv6_multicast_scope_validation() {
4503
4503
. ok ( ) ;
4504
4504
}
4505
4505
4506
- #[ tokio:: test]
4507
- #[ ignore]
4508
- async fn test_multicast_group_id_recycling ( ) {
4509
- let switch = & * get_switch ( ) . await ;
4510
-
4511
- // Use admin-scoped IPv6 addresses that get group IDs assigned
4512
- let group1_ip = IpAddr :: V6 ( Ipv6Addr :: new ( 0xff05 , 0 , 0 , 0 , 0 , 0 , 0 , 10 ) ) ;
4513
- let group2_ip = IpAddr :: V6 ( Ipv6Addr :: new ( 0xff05 , 0 , 0 , 0 , 0 , 0 , 0 , 11 ) ) ;
4514
- let group3_ip = IpAddr :: V6 ( Ipv6Addr :: new ( 0xff05 , 0 , 0 , 0 , 0 , 0 , 0 , 12 ) ) ;
4515
-
4516
- // Create first group and capture its group IDs
4517
- let group1 = create_test_multicast_group (
4518
- switch,
4519
- group1_ip,
4520
- Some ( "test_recycling_1" ) ,
4521
- & [ ( PhysPort ( 11 ) , types:: Direction :: External ) ] ,
4522
- None ,
4523
- false ,
4524
- None ,
4525
- )
4526
- . await ;
4527
-
4528
- let group1_external_id = group1. external_group_id ;
4529
- assert ! ( group1_external_id. is_some( ) ) ;
4530
-
4531
- // Create second group and capture its group IDs
4532
- let group2 = create_test_multicast_group (
4533
- switch,
4534
- group2_ip,
4535
- Some ( "test_recycling_2" ) ,
4536
- & [ ( PhysPort ( 12 ) , types:: Direction :: External ) ] ,
4537
- None ,
4538
- false ,
4539
- None ,
4540
- )
4541
- . await ;
4542
-
4543
- let group2_external_id = group2. external_group_id ;
4544
- assert ! ( group2_external_id. is_some( ) ) ;
4545
- assert_ne ! ( group1_external_id, group2_external_id) ;
4546
-
4547
- // Delete the first group
4548
- switch
4549
- . client
4550
- . multicast_group_delete ( & group1_ip)
4551
- . await
4552
- . expect ( "Should be able to delete first group" ) ;
4553
-
4554
- // Create third group - should reuse the first group's ID
4555
- let group3 = create_test_multicast_group (
4556
- switch,
4557
- group3_ip,
4558
- Some ( "test_recycling_3" ) ,
4559
- & [ ( PhysPort ( 13 ) , types:: Direction :: External ) ] ,
4560
- None ,
4561
- false ,
4562
- None ,
4563
- )
4564
- . await ;
4565
-
4566
- let group3_external_id = group3. external_group_id ;
4567
- assert ! ( group3_external_id. is_some( ) ) ;
4568
-
4569
- // Verify that ID recycling is working - group3 should get an ID that was previously used
4570
- // The exact ID depends on allocation strategy, but it should be different from group2
4571
- assert_ne ! (
4572
- group2_external_id, group3_external_id,
4573
- "Third group should get a different ID than the active second group"
4574
- ) ;
4575
-
4576
- // Create a fourth group after deleting group2, it should reuse group2's ID
4577
- switch
4578
- . client
4579
- . multicast_group_delete ( & group2_ip)
4580
- . await
4581
- . expect ( "Should be able to delete second group" ) ;
4582
-
4583
- let group4_ip = IpAddr :: V6 ( Ipv6Addr :: new ( 0xff05 , 0 , 0 , 0 , 0 , 0 , 0 , 13 ) ) ;
4584
- let group4 = create_test_multicast_group (
4585
- switch,
4586
- group4_ip,
4587
- Some ( "test_recycling_4" ) ,
4588
- & [ ( PhysPort ( 14 ) , types:: Direction :: External ) ] ,
4589
- None ,
4590
- false ,
4591
- None ,
4592
- )
4593
- . await ;
4594
-
4595
- let group4_external_id = group4. external_group_id ;
4596
- assert ! ( group4_external_id. is_some( ) ) ;
4597
-
4598
- // Group4 should reuse group2's recently freed ID due to stack-like allocation
4599
- assert_eq ! (
4600
- group2_external_id, group4_external_id,
4601
- "Fourth group should reuse second group's recycled ID"
4602
- ) ;
4603
-
4604
- // Cleanup
4605
- cleanup_test_group ( switch, group3_ip) . await ;
4606
- cleanup_test_group ( switch, group4_ip) . await ;
4607
- }
4506
+ // #[tokio::test]
4507
+ // #[ignore]
4508
+ // async fn test_multicast_group_id_recycling() {
4509
+ // let switch = &*get_switch().await;
4510
+
4511
+ // // Use admin-scoped IPv6 addresses that get group IDs assigned
4512
+ // let group1_ip = IpAddr::V6(Ipv6Addr::new(0xff05, 0, 0, 0, 0, 0, 0, 10));
4513
+ // let group2_ip = IpAddr::V6(Ipv6Addr::new(0xff05, 0, 0, 0, 0, 0, 0, 11));
4514
+ // let group3_ip = IpAddr::V6(Ipv6Addr::new(0xff05, 0, 0, 0, 0, 0, 0, 12));
4515
+
4516
+ // // Create first group and capture its group IDs
4517
+ // let group1 = create_test_multicast_group(
4518
+ // switch,
4519
+ // group1_ip,
4520
+ // Some("test_recycling_1"),
4521
+ // &[(PhysPort(11), types::Direction::External)],
4522
+ // None,
4523
+ // false,
4524
+ // None,
4525
+ // )
4526
+ // .await;
4527
+
4528
+ // let group1_external_id = group1.external_group_id;
4529
+ // assert!(group1_external_id.is_some());
4530
+
4531
+ // // Create second group and capture its group IDs
4532
+ // let group2 = create_test_multicast_group(
4533
+ // switch,
4534
+ // group2_ip,
4535
+ // Some("test_recycling_2"),
4536
+ // &[(PhysPort(12), types::Direction::External)],
4537
+ // None,
4538
+ // false,
4539
+ // None,
4540
+ // )
4541
+ // .await;
4542
+
4543
+ // let group2_external_id = group2.external_group_id;
4544
+ // assert!(group2_external_id.is_some());
4545
+ // assert_ne!(group1_external_id, group2_external_id);
4546
+
4547
+ // // Delete the first group
4548
+ // switch
4549
+ // .client
4550
+ // .multicast_group_delete(&group1_ip)
4551
+ // .await
4552
+ // .expect("Should be able to delete first group");
4553
+
4554
+ // // Create third group - should reuse the first group's ID
4555
+ // let group3 = create_test_multicast_group(
4556
+ // switch,
4557
+ // group3_ip,
4558
+ // Some("test_recycling_3"),
4559
+ // &[(PhysPort(13), types::Direction::External)],
4560
+ // None,
4561
+ // false,
4562
+ // None,
4563
+ // )
4564
+ // .await;
4565
+
4566
+ // let group3_external_id = group3.external_group_id;
4567
+ // assert!(group3_external_id.is_some());
4568
+
4569
+ // // Verify that ID recycling is working - group3 should get an ID that was previously used
4570
+ // // The exact ID depends on allocation strategy, but it should be different from group2
4571
+ // assert_ne!(
4572
+ // group2_external_id, group3_external_id,
4573
+ // "Third group should get a different ID than the active second group"
4574
+ // );
4575
+
4576
+ // // Create a fourth group after deleting group2, it should reuse group2's ID
4577
+ // switch
4578
+ // .client
4579
+ // .multicast_group_delete(&group2_ip)
4580
+ // .await
4581
+ // .expect("Should be able to delete second group");
4582
+
4583
+ // let group4_ip = IpAddr::V6(Ipv6Addr::new(0xff05, 0, 0, 0, 0, 0, 0, 13));
4584
+ // let group4 = create_test_multicast_group(
4585
+ // switch,
4586
+ // group4_ip,
4587
+ // Some("test_recycling_4"),
4588
+ // &[(PhysPort(14), types::Direction::External)],
4589
+ // None,
4590
+ // false,
4591
+ // None,
4592
+ // )
4593
+ // .await;
4594
+
4595
+ // let group4_external_id = group4.external_group_id;
4596
+ // assert!(group4_external_id.is_some());
4597
+
4598
+ // // Group4 should reuse group2's recently freed ID due to stack-like allocation
4599
+ // assert_eq!(
4600
+ // group2_external_id, group4_external_id,
4601
+ // "Fourth group should reuse second group's recycled ID"
4602
+ // );
4603
+
4604
+ // // Cleanup
4605
+ // cleanup_test_group(switch, group3_ip).await;
4606
+ // cleanup_test_group(switch, group4_ip).await;
4607
+ // }
0 commit comments