ipnetwork icon indicating copy to clipboard operation
ipnetwork copied to clipboard

is_supernet_of does not work properly

Open mbasunov opened this issue 2 years ago • 1 comments

Hi

use ipnetwork::Ipv4Network;
let net: Ipv4Network = "10.1.0.0/16".parse().unwrap();
let net2: Ipv4Network = "10.1.0.0/15".parse().unwrap();
println!("{:?} {} {}", net2, net.is_supernet_of(net2),
    net.is_supernet_of(Ipv4Network::new(net2.network(), net2.prefix()).unwrap()));

Output: Ipv4Network { addr: 10.1.0.0, prefix: 15 } true false

So, is_supernet_of accidentally thinks that /16 is a supernet of /15 if network address is the same.

PS: Prefix "X/Y" consists of network address X and bits Y. So, function prefix which return bits confuses any network engineer.

mbasunov avatar Apr 16 '22 11:04 mbasunov

Confirmed.

ctrlcctrlv avatar Jun 13 '23 18:06 ctrlcctrlv