src/node/ipv4-address.cc
changeset 1742 cf76416ce75b
parent 1737 e72c130c3a59
parent 1318 89b78e2d521e
child 1747 abbefda4216a
--- 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
 {