@@ -224,6 +224,7 @@ fn ip_properties() {
224
224
let global: u8 = 1 << 2 ;
225
225
let multicast: u8 = 1 << 3 ;
226
226
let doc: u8 = 1 << 4 ;
227
+ let benchmarking: u8 = 1 << 5 ;
227
228
228
229
if ( $mask & unspec) == unspec {
229
230
assert!( ip!( $s) . is_unspecified( ) ) ;
@@ -254,6 +255,12 @@ fn ip_properties() {
254
255
} else {
255
256
assert!( !ip!( $s) . is_documentation( ) ) ;
256
257
}
258
+
259
+ if ( $mask & benchmarking) == benchmarking {
260
+ assert!( ip!( $s) . is_benchmarking( ) ) ;
261
+ } else {
262
+ assert!( !ip!( $s) . is_benchmarking( ) ) ;
263
+ }
257
264
} } ;
258
265
}
259
266
@@ -262,6 +269,7 @@ fn ip_properties() {
262
269
let global: u8 = 1 << 2 ;
263
270
let multicast: u8 = 1 << 3 ;
264
271
let doc: u8 = 1 << 4 ;
272
+ let benchmarking: u8 = 1 << 5 ;
265
273
266
274
check ! ( "0.0.0.0" , unspec) ;
267
275
check ! ( "0.0.0.1" ) ;
@@ -280,9 +288,9 @@ fn ip_properties() {
280
288
check ! ( "239.255.255.255" , global | multicast) ;
281
289
check ! ( "255.255.255.255" ) ;
282
290
// make sure benchmarking addresses are not global
283
- check ! ( "198.18.0.0" ) ;
284
- check ! ( "198.18.54.2" ) ;
285
- check ! ( "198.19.255.255" ) ;
291
+ check ! ( "198.18.0.0" , benchmarking ) ;
292
+ check ! ( "198.18.54.2" , benchmarking ) ;
293
+ check ! ( "198.19.255.255" , benchmarking ) ;
286
294
// make sure addresses reserved for protocol assignment are not global
287
295
check ! ( "192.0.0.0" ) ;
288
296
check ! ( "192.0.0.255" ) ;
@@ -313,6 +321,7 @@ fn ip_properties() {
313
321
check ! ( "ff08::" , multicast) ;
314
322
check ! ( "ff0e::" , global | multicast) ;
315
323
check ! ( "2001:db8:85a3::8a2e:370:7334" , doc) ;
324
+ check ! ( "2001:2::ac32:23ff:21" , global | benchmarking) ;
316
325
check ! ( "102:304:506:708:90a:b0c:d0e:f10" , global) ;
317
326
}
318
327
@@ -467,21 +476,22 @@ fn ipv6_properties() {
467
476
assert_eq!( & ip!( $s) . octets( ) , octets) ;
468
477
assert_eq!( Ipv6Addr :: from( * octets) , ip!( $s) ) ;
469
478
470
- let unspecified: u16 = 1 << 0 ;
471
- let loopback: u16 = 1 << 1 ;
472
- let unique_local: u16 = 1 << 2 ;
473
- let global: u16 = 1 << 3 ;
474
- let unicast_link_local: u16 = 1 << 4 ;
475
- let unicast_global: u16 = 1 << 7 ;
476
- let documentation: u16 = 1 << 8 ;
477
- let multicast_interface_local: u16 = 1 << 9 ;
478
- let multicast_link_local: u16 = 1 << 10 ;
479
- let multicast_realm_local: u16 = 1 << 11 ;
480
- let multicast_admin_local: u16 = 1 << 12 ;
481
- let multicast_site_local: u16 = 1 << 13 ;
482
- let multicast_organization_local: u16 = 1 << 14 ;
483
- let multicast_global: u16 = 1 << 15 ;
484
- let multicast: u16 = multicast_interface_local
479
+ let unspecified: u32 = 1 << 0 ;
480
+ let loopback: u32 = 1 << 1 ;
481
+ let unique_local: u32 = 1 << 2 ;
482
+ let global: u32 = 1 << 3 ;
483
+ let unicast_link_local: u32 = 1 << 4 ;
484
+ let unicast_global: u32 = 1 << 7 ;
485
+ let documentation: u32 = 1 << 8 ;
486
+ let benchmarking: u32 = 1 << 16 ;
487
+ let multicast_interface_local: u32 = 1 << 9 ;
488
+ let multicast_link_local: u32 = 1 << 10 ;
489
+ let multicast_realm_local: u32 = 1 << 11 ;
490
+ let multicast_admin_local: u32 = 1 << 12 ;
491
+ let multicast_site_local: u32 = 1 << 13 ;
492
+ let multicast_organization_local: u32 = 1 << 14 ;
493
+ let multicast_global: u32 = 1 << 15 ;
494
+ let multicast: u32 = multicast_interface_local
485
495
| multicast_admin_local
486
496
| multicast_global
487
497
| multicast_link_local
@@ -524,6 +534,11 @@ fn ipv6_properties() {
524
534
} else {
525
535
assert!( !ip!( $s) . is_documentation( ) ) ;
526
536
}
537
+ if ( $mask & benchmarking) == benchmarking {
538
+ assert!( ip!( $s) . is_benchmarking( ) ) ;
539
+ } else {
540
+ assert!( !ip!( $s) . is_benchmarking( ) ) ;
541
+ }
527
542
if ( $mask & multicast) != 0 {
528
543
assert!( ip!( $s) . multicast_scope( ) . is_some( ) ) ;
529
544
assert!( ip!( $s) . is_multicast( ) ) ;
@@ -562,20 +577,21 @@ fn ipv6_properties() {
562
577
}
563
578
}
564
579
565
- let unspecified: u16 = 1 << 0 ;
566
- let loopback: u16 = 1 << 1 ;
567
- let unique_local: u16 = 1 << 2 ;
568
- let global: u16 = 1 << 3 ;
569
- let unicast_link_local: u16 = 1 << 4 ;
570
- let unicast_global: u16 = 1 << 7 ;
571
- let documentation: u16 = 1 << 8 ;
572
- let multicast_interface_local: u16 = 1 << 9 ;
573
- let multicast_link_local: u16 = 1 << 10 ;
574
- let multicast_realm_local: u16 = 1 << 11 ;
575
- let multicast_admin_local: u16 = 1 << 12 ;
576
- let multicast_site_local: u16 = 1 << 13 ;
577
- let multicast_organization_local: u16 = 1 << 14 ;
578
- let multicast_global: u16 = 1 << 15 ;
580
+ let unspecified: u32 = 1 << 0 ;
581
+ let loopback: u32 = 1 << 1 ;
582
+ let unique_local: u32 = 1 << 2 ;
583
+ let global: u32 = 1 << 3 ;
584
+ let unicast_link_local: u32 = 1 << 4 ;
585
+ let unicast_global: u32 = 1 << 7 ;
586
+ let documentation: u32 = 1 << 8 ;
587
+ let benchmarking: u32 = 1 << 16 ;
588
+ let multicast_interface_local: u32 = 1 << 9 ;
589
+ let multicast_link_local: u32 = 1 << 10 ;
590
+ let multicast_realm_local: u32 = 1 << 11 ;
591
+ let multicast_admin_local: u32 = 1 << 12 ;
592
+ let multicast_site_local: u32 = 1 << 13 ;
593
+ let multicast_organization_local: u32 = 1 << 14 ;
594
+ let multicast_global: u32 = 1 << 15 ;
579
595
580
596
check ! ( "::" , & [ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] , unspecified) ;
581
597
@@ -671,6 +687,12 @@ fn ipv6_properties() {
671
687
documentation
672
688
) ;
673
689
690
+ check ! (
691
+ "2001:2::ac32:23ff:21" ,
692
+ & [ 0x20 , 1 , 0 , 2 , 0 , 0 , 0 , 0 , 0 , 0 , 0xac , 0x32 , 0x23 , 0xff , 0 , 0x21 ] ,
693
+ global | unicast_global | benchmarking
694
+ ) ;
695
+
674
696
check ! (
675
697
"102:304:506:708:90a:b0c:d0e:f10" ,
676
698
& [ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 ] ,
@@ -874,6 +896,9 @@ fn ipv6_const() {
874
896
const IS_DOCUMENTATION : bool = IP_ADDRESS . is_documentation ( ) ;
875
897
assert ! ( !IS_DOCUMENTATION ) ;
876
898
899
+ const IS_BENCHMARKING : bool = IP_ADDRESS . is_benchmarking ( ) ;
900
+ assert ! ( !IS_BENCHMARKING ) ;
901
+
877
902
const IS_UNICAST_GLOBAL : bool = IP_ADDRESS . is_unicast_global ( ) ;
878
903
assert ! ( !IS_UNICAST_GLOBAL ) ;
879
904
0 commit comments