an EUI-48 address More...
#include <mac48-address.h>
Public Member Functions | |
Mac48Address () | |
Mac48Address (const char *str) | |
void | CopyFrom (const uint8_t buffer[6]) |
void | CopyTo (uint8_t buffer[6]) const |
bool | IsBroadcast (void) const |
bool | IsGroup (void) const |
operator Address () const | |
Static Public Member Functions | |
static Mac48Address | Allocate (void) |
Allocate a new Mac48Address. More... | |
static Mac48Address | ConvertFrom (const Address &address) |
static Mac48Address | GetBroadcast (void) |
static Mac48Address | GetMulticast (Ipv4Address address) |
static Mac48Address | GetMulticast (Ipv6Address address) |
Get multicast address from IPv6 address. More... | |
static Mac48Address | GetMulticast6Prefix (void) |
Get the multicast prefix for IPv6 (33:33:00:00:00:00). More... | |
static Mac48Address | GetMulticastPrefix (void) |
static bool | IsMatchingType (const Address &address) |
Private Member Functions | |
Address | ConvertTo (void) const |
Static Private Member Functions | |
static uint8_t | GetType (void) |
Private Attributes | |
uint8_t | m_address [6] |
Friends | |
bool | operator!= (const Mac48Address &a, const Mac48Address &b) |
bool | operator< (const Mac48Address &a, const Mac48Address &b) |
bool | operator== (const Mac48Address &a, const Mac48Address &b) |
Macro to make help make class an ns-3 attribute. More... | |
std::istream & | operator>> (std::istream &is, Mac48Address &address) |
an EUI-48 address
This class can contain 48 bit IEEE addresses.
Definition at line 41 of file mac48-address.h.
ns3::Mac48Address::Mac48Address | ( | ) |
Definition at line 55 of file mac48-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by GetBroadcast(), GetMulticast6Prefix(), and GetMulticastPrefix().
ns3::Mac48Address::Mac48Address | ( | const char * | str | ) |
str | a string representing the new Mac48Address |
The format of the string is "xx:xx:xx:xx:xx:xx"
Definition at line 60 of file mac48-address.cc.
References ASCII_a, ASCII_COLON, ASCII_ZERO, ns3::AsciiToLowCase(), m_address, NS_ASSERT, and NS_LOG_FUNCTION.
|
static |
Allocate a new Mac48Address.
Definition at line 130 of file mac48-address.cc.
References first::address, m_address, and NS_LOG_FUNCTION_NOARGS.
Referenced by AddSimpleNetDevice(), BuildSimpleTopology(), ns3::MeshHelper::CreateInterface(), ns3::WifiTest::CreateOne(), ns3::InterferenceHelperSequenceTest::CreateOne(), ns3::Bug555TestCase::DoRun(), ns3::PointToPointHelper::Install(), ns3::AdhocAlohaNoackIdealPhyHelper::Install(), ns3::WifiHelper::Install(), ns3::WimaxHelper::Install(), ns3::FdNetDeviceHelper::InstallPriv(), ns3::EmuHelper::InstallPriv(), ns3::CsmaHelper::InstallPriv(), ns3::LteSimpleHelper::InstallSingleEnbDevice(), ns3::LteSimpleHelper::InstallSingleUeDevice(), main(), ns3::PointToPointEpcHelper::PointToPointEpcHelper(), and ns3::TapFdNetDeviceHelper::TapFdNetDeviceHelper().
|
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 Mac48Address.
Definition at line 121 of file mac48-address.cc.
References ns3::Address::CheckCompatible(), ns3::Address::CopyTo(), GetType(), NS_ASSERT, and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6L3Protocol::AddAutoconfiguredAddress(), ns3::BridgeNetDevice::AddBridgePort(), ns3::MeshPointDevice::AddInterface(), AddSimpleNetDevice(), ns3::TapBridge::CreateTap(), ns3::Ipv6Interface::DoSetup(), ns3::TapBridge::ForwardToBridgedDevice(), ns3::dot11s::PeerManagementProtocol::Install(), ns3::dot11s::HwmpProtocol::Install(), ns3::flame::FlameProtocol::Install(), ns3::aodv::Neighbors::LookupMacAddress(), ns3::dsr::RouteCache::LookupMacAddress(), ns3::SixLowPanNetDevice::MakeGlobalAddressFromMac(), ns3::SixLowPanNetDevice::MakeLinkLocalAddressFromMac(), ns3::Ipv6AddressHelper::NewAddress(), ns3::dsr::DsrRouting::PromiscReceive(), ns3::TapBridge::ReceiveFromBridgedDevice(), ns3::BridgeNetDevice::ReceiveFromDevice(), ns3::MeshPointDevice::ReceiveFromDevice(), ns3::Ipv6L3Protocol::RemoveAutoconfiguredAddress(), ns3::MeshHelper::Report(), ns3::LoopbackNetDevice::Send(), ns3::SimpleNetDevice::Send(), ns3::WifiNetDevice::Send(), ns3::MeshPointDevice::Send(), ns3::WimaxNetDevice::Send(), ns3::LoopbackNetDevice::SendFrom(), ns3::SimpleNetDevice::SendFrom(), ns3::BridgeNetDevice::SendFrom(), ns3::MeshPointDevice::SendFrom(), ns3::WifiNetDevice::SendFrom(), ns3::FdNetDevice::SendFrom(), ns3::AlohaNoackNetDevice::SendFrom(), ns3::EmuNetDevice::SendFrom(), ns3::WimaxNetDevice::SendFrom(), ns3::CsmaNetDevice::SendFrom(), ns3::LoopbackNetDevice::SetAddress(), ns3::LteNetDevice::SetAddress(), ns3::SimpleNetDevice::SetAddress(), ns3::WifiNetDevice::SetAddress(), ns3::BridgeNetDevice::SetAddress(), ns3::MeshPointDevice::SetAddress(), ns3::EmuNetDevice::SetAddress(), ns3::FdNetDevice::SetAddress(), ns3::PointToPointNetDevice::SetAddress(), ns3::AlohaNoackNetDevice::SetAddress(), ns3::TapBridge::SetAddress(), ns3::WimaxNetDevice::SetAddress(), and ns3::CsmaNetDevice::SetAddress().
|
private |
Convert an instance of this class to a polymorphic Address instance.
Definition at line 115 of file mac48-address.cc.
References GetType(), m_address, and NS_LOG_FUNCTION.
void ns3::Mac48Address::CopyFrom | ( | const uint8_t | buffer[6] | ) |
buffer | address in network order |
Copy the input address to our internal buffer.
Definition at line 92 of file mac48-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::TapBridge::CreateTap(), ns3::dot11s::HwmpTag::Deserialize(), ns3::flame::FlameTag::Deserialize(), GetMulticast(), and ns3::ReadFrom().
void ns3::Mac48Address::CopyTo | ( | uint8_t | buffer[6] | ) | const |
buffer | address in network order |
Copy the internal address to the input buffer.
Definition at line 98 of file mac48-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by SwitchFlowTableTestCase::DoRun(), GetMulticast(), ns3::Ipv6Address::MakeAutoconfiguredAddress(), ns3::Ipv6Address::MakeAutoconfiguredLinkLocalAddress(), ns3::operator<<(), ns3::dot11s::HwmpTag::Serialize(), ns3::flame::FlameTag::Serialize(), and ns3::WriteTo().
|
static |
Definition at line 165 of file mac48-address.cc.
References Mac48Address(), and NS_LOG_FUNCTION_NOARGS.
Referenced by ns3::PointToPointEpcHelper::AddEnb(), ns3::dot11s::PeerLink::ConfirmAccept(), ns3::dot11s::PeerLink::ConfirmReject(), ns3::MeshWifiBeacon::CreateHeader(), ns3::dot11s::HwmpRtable::DeleteProactivePath(), ns3::EpcS1uUlTestCase::DoRun(), ns3::dot11s::HwmpProtocolMac::ForwardPerr(), ns3::dot11s::HwmpProtocol::ForwardUnicast(), ns3::LteNetDevice::GetBroadcast(), ns3::WifiNetDevice::GetBroadcast(), ns3::WimaxNetDevice::GetBroadcast(), ns3::dot11s::HwmpProtocol::GetBroadcastReceivers(), ns3::dot11s::HwmpProtocol::GetPreqReceivers(), ns3::flame::FlameProtocol::HandleDataFrame(), IsBroadcast(), ns3::dot11s::HwmpRtable::LookupResult::IsValid(), ns3::flame::FlameRtable::LookupResult::IsValid(), ns3::dot11s::IePreq::MayAddAddress(), ns3::dot11s::PeerLink::OpenAccept(), ns3::dot11s::PeerLink::OpenReject(), ns3::dot11s::HwmpProtocol::ProactivePathResolved(), ns3::dot11s::HwmpProtocol::ReactivePathResolved(), ns3::flame::FlameProtocolMac::Receive(), ns3::MeshWifiInterfaceMac::Receive(), ns3::dot11s::PeerManagementProtocol::ReceiveBeacon(), ns3::dot11s::HwmpProtocolMac::ReceiveData(), ns3::dot11s::HwmpProtocol::ReceivePrep(), ns3::dot11s::HwmpProtocol::ReceivePreq(), ns3::flame::FlameProtocol::RemoveRoutingStuff(), ns3::dot11s::HwmpProtocol::RequestRoute(), ns3::flame::FlameProtocol::RequestRoute(), ns3::dot11s::HwmpProtocol::RetryPathDiscovery(), ns3::MeshWifiInterfaceMac::SendManagementFrame(), ns3::ApWifiMac::SendOneBeacon(), ns3::dot11s::HwmpProtocol::SendProactivePreq(), ns3::StaWifiMac::SendProbeRequest(), ns3::dot11s::PeerLink::StateMachine(), and ns3::flame::FlameProtocolMac::UpdateOutcomingFrame().
|
static |
address | base IPv4 address |
Definition at line 186 of file mac48-address.cc.
References CopyFrom(), CopyTo(), GetMulticastPrefix(), NS_LOG_FUNCTION, and ns3::Ipv4Address::Serialize().
Referenced by ns3::LoopbackNetDevice::GetMulticast(), ns3::LteNetDevice::GetMulticast(), ns3::SimpleNetDevice::GetMulticast(), ns3::WifiNetDevice::GetMulticast(), ns3::BridgeNetDevice::GetMulticast(), ns3::MeshPointDevice::GetMulticast(), ns3::FdNetDevice::GetMulticast(), ns3::EmuNetDevice::GetMulticast(), ns3::AlohaNoackNetDevice::GetMulticast(), ns3::TapBridge::GetMulticast(), ns3::WimaxNetDevice::GetMulticast(), and ns3::CsmaNetDevice::GetMulticast().
|
static |
Get multicast address from IPv6 address.
address | base IPv6 address |
Definition at line 222 of file mac48-address.cc.
References CopyFrom(), CopyTo(), GetMulticast6Prefix(), NS_LOG_FUNCTION, and ns3::Ipv6Address::Serialize().
|
static |
Get the multicast prefix for IPv6 (33:33:00:00:00:00).
Definition at line 179 of file mac48-address.cc.
References Mac48Address(), and NS_LOG_FUNCTION_NOARGS.
Referenced by GetMulticast().
|
static |
Definition at line 172 of file mac48-address.cc.
References Mac48Address(), and NS_LOG_FUNCTION_NOARGS.
Referenced by GetMulticast().
|
staticprivate |
Definition at line 145 of file mac48-address.cc.
References NS_LOG_FUNCTION_NOARGS, and ns3::Address::Register().
Referenced by ConvertFrom(), ConvertTo(), and IsMatchingType().
bool ns3::Mac48Address::IsBroadcast | ( | void | ) | const |
Definition at line 153 of file mac48-address.cc.
References GetBroadcast(), and NS_LOG_FUNCTION.
Referenced by ns3::TapBridge::CreateTap(), ns3::MeshPointDevice::DoSend(), ns3::ApWifiMac::Enqueue(), ns3::WifiNetDevice::ForwardUp(), ns3::FdNetDevice::ForwardUp(), ns3::EmuNetDevice::ForwardUp(), ns3::EdcaTxopN::NotifyAccessGranted(), ns3::AlohaNoackNetDevice::NotifyReceptionEndOk(), ns3::SimpleNetDevice::Receive(), ns3::LoopbackNetDevice::Receive(), ns3::ApWifiMac::Receive(), ns3::CsmaNetDevice::Receive(), and ns3::LoopbackNetDevice::SendFrom().
bool ns3::Mac48Address::IsGroup | ( | void | ) | const |
Definition at line 159 of file mac48-address.cc.
References m_address, and NS_LOG_FUNCTION.
Referenced by ns3::WifiRemoteStationManager::AddSupportedMcs(), ns3::WifiRemoteStationManager::AddSupportedMode(), ns3::dot11s::AirtimeLinkMetricCalculator::CalculateMetric(), ns3::WifiNetDevice::ForwardUp(), ns3::FdNetDevice::ForwardUp(), ns3::EmuNetDevice::ForwardUp(), ns3::WifiRemoteStationManager::GetAckTxVector(), ns3::WifiRemoteStationManager::GetBlockAckTxVector(), ns3::WifiRemoteStationManager::GetCtsTxVector(), ns3::WifiRemoteStationManager::GetDataTxVector(), ns3::WifiRemoteStationManager::GetFragmentOffset(), ns3::WifiRemoteStationManager::GetFragmentSize(), ns3::MacTxMiddle::GetNextSequenceNumberfor(), ns3::WifiRemoteStationManager::GetRtsTxVector(), ns3::WifiRemoteStationManager::IsAssociated(), ns3::WifiRemoteStationManager::IsBrandNew(), ns3::WifiRemoteStationManager::IsLastFragment(), ns3::WifiRemoteStationManager::IsWaitAssocTxOk(), ns3::MacRxMiddle::Lookup(), ns3::WifiRemoteStationManager::NeedDataRetransmission(), ns3::WifiRemoteStationManager::NeedFragmentation(), ns3::WifiRemoteStationManager::NeedRts(), ns3::WifiRemoteStationManager::NeedRtsRetransmission(), ns3::EdcaTxopN::NotifyAccessGranted(), ns3::DcaTxop::NotifyAccessGranted(), ns3::AlohaNoackNetDevice::NotifyReceptionEndOk(), ns3::WifiRemoteStationManager::PrepareForQueue(), ns3::MacRxMiddle::Receive(), ns3::SimpleNetDevice::Receive(), ns3::LoopbackNetDevice::Receive(), ns3::ApWifiMac::Receive(), ns3::StaWifiMac::Receive(), ns3::OcbWifiMac::Receive(), ns3::CsmaNetDevice::Receive(), ns3::MeshPointDevice::ReceiveFromDevice(), ns3::MacLow::ReceiveOk(), ns3::WifiRemoteStationManager::RecordDisassociated(), ns3::WifiRemoteStationManager::RecordGotAssocTxFailed(), ns3::WifiRemoteStationManager::RecordGotAssocTxOk(), ns3::WifiRemoteStationManager::RecordWaitAssocTxOk(), ns3::WifiRemoteStationManager::ReportDataFailed(), ns3::WifiRemoteStationManager::ReportDataOk(), ns3::WifiRemoteStationManager::ReportFinalDataFailed(), ns3::WifiRemoteStationManager::ReportFinalRtsFailed(), ns3::WifiRemoteStationManager::ReportRtsFailed(), ns3::WifiRemoteStationManager::ReportRtsOk(), ns3::WifiRemoteStationManager::ReportRxOk(), ns3::WifiRemoteStationManager::Reset(), ns3::BridgeNetDevice::SendFrom(), and ns3::dot11s::PeerManagementProtocolMac::UpdateOutcomingFrame().
|
static |
address | address to test |
Definition at line 105 of file mac48-address.cc.
References ns3::Address::CheckCompatible(), GetType(), and NS_LOG_FUNCTION.
Referenced by ns3::Ipv6L3Protocol::AddAutoconfiguredAddress(), ns3::BridgeNetDevice::AddBridgePort(), ns3::MeshPointDevice::AddInterface(), ns3::Ipv6Interface::DoSetup(), ns3::SixLowPanNetDevice::MakeGlobalAddressFromMac(), ns3::SixLowPanNetDevice::MakeLinkLocalAddressFromMac(), ns3::Ipv6AddressHelper::NewAddress(), ns3::Ipv6L3Protocol::RemoveAutoconfiguredAddress(), ns3::WifiNetDevice::Send(), ns3::WifiNetDevice::SendFrom(), and ns3::TapBridge::SetBridgedNetDevice().
ns3::Mac48Address::operator Address | ( | ) | const |
Convert an instance of this class to a polymorphic Address instance.
Definition at line 110 of file mac48-address.cc.
|
friend |
Definition at line 156 of file mac48-address.h.
|
friend |
Definition at line 160 of file mac48-address.h.
|
friend |
Macro to make help make class an ns-3 attribute.
Definition at line 152 of file mac48-address.h.
|
friend |
Definition at line 273 of file mac48-address.cc.
|
private |
Definition at line 142 of file mac48-address.h.
Referenced by Allocate(), ConvertTo(), CopyFrom(), CopyTo(), IsGroup(), Mac48Address(), ns3::operator!=(), ns3::operator<(), ns3::operator==(), and ns3::operator>>().