@@ -2023,9 +2023,14 @@ mod tests {
2023
2023
check ! ( "224.0.0.0" , global|multicast) ;
2024
2024
check ! ( "239.255.255.255" , global|multicast) ;
2025
2025
check ! ( "255.255.255.255" ) ;
2026
+ // make sure benchmarking addresses are not global
2026
2027
check ! ( "198.18.0.0" ) ;
2027
2028
check ! ( "198.18.54.2" ) ;
2028
2029
check ! ( "198.19.255.255" ) ;
2030
+ // make sure addresses reserved for protocol assignment are not global
2031
+ check ! ( "192.0.0.0" ) ;
2032
+ check ! ( "192.0.0.255" ) ;
2033
+ check ! ( "192.0.0.100" ) ;
2029
2034
2030
2035
check ! ( "::" , unspec) ;
2031
2036
check ! ( "::1" , loopback) ;
@@ -2070,6 +2075,7 @@ mod tests {
2070
2075
let broadcast: u16 = 1 << 6 ;
2071
2076
let documentation: u16 = 1 << 7 ;
2072
2077
let benchmarking: u16 = 1 << 8 ;
2078
+ let ietf_protocol_assignment: u16 = 1 << 9 ;
2073
2079
2074
2080
if ( $mask & unspec) == unspec {
2075
2081
assert!( ip!( $s) . is_unspecified( ) ) ;
@@ -2124,6 +2130,12 @@ mod tests {
2124
2130
} else {
2125
2131
assert!( !ip!( $s) . is_benchmarking( ) ) ;
2126
2132
}
2133
+
2134
+ if ( $mask & ietf_protocol_assignment) == ietf_protocol_assignment {
2135
+ assert!( ip!( $s) . is_ietf_protocol_assignment( ) ) ;
2136
+ } else {
2137
+ assert!( !ip!( $s) . is_ietf_protocol_assignment( ) ) ;
2138
+ }
2127
2139
} }
2128
2140
}
2129
2141
@@ -2136,6 +2148,7 @@ mod tests {
2136
2148
let broadcast: u16 = 1 << 6 ;
2137
2149
let documentation: u16 = 1 << 7 ;
2138
2150
let benchmarking: u16 = 1 << 8 ;
2151
+ let ietf_protocol_assignment: u16 = 1 << 9 ;
2139
2152
2140
2153
check ! ( "0.0.0.0" , unspec) ;
2141
2154
check ! ( "0.0.0.1" ) ;
@@ -2156,6 +2169,9 @@ mod tests {
2156
2169
check ! ( "198.18.0.0" , benchmarking) ;
2157
2170
check ! ( "198.18.54.2" , benchmarking) ;
2158
2171
check ! ( "198.19.255.255" , benchmarking) ;
2172
+ check ! ( "192.0.0.0" , ietf_protocol_assignment) ;
2173
+ check ! ( "192.0.0.255" , ietf_protocol_assignment) ;
2174
+ check ! ( "192.0.0.100" , ietf_protocol_assignment) ;
2159
2175
}
2160
2176
2161
2177
#[ test]
0 commit comments