Ipv4 addresses are stored in host order in this class. More...
#include "ipv4-address.h"
Public Member Functions | |
Ipv4Address () | |
Ipv4Address (const char *address) | |
Constructs an Ipv4Address by parsing a the input C-string. | |
Ipv4Address (uint32_t address) | |
input address is in host order. | |
Ipv4Address | CombineMask (const Ipv4Mask &mask) const |
Combine this address with a network mask. | |
Address | ConvertTo () const |
Convert to an Address type. | |
uint32_t | Get () const |
Get the host-order 32-bit IP address. | |
Ipv4Address | GetSubnetDirectedBroadcast (const Ipv4Mask &mask) const |
Generate subnet-directed broadcast address corresponding to mask. | |
bool | IsAny () const |
bool | IsBroadcast () const |
bool | IsInitialized () const |
bool | IsLocalhost () const |
bool | IsLocalMulticast () const |
bool | IsMulticast () const |
bool | IsSubnetDirectedBroadcast (const Ipv4Mask &mask) const |
Generate subnet-directed broadcast address corresponding to mask. | |
operator Address () const | |
Convert an instance of this class to a polymorphic Address instance. | |
void | Print (std::ostream &os) const |
Print this address to the given output stream. | |
void | Serialize (uint8_t buf[4]) const |
Serialize this address to a 4-byte buffer. | |
void | Set (const char *address) |
Sets an Ipv4Address by parsing a the input C-string. | |
void | Set (uint32_t address) |
input address is in host order. | |
Static Public Member Functions | |
static Ipv4Address | ConvertFrom (const Address &address) |
static Ipv4Address | Deserialize (const uint8_t buf[4]) |
static Ipv4Address | GetAny () |
static Ipv4Address | GetBroadcast () |
static Ipv4Address | GetLoopback () |
static Ipv4Address | GetZero () |
static bool | IsMatchingType (const Address &address) |
Static Private Member Functions | |
static uint8_t | GetType () |
Get the underlying address type (automatically assigned). | |
Private Attributes | |
uint32_t | m_address |
IPv4 address. | |
bool | m_initialized |
IPv4 address has been explicitly initialized to a valid value. | |
Friends | |
bool | operator!= (const Ipv4Address &a, const Ipv4Address &b) |
Not equal to operator. | |
bool | operator< (const Ipv4Address &a, const Ipv4Address &b) |
Less than to operator. | |
bool | operator== (const Ipv4Address &a, const Ipv4Address &b) |
Equal to operator. | |
Ipv4 addresses are stored in host order in this class.
Definition at line 41 of file ipv4-address.h.
ns3::Ipv4Address::Ipv4Address | ( | ) |
Definition at line 156 of file ipv4-address.cc.
References NS_LOG_FUNCTION.
Referenced by CombineMask(), and GetSubnetDirectedBroadcast().
|
explicit |
input address is in host order.
address | The host order 32-bit address |
Definition at line 163 of file ipv4-address.cc.
References m_address, m_initialized, and NS_LOG_FUNCTION.
ns3::Ipv4Address::Ipv4Address | ( | const char * | address | ) |
Constructs an Ipv4Address by parsing a the input C-string.
Input address is in format: hhh.xxx.xxx.lll
where h
is the high byte and l
the low byte
address | C-string containing the address as described above |
Definition at line 170 of file ipv4-address.cc.
References m_address, m_initialized, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
Ipv4Address ns3::Ipv4Address::CombineMask | ( | const Ipv4Mask & | mask | ) | const |
Combine this address with a network mask.
This method returns an IPv4 address that is this address combined (bitwise and) with a network mask, yielding an IPv4 network address.
mask | a network mask |
Definition at line 216 of file ipv4-address.cc.
References Ipv4Address(), Get(), ns3::Ipv4Mask::Get(), and NS_LOG_FUNCTION.
Referenced by ns3::IpcsClassifierRecord::CheckMatchDstAddr(), ns3::IpcsClassifierRecord::CheckMatchSrcAddr(), ns3::Rip::DoSendRouteUpdate(), ns3::Rip::HandleRequests(), ns3::Rip::HandleResponses(), ns3::Ipv4InterfaceAddress::IsInSameSubnet(), ns3::Ipv4AddressGeneratorImpl::IsNetworkAllocated(), ns3::Ipv4L3Protocol::LocalDeliver(), ns3::Ipv4EndPointDemux::Lookup(), ns3::GlobalRouter::ProcessBridgedBroadcastLink(), ns3::GlobalRouter::ProcessSingleBroadcastLink(), ns3::Ipv4L3Protocol::SelectSourceAddress(), ns3::Ipv4L3Protocol::Send(), ns3::Ipv4L3Protocol::SourceAddressSelection(), ns3::GlobalRouteManagerImpl::SPFAddASExternal(), ns3::GlobalRouteManagerImpl::SPFIntraAddStub(), and ns3::GlobalRouteManagerImpl::SPFIntraAddTransit().
|
static |
address | a polymorphic address |
This function performs a type check and asserts if the type of the input address is not compatible with an Ipv4Address.
Definition at line 352 of file ipv4-address.cc.
References Deserialize(), GetType(), NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by PingTestCase::DoRun(), ns3::UdpSocketImpl::DoSend(), ns3::UdpSocketImpl::GetPeerName(), ns3::ThreeGppHttpClient::OpenConnection(), ns3::PbbAddressBlockIpv4::PrintAddress(), ns3::PbbMessageIpv4::PrintOriginatorAddress(), ns3::Ping::PrintReport(), ns3::UdpEchoClient::Send(), ns3::Ping::Send(), ns3::TcpL4Protocol::SendPacket(), ns3::UdpTraceClient::SendPacket(), ns3::PbbAddressBlockIpv4::SerializeAddress(), ns3::PbbMessageIpv4::SerializeOriginatorAddress(), ns3::ThreeGppHttpServer::StartApplication(), ns3::UdpClient::StartApplication(), ns3::UdpEchoClient::StartApplication(), ns3::UdpTraceClient::StartApplication(), and ns3::Ping::StartApplication().
Address ns3::Ipv4Address::ConvertTo | ( | ) | const |
Convert to an Address type.
Definition at line 343 of file ipv4-address.cc.
References GetType(), NS_LOG_FUNCTION, and Serialize().
|
static |
buf | buffer to read address from |
The input address is expected to be in network byte order format.
Definition at line 305 of file ipv4-address.cc.
References NS_LOG_FUNCTION.
Referenced by ns3::InetSocketAddress::ConvertFrom(), ConvertFrom(), ns3::dsr::DsrOptionRreqHeader::Deserialize(), ns3::dsr::DsrOptionRrepHeader::Deserialize(), ns3::dsr::DsrOptionSRHeader::Deserialize(), ns3::Ipv4FlowProbeTag::Deserialize(), ns3::Ipv4PacketInfoTag::Deserialize(), ns3::PbbAddressBlockIpv4::DeserializeAddress(), ns3::PbbMessageIpv4::DeserializeOriginatorAddress(), and ns3::Ipv6Address::GetIpv4MappedAddress().
uint32_t ns3::Ipv4Address::Get | ( | ) | const |
Get the host-order 32-bit IP address.
Definition at line 186 of file ipv4-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::Ipv4InterfaceAddress::Ipv4InterfaceAddress(), ns3::DhcpServer::AddStaticDhcpEntry(), ns3::Ipv4L3Protocol::BuildHeader(), ns3::EpcTftClassifier::Classify(), CombineMask(), ns3::Ipv4L3Protocol::DecreaseIdentification(), SwitchFlowTableTestCase::DoRun(), GetSubnetDirectedBroadcast(), ns3::Ipv4AddressGeneratorImpl::Init(), ns3::Ipv4AddressGeneratorImpl::InitAddress(), ns3::DhcpHelper::InstallDhcpServer(), ns3::DhcpHelper::InstallFixedAddress(), ns3::Ipv4Mask::IsMatch(), IsSubnetDirectedBroadcast(), ns3::DhcpServer::NetHandler(), ns3::Ipv4L3Protocol::ProcessFragment(), ns3::DhcpClient::Request(), ns3::Ipv4Header::Serialize(), ns3::RipRte::Serialize(), ns3::olsr::MessageHeader::Serialize(), ns3::GtpcIes::SerializeFteid(), ns3::Ipv4AddressHelper::SetBase(), ns3::GlobalRouteManagerImpl::SPFIntraAddStub(), ns3::DhcpServer::StartApplication(), and ns3::WriteTo().
|
static |
Definition at line 378 of file ipv4-address.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::DhcpClient::DhcpClient(), ns3::Ipv4RawSocketImpl::Ipv4RawSocketImpl(), ns3::NoBackhaulEpcHelper::NoBackhaulEpcHelper(), Tunnel::Tunnel(), ns3::Ipv4EndPointDemux::Allocate(), ns3::Ipv4RawSocketImpl::Bind(), ns3::TcpSocketBase::Bind(), ns3::UdpSocketImpl::Bind(), BuildAppsTest(), ChainRegressionTest::CreateDevices(), Bug772ChainTest::CreateDevices(), ns3::olsr::Bug780Test::CreateNodes(), ns3::olsr::RoutingProtocol::DoInitialize(), BulkSendBasicTestCase::DoRun(), BulkSendSeqTsSizeTestCase::DoRun(), BriteTopologyFunctionTestCase::DoRun(), IcmpEchoReplyTestCase::DoRun(), IcmpTimeExceedTestCase::DoRun(), Ipv4DeduplicationTest::DoRun(), Ipv4DeduplicationPerformanceTest::DoRun(), Ipv4DynamicGlobalRoutingTestCase::DoRun(), Ipv4PacketInfoTagTest::DoRun(), DualStackTestCase::DoRun(), TcpEndPointBug2211Test::DoRun(), ns3::TcpGeneralTest::DoRun(), UdpSocketLoopbackTest::DoRun(), EpcS1uDlTestCase::DoRun(), EpcS1uUlTestCase::DoRun(), LenaCqaFfMacSchedulerTestCase1::DoRun(), LenaCqaFfMacSchedulerTestCase2::DoRun(), ns3::LenaDeactivateBearerTestCase::DoRun(), LenaFdTbfqFfMacSchedulerTestCase1::DoRun(), LenaFdTbfqFfMacSchedulerTestCase2::DoRun(), LteDistributedFfrAreaTestCase::DoRun(), LenaPssFfMacSchedulerTestCase1::DoRun(), LenaPssFfMacSchedulerTestCase2::DoRun(), LteRadioLinkFailureTestCase::DoRun(), LenaTdTbfqFfMacSchedulerTestCase1::DoRun(), LenaTdTbfqFfMacSchedulerTestCase2::DoRun(), LteEpcE2eDataTestCase::DoRun(), LteX2HandoverMeasuresTestCase::DoRun(), LteX2HandoverTestCase::DoRun(), CsmaBridgeTestCase::DoRun(), CsmaBroadcastTestCase::DoRun(), CsmaMulticastTestCase::DoRun(), CsmaOneSubnetTestCase::DoRun(), CsmaStarTestCase::DoRun(), Ns3TcpLossTestCase::DoRun(), Ns3TcpNoDelayTestCase::DoRun(), Ns3TcpSocketTestCaseP2P::DoRun(), Ns3TcpSocketTestCaseCsma::DoRun(), Ns3TcpStateTestCase::DoRun(), WifiAcMappingTest::DoRun(), WifiMsduAggregatorThroughputTest::DoRun(), ns3::Rip::DoSendRouteUpdate(), ns3::UdpSocketImpl::DoSendTo(), experiment(), ns3::Ipv4RawSocketImpl::ForwardUp(), ns3::Ipv4RawSocketImpl::GetPeerName(), ns3::Rip::HandleRequests(), HwmpProactiveRegressionTest::InstallApplications(), HwmpReactiveRegressionTest::InstallApplications(), HwmpSimplestRegressionTest::InstallApplications(), HwmpDoRfRegressionTest::InstallApplications(), FlameRegressionTest::InstallApplications(), InstallPacketSink(), ns3::Ipv4L3Protocol::IpMulticastForward(), ns3::Ipv4EndPointDemux::Lookup(), ns3::dsdv::RoutingProtocol::NotifyAddAddress(), ns3::dsdv::RoutingProtocol::NotifyInterfaceUp(), ns3::dsdv::RoutingProtocol::NotifyRemoveAddress(), NeighborCacheExample::Run(), Experiment::Run(), ns3::Ipv4L3Protocol::Send(), ns3::Rip::SendRouteRequest(), ns3::Ipv4RawSocketImpl::SendTo(), TcpTestCase::SetupDefaultSim(), ns3::Ipv4EndPointDemux::SimpleLookup(), Receiver::StartApplication(), ns3::UdpEchoServer::StartApplication(), ns3::UdpServer::StartApplication(), ns3::DhcpClient::StartApplication(), ns3::DhcpServer::StartApplication(), ns3::V4TraceRoute::StartApplication(), and Ipv4FragmentationTest::StartServer().
|
static |
Definition at line 386 of file ipv4-address.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by PingTestSuite::PingTestSuite(), IsSubnetDirectedBroadcast(), ns3::ArpL3Protocol::SendArpRequest(), Ipv4FragmentationTest::SendClient(), and ns3::aodv::RoutingProtocol::SendRerrMessage().
|
static |
Definition at line 394 of file ipv4-address.cc.
References NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::Ipv4InterfaceAddress::Ipv4InterfaceAddress(), ns3::aodv::LoopbackTestCase::DoRun(), Ipv4L3ProtocolTestCase::DoRun(), TcpEndPointBug2211Test::DoRun(), TcpSynConnectionFailedTest::DoRun(), ns3::Ipv4Interface::RemoveAddress(), ns3::Ipv4L3Protocol::RemoveAddress(), ns3::aodv::LoopbackTestCase::SendData(), ns3::aodv::RoutingProtocol::SetIpv4(), ns3::dsdv::RoutingProtocol::SetIpv4(), and ns3::Ipv4L3Protocol::SetupLoopback().
Ipv4Address ns3::Ipv4Address::GetSubnetDirectedBroadcast | ( | const Ipv4Mask & | mask | ) | const |
Generate subnet-directed broadcast address corresponding to mask.
The subnet-directed broadcast address has the host bits set to all ones. If this method is called with a mask of 255.255.255.255, (i.e., the address is a /32 address), the program will assert, since there is no subnet associated with a /32 address.
mask | a network mask |
Definition at line 223 of file ipv4-address.cc.
References Ipv4Address(), Get(), ns3::Ipv4Mask::GetInverse(), ns3::Ipv4Mask::GetOnes(), NS_ASSERT_MSG, and NS_LOG_FUNCTION.
Referenced by ns3::Ipv4FlowProbe::DropLogger(), and ns3::olsr::RoutingProtocol::SendPacket().
|
staticprivate |
Get the underlying address type (automatically assigned).
Definition at line 362 of file ipv4-address.cc.
References NS_LOG_FUNCTION_NOARGS, and ns3::Address::Register().
Referenced by ConvertFrom(), ConvertTo(), and IsMatchingType().
|
static |
Definition at line 370 of file ipv4-address.cc.
References NS_LOG_FUNCTION_NOARGS, and zero.
Referenced by ns3::TapFdNetDeviceHelper::TapFdNetDeviceHelper(), ns3::Ipv4RoutingTableEntry::CreateDefaultRoute(), ns3::TapFdNetDeviceHelper::CreateFileDescriptor(), ns3::Ipv4FlowClassifier::FindFlow(), ns3::TcpSocketBase::GetSockName(), ns3::UdpSocketImpl::GetSockName(), ns3::Ipv4RoutingTableEntry::IsDefault(), ns3::Ipv4RoutingTableEntry::IsGateway(), ns3::Rip::Lookup(), ns3::Ipv4StaticRouting::LookupStatic(), ns3::TcpSocketBase::RecvFrom(), and ns3::GlobalRouteManagerImpl::SPFNexthopCalculation().
bool ns3::Ipv4Address::IsAny | ( | ) | const |
Definition at line 255 of file ipv4-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::Rip::Lookup(), ns3::Ipv4L3Protocol::Send(), and ns3::Ipv4RawSocketImpl::SendTo().
bool ns3::Ipv4Address::IsBroadcast | ( | ) | const |
Definition at line 269 of file ipv4-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::TapBridge::CreateTap(), ns3::UdpSocketImpl::DoSendTo(), ns3::Ipv4L3Protocol::IpForward(), ns3::Ipv4L3Protocol::IsUnicast(), ns3::Ipv4L3Protocol::LocalDeliver(), ns3::dsr::DsrRouteCache::RebuildBestRouteTable(), ns3::dsr::DsrRouting::Receive(), ns3::Icmpv4L4Protocol::Receive(), ns3::aodv::RoutingProtocol::RouteInput(), ns3::dsdv::RoutingProtocol::RouteInput(), ns3::Rip::RouteInput(), ns3::Ipv4Interface::Send(), ns3::Ipv4L3Protocol::Send(), and ns3::Ping::StartApplication().
bool ns3::Ipv4Address::IsInitialized | ( | ) | const |
Definition at line 248 of file ipv4-address.cc.
References m_initialized, and NS_LOG_FUNCTION.
bool ns3::Ipv4Address::IsLocalhost | ( | ) | const |
Definition at line 262 of file ipv4-address.cc.
References m_address, and NS_LOG_FUNCTION.
bool ns3::Ipv4Address::IsLocalMulticast | ( | ) | const |
Definition at line 287 of file ipv4-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::Rip::Lookup(), ns3::Ipv4StaticRouting::LookupStatic(), and ns3::Ipv4L3Protocol::Send().
|
static |
address | an address to compare type with |
Definition at line 331 of file ipv4-address.cc.
References GetType(), and NS_LOG_FUNCTION.
Referenced by ns3::TcpHeader::CalculateHeaderChecksum(), ns3::UdpHeader::CalculateHeaderChecksum(), ns3::UdpSocketImpl::DoSend(), ns3::UdpSocketImpl::GetPeerName(), ns3::ThreeGppHttpClient::OpenConnection(), ns3::Ping::PrintReport(), ns3::UdpEchoClient::Send(), ns3::TcpL4Protocol::SendPacket(), ns3::UdpTraceClient::SendPacket(), ns3::ThreeGppHttpServer::StartApplication(), ns3::UdpClient::StartApplication(), ns3::UdpEchoClient::StartApplication(), ns3::UdpTraceClient::StartApplication(), and ns3::Ping::StartApplication().
bool ns3::Ipv4Address::IsMulticast | ( | ) | const |
Definition at line 276 of file ipv4-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::dsr::DsrOptionRerr::DoSendError(), ns3::UdpSocketImpl::DoSendTo(), ns3::Ipv4L3Protocol::IpForward(), ns3::Ipv4L3Protocol::IsUnicast(), ns3::Ipv4L3Protocol::LocalDeliver(), ns3::dsr::DsrOptionSR::Process(), ns3::Ipv4L3Protocol::Receive(), ns3::dsr::DsrRouting::Receive(), ns3::aodv::RoutingProtocol::RouteInput(), ns3::dsdv::RoutingProtocol::RouteInput(), ns3::Ipv4ListRouting::RouteInput(), ns3::Ipv4StaticRouting::RouteInput(), ns3::Rip::RouteInput(), ns3::Ipv4GlobalRouting::RouteOutput(), ns3::Ipv4StaticRouting::RouteOutput(), ns3::Rip::RouteOutput(), ns3::Ipv4Interface::Send(), ns3::Ipv4L3Protocol::Send(), and ns3::Ping::StartApplication().
bool ns3::Ipv4Address::IsSubnetDirectedBroadcast | ( | const Ipv4Mask & | mask | ) | const |
Generate subnet-directed broadcast address corresponding to mask.
The subnet-directed broadcast address has the host bits set to all ones. If this method is called with a mask of 255.255.255.255, (i.e., the address is a /32 address), the program will assert, since there is no subnet associated with a /32 address.
mask | a network mask |
Definition at line 235 of file ipv4-address.cc.
References Get(), ns3::Ipv4Mask::Get(), GetBroadcast(), ns3::Ipv4Mask::GetOnes(), and NS_LOG_FUNCTION.
Referenced by ns3::Ipv4L3Protocol::IsUnicast(), ns3::Ipv4L3Protocol::LocalDeliver(), ns3::Ipv4Interface::Send(), and ns3::Ipv4L3Protocol::Send().
ns3::Ipv4Address::operator Address | ( | ) | const |
Convert an instance of this class to a polymorphic Address instance.
Definition at line 337 of file ipv4-address.cc.
void ns3::Ipv4Address::Print | ( | std::ostream & | os | ) | const |
Print this address to the given output stream.
The print format is in the typical "192.168.1.1"
os | The output stream to which this Ipv4Address is printed |
Definition at line 323 of file ipv4-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::PbbAddressBlockIpv4::PrintAddress(), and ns3::PbbMessageIpv4::PrintOriginatorAddress().
void ns3::Ipv4Address::Serialize | ( | uint8_t | buf[4] | ) | const |
Serialize this address to a 4-byte buffer.
buf | output buffer to which this address gets overwritten with this Ipv4Address |
Definition at line 295 of file ipv4-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::InetSocketAddress::ConvertTo(), ConvertTo(), ns3::Mac48Address::GetMulticast(), ns3::ArpQueueDiscItem::Hash(), ns3::Ipv4QueueDiscItem::Hash(), ns3::Ipv6Address::MakeIpv4MappedAddress(), ns3::Ipv4FlowProbeTag::Serialize(), ns3::Ipv4PacketInfoTag::Serialize(), ns3::PbbAddressBlockIpv4::SerializeAddress(), and ns3::PbbMessageIpv4::SerializeOriginatorAddress().
void ns3::Ipv4Address::Set | ( | const char * | address | ) |
Sets an Ipv4Address by parsing a the input C-string.
Input address is in format: hhh.xxx.xxx.lll
where h
is the high byte and l
the low byte
address | C-string containing the address as described above |
Definition at line 201 of file ipv4-address.cc.
References m_address, m_initialized, NS_LOG_FUNCTION, and NS_LOG_LOGIC.
void ns3::Ipv4Address::Set | ( | uint32_t | address | ) |
input address is in host order.
address | The host order 32-bit address |
Definition at line 193 of file ipv4-address.cc.
References m_address, m_initialized, and NS_LOG_FUNCTION.
Referenced by EpcTftClassifierTestSuite::EpcTftClassifierTestSuite(), ns3::GlobalRouter::GlobalRouter(), ns3::Ipv4Header::Deserialize(), ns3::RipRte::Deserialize(), ns3::GtpcIes::DeserializeFteid(), ns3::GlobalRouter::ProcessBridgedBroadcastLink(), ns3::GlobalRouter::ProcessSingleBroadcastLink(), and ns3::ReadFrom().
|
friend |
Not equal to operator.
a | the first operand. |
b | the first operand. |
Definition at line 384 of file ipv4-address.h.
|
friend |
Less than to operator.
a | the first operand. |
b | the first operand. |
Definition at line 389 of file ipv4-address.h.
|
friend |
Equal to operator.
a | the first operand. |
b | the first operand. |
Definition at line 378 of file ipv4-address.h.
|
private |
IPv4 address.
Definition at line 214 of file ipv4-address.h.
Referenced by Ipv4Address(), Get(), IsAny(), IsBroadcast(), IsLocalhost(), IsLocalMulticast(), IsMulticast(), Print(), Serialize(), and Set().
|
private |
IPv4 address has been explicitly initialized to a valid value.
Definition at line 215 of file ipv4-address.h.
Referenced by Ipv4Address(), IsInitialized(), and Set().