24 #include "ns3/assert.h"
30 #define ASCII_DOT (0x2e)
31 #define ASCII_ZERO (0x30)
32 #define ASCII_SLASH (0x2f)
44 uint8_t numberOfDots = 0;
47 NS_ASSERT_MSG (*ptr !=
ASCII_DOT,
"Error, can not build an IPv4 address from an invalid string: " << address);
64 NS_ASSERT_MSG (*ptr !=
ASCII_DOT,
"Error, can not build an IPv4 address from an invalid string: " << address);
67 NS_ASSERT_MSG (*(ptr-1) !=
ASCII_DOT,
"Error, can not build an IPv4 address from an invalid string: " << address);
68 NS_ASSERT_MSG (numberOfDots == 3,
"Error, can not build an IPv4 address from an invalid string: " << address);
95 uint32_t plen =
static_cast<uint32_t
> (std::atoi (++mask));
99 m_mask = 0xffffffff << (32 - plen);
157 os << ((m_mask >> 24) & 0xff) <<
"."
158 << ((
m_mask >> 16) & 0xff) <<
"."
159 << ((
m_mask >> 8) & 0xff) <<
"."
160 << ((
m_mask >> 0) & 0xff);
202 : m_address (0x66666666)
249 NS_ASSERT_MSG (
false,
"Trying to get subnet-directed broadcast address with an all-ones netmask");
290 return (
m_address & 0xffffff00) == 0xe0000000;
322 os << ((m_address >> 24) & 0xff) <<
"."
Ipv4Mask()
Will initialize to a garbage value (0x66666666)
static Ipv4Address Deserialize(const uint8_t buf[4])
std::istream & operator>>(std::istream &is, Angles &a)
initialize a struct Angles from input
static Ipv4Mask GetOnes(void)
static Ipv4Address GetAny(void)
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
size_t operator()(Ipv4Address const &x) const
Returns the hash of the address.
bool IsMatch(Ipv4Address a, Ipv4Address b) const
a class to represent an Ipv4 address mask
uint32_t m_address
IPv4 address.
#define ATTRIBUTE_HELPER_CPP(type)
Define the attribute value, accessor and checkers for class type.
bool IsLocalMulticast(void) const
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
bool IsMulticast(void) const
Ipv4Address CombineMask(Ipv4Mask const &mask) const
Combine this address with a network mask.
#define NS_LOG_FUNCTION_NOARGS()
Output the name of the function.
Ipv4Address GetSubnetDirectedBroadcast(Ipv4Mask const &mask) const
Generate subnet-directed broadcast address corresponding to mask.
a polymophic address class
bool CheckCompatible(uint8_t type, uint8_t len) const
bool IsSubnetDirectedBroadcast(Ipv4Mask const &mask) const
Generate subnet-directed broadcast address corresponding to mask.
uint32_t Get(void) const
Get the host-order 32-bit IP address.
static Ipv4Mask GetZero(void)
bool IsBroadcast(void) const
void Serialize(uint8_t buf[4]) const
Serialize this address to a 4-byte buffer.
void Print(std::ostream &os) const
Print this address to the given output stream.
static bool IsMatchingType(const Address &address)
static Ipv4Address GetBroadcast(void)
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output
bool operator!=(Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > a, Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > b)
Inequality test.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void Set(uint32_t mask)
input mask is in host order.
static Ipv4Address GetZero(void)
static Ipv4Address GetLoopback(void)
void Print(std::ostream &os) const
Print this mask to the given output stream.
static Ipv4Mask GetLoopback(void)
Address ConvertTo(void) const
Convert to an Address type.
static uint32_t AsciiToIpv4Host(char const *address)
Converts a string representing an IP address into the address.
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
void Set(uint32_t address)
input address is in host order.
Ipv4 addresses are stored in host order in this class.
uint32_t CopyTo(uint8_t buffer[MAX_SIZE]) const
Copy the address bytes into a buffer.
bool IsEqual(Ipv4Mask other) const
bool operator==(const EventId &a, const EventId &b)
static uint8_t GetType(void)
Get the underlying address type (automatically assigned).
uint32_t Get(void) const
Get the host-order 32-bit IP mask.
static Ipv4Address ConvertFrom(const Address &address)
uint32_t GetInverse(void) const
Return the inverse mask in host order.
static uint8_t Register(void)
Allocate a new type id for a new type of address.
uint16_t GetPrefixLength(void) const