--- a/src/node/ipv4-address.cc Thu Sep 06 15:18:14 2007 +0100
+++ b/src/node/ipv4-address.cc Tue Sep 11 14:52:15 2007 +0100
@@ -99,6 +99,11 @@
{
m_mask = value;
}
+uint32_t
+Ipv4Mask::GetInverse (void) const
+{
+ return ~m_mask;
+}
void
Ipv4Mask::Print (std::ostream &os) const
@@ -162,6 +167,18 @@
return Ipv4Address (GetHostOrder () & mask.GetHostOrder ());
}
+Ipv4Address
+Ipv4Address::GetSubnetDirectedBroadcast (Ipv4Mask const &mask) const
+{
+ return Ipv4Address (GetHostOrder () | mask.GetInverse ());
+}
+
+bool
+Ipv4Address::IsSubnetDirectedBroadcast (Ipv4Mask const &mask) const
+{
+ return ( (GetHostOrder () | mask.GetInverse ()) == GetHostOrder () );
+}
+
bool
Ipv4Address::IsBroadcast (void) const
{