diff --git a/src/node/eui48-address.cc b/src/node/eui48-address.cc index d83137e02..8196d7ba3 100644 --- a/src/node/eui48-address.cc +++ b/src/node/eui48-address.cc @@ -71,6 +71,11 @@ Eui48Address::CopyTo (uint8_t buffer[6]) const memcpy (buffer, m_address, 6); } +bool +Eui48Address::IsMatchingType (const Address &address) +{ + return address.CheckCompatible (GetType (), 6); +} Address Eui48Address::ConvertTo (void) const { diff --git a/src/node/eui48-address.h b/src/node/eui48-address.h index ad045f078..1d6c37da1 100644 --- a/src/node/eui48-address.h +++ b/src/node/eui48-address.h @@ -42,6 +42,10 @@ public: * Convert an instance of this class to a polymorphic Address instance. */ Address ConvertTo (void) const; + /** + * \returns true if the address matches, false otherwise. + */ + static bool IsMatchingType (const Address &address); /** * \param address a polymorphic address * diff --git a/src/node/ipv4-address.cc b/src/node/ipv4-address.cc index 67028125d..aae53c65f 100644 --- a/src/node/ipv4-address.cc +++ b/src/node/ipv4-address.cc @@ -206,6 +206,11 @@ Ipv4Address::Print (std::ostream &os) const << ((m_address >> 0) & 0xff); } +bool +Ipv4Address::IsMatchingType (const Address &address) +{ + return address.CheckCompatible (GetType (), 4); +} Address Ipv4Address::ConvertTo (void) const { diff --git a/src/node/ipv4-address.h b/src/node/ipv4-address.h index 9911d24c4..8e8976a18 100644 --- a/src/node/ipv4-address.h +++ b/src/node/ipv4-address.h @@ -104,6 +104,7 @@ public: */ Ipv4Address CombineMask (Ipv4Mask const &mask) const; + static bool IsMatchingType (const Address &address); Address ConvertTo (void) const; static Ipv4Address ConvertFrom (const Address &address);