From 3aa50e6af91ef19ef4bee76b162f6938c3f47479 Mon Sep 17 00:00:00 2001 From: Craig Dowell Date: Wed, 5 Nov 2008 14:33:20 -0800 Subject: [PATCH] Apply Patch to address bug 294 -- due to vincent --- src/devices/bridge/bridge-net-device.cc | 10 +------ src/devices/bridge/bridge-net-device.h | 3 +- src/devices/csma/csma-net-device.cc | 9 +----- src/devices/csma/csma-net-device.h | 3 +- .../point-to-point-net-device.cc | 14 +-------- .../point-to-point-net-device.h | 3 +- src/devices/wifi/wifi-net-device.cc | 7 +---- src/devices/wifi/wifi-net-device.h | 3 +- src/internet-stack/arp-ipv4-interface.cc | 2 +- src/node/net-device.h | 29 ++----------------- src/node/simple-net-device.cc | 7 +---- src/node/simple-net-device.h | 3 +- 12 files changed, 13 insertions(+), 80 deletions(-) diff --git a/src/devices/bridge/bridge-net-device.cc b/src/devices/bridge/bridge-net-device.cc index 1a7e561ff..e140fd8f6 100644 --- a/src/devices/bridge/bridge-net-device.cc +++ b/src/devices/bridge/bridge-net-device.cc @@ -290,16 +290,8 @@ BridgeNetDevice::IsMulticast (void) const return true; } - Address -BridgeNetDevice::GetMulticast (void) const -{ - return Mac48Address ("01:00:5e:00:00:00"); -} - - -Address -BridgeNetDevice::MakeMulticastAddress (Ipv4Address multicastGroup) const +BridgeNetDevice::GetMulticast (Ipv4Address multicastGroup) const { NS_LOG_FUNCTION (this << multicastGroup); Mac48Address multicast = Mac48Address::GetMulticast (multicastGroup); diff --git a/src/devices/bridge/bridge-net-device.h b/src/devices/bridge/bridge-net-device.h index ed232cce9..402ee90ec 100644 --- a/src/devices/bridge/bridge-net-device.h +++ b/src/devices/bridge/bridge-net-device.h @@ -96,8 +96,7 @@ public: virtual bool IsBroadcast (void) const; virtual Address GetBroadcast (void) const; virtual bool IsMulticast (void) const; - virtual Address GetMulticast (void) const; - virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const; + virtual Address GetMulticast (Ipv4Address multicastGroup) const; virtual bool IsPointToPoint (void) const; virtual bool Send (Ptr packet, const Address& dest, uint16_t protocolNumber); virtual bool SendFrom (Ptr packet, const Address& source, const Address& dest, uint16_t protocolNumber); diff --git a/src/devices/csma/csma-net-device.cc b/src/devices/csma/csma-net-device.cc index 391027d46..b0aa8b942 100644 --- a/src/devices/csma/csma-net-device.cc +++ b/src/devices/csma/csma-net-device.cc @@ -796,14 +796,7 @@ CsmaNetDevice::IsMulticast (void) const } Address -CsmaNetDevice::GetMulticast (void) const -{ - NS_LOG_FUNCTION_NOARGS (); - return Mac48Address::GetMulticastPrefix (); -} - - Address -CsmaNetDevice::MakeMulticastAddress (Ipv4Address multicastGroup) const +CsmaNetDevice::GetMulticast (Ipv4Address multicastGroup) const { NS_LOG_FUNCTION (multicastGroup); diff --git a/src/devices/csma/csma-net-device.h b/src/devices/csma/csma-net-device.h index f239c4a32..406b5b7ca 100644 --- a/src/devices/csma/csma-net-device.h +++ b/src/devices/csma/csma-net-device.h @@ -319,7 +319,6 @@ public: virtual bool IsBroadcast (void) const; virtual Address GetBroadcast (void) const; virtual bool IsMulticast (void) const; - virtual Address GetMulticast (void) const; /** * \brief Make and return a MAC multicast address using the provided @@ -343,7 +342,7 @@ public: * \see Mac48Address * \see Address */ - virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const; + virtual Address GetMulticast (Ipv4Address multicastGroup) const; /** * Is this a point to point link? diff --git a/src/devices/point-to-point/point-to-point-net-device.cc b/src/devices/point-to-point/point-to-point-net-device.cc index 159d8a004..598398cf5 100644 --- a/src/devices/point-to-point/point-to-point-net-device.cc +++ b/src/devices/point-to-point/point-to-point-net-device.cc @@ -372,20 +372,8 @@ PointToPointNetDevice::IsMulticast (void) const return false; } -// -// Since we return false in the IsMulticast call, calls to other multicast -// related methods returns are undefined according to the base class. So we -// can freely make something up, which is the base of the MAC multicast -// address space. -// Address -PointToPointNetDevice::GetMulticast (void) const -{ - return Mac48Address ("01:00:5e:00:00:00"); -} - - Address -PointToPointNetDevice::MakeMulticastAddress (Ipv4Address multicastGroup) const +PointToPointNetDevice::GetMulticast (Ipv4Address multicastGroup) const { return Mac48Address ("01:00:5e:00:00:00"); } diff --git a/src/devices/point-to-point/point-to-point-net-device.h b/src/devices/point-to-point/point-to-point-net-device.h index 67636fa71..8dbe0d40e 100644 --- a/src/devices/point-to-point/point-to-point-net-device.h +++ b/src/devices/point-to-point/point-to-point-net-device.h @@ -249,8 +249,7 @@ public: virtual Address GetBroadcast (void) const; virtual bool IsMulticast (void) const; - virtual Address GetMulticast (void) const; - virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const; + virtual Address GetMulticast (Ipv4Address multicastGroup) const; virtual bool IsPointToPoint (void) const; diff --git a/src/devices/wifi/wifi-net-device.cc b/src/devices/wifi/wifi-net-device.cc index 25c465e3b..4edc02184 100644 --- a/src/devices/wifi/wifi-net-device.cc +++ b/src/devices/wifi/wifi-net-device.cc @@ -253,12 +253,7 @@ WifiNetDevice::IsMulticast (void) const return false; } Address -WifiNetDevice::GetMulticast (void) const -{ - return Mac48Address::GetMulticastPrefix (); -} -Address -WifiNetDevice::MakeMulticastAddress (Ipv4Address multicastGroup) const +WifiNetDevice::GetMulticast (Ipv4Address multicastGroup) const { return Mac48Address::GetMulticast (multicastGroup); } diff --git a/src/devices/wifi/wifi-net-device.h b/src/devices/wifi/wifi-net-device.h index 556ddde15..f9defa726 100644 --- a/src/devices/wifi/wifi-net-device.h +++ b/src/devices/wifi/wifi-net-device.h @@ -92,8 +92,7 @@ public: virtual bool IsBroadcast (void) const; virtual Address GetBroadcast (void) const; virtual bool IsMulticast (void) const; - virtual Address GetMulticast (void) const; - virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const; + virtual Address GetMulticast (Ipv4Address multicastGroup) const; virtual bool IsPointToPoint (void) const; virtual bool Send(Ptr packet, const Address& dest, uint16_t protocolNumber); virtual Ptr GetNode (void) const; diff --git a/src/internet-stack/arp-ipv4-interface.cc b/src/internet-stack/arp-ipv4-interface.cc index 90fc2a019..4eaeb177e 100644 --- a/src/internet-stack/arp-ipv4-interface.cc +++ b/src/internet-stack/arp-ipv4-interface.cc @@ -139,7 +139,7 @@ ArpIpv4Interface::SendTo (Ptr p, Ipv4Address dest) "ArpIpv4Interface::SendTo (): Sending multicast packet over " "non-multicast device"); - hardwareDestination = GetDevice ()->MakeMulticastAddress(dest); + hardwareDestination = GetDevice ()->GetMulticast(dest); found = true; } else diff --git a/src/node/net-device.h b/src/node/net-device.h index a3130b2d1..91a850408 100644 --- a/src/node/net-device.h +++ b/src/node/net-device.h @@ -141,31 +141,6 @@ public: */ virtual bool IsMulticast (void) const = 0; - /** - * \brief Return the MAC multicast base address used when mapping multicast - * groups to MAC multicast addresses. - * - * Typically when one constructs a multicast MAC addresses, some bits from - * the IP multicast group are copied into a corresponding MAC multicast - * group. In EUI-48, for example, the low order 23 bits of the multicast - * group are copied to the MAC multicast group base address. - * - * This method allows access to the underlying MAC multicast group base - * address. It is expected that in most cases, a net device client will - * allow the net device to perform the actual construction of the multicast - * address. Use of this method is discouraged unless you have a good reason - * to perform a custom mapping. You should prefer - * NetDevice::MakeMulticastAddress which will do the RFC-specified mapping - * for the net device in question. - * - * \return The multicast address supported by this net device. - * - * \warning Calling this method is invalid if IsMulticast returns not true. - * The method NS_ASSERTs if the device is not a multicast device. - * \see NetDevice::MakeMulticastAddress - */ - virtual Address GetMulticast (void) const = 0; - /** * \brief Make and return a MAC multicast address using the provided * multicast group @@ -179,7 +154,7 @@ public: * encapsulated in an abstract Address to avoid dependencies on the exact * MAC address format. * - * A default imlementation of MakeMulticastAddress is provided, but this + * A default imlementation of GetMulticast is provided, but this * method simply NS_ASSERTS. In the case of net devices that do not support * multicast, clients are expected to test NetDevice::IsMulticast and avoid * attempting to map multicast packets. Subclasses of NetDevice that do @@ -196,7 +171,7 @@ public: * \see Address * \see NetDevice::IsMulticast */ - virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const = 0; + virtual Address GetMulticast (Ipv4Address multicastGroup) const = 0; /** * \return value of m_isPointToPoint flag diff --git a/src/node/simple-net-device.cc b/src/node/simple-net-device.cc index 42004ac83..4256da16e 100644 --- a/src/node/simple-net-device.cc +++ b/src/node/simple-net-device.cc @@ -148,12 +148,7 @@ SimpleNetDevice::IsMulticast (void) const return false; } Address -SimpleNetDevice::GetMulticast (void) const -{ - return Mac48Address::GetMulticastPrefix (); -} -Address -SimpleNetDevice::MakeMulticastAddress (Ipv4Address multicastGroup) const +SimpleNetDevice::GetMulticast (Ipv4Address multicastGroup) const { return Mac48Address::GetMulticast (multicastGroup); } diff --git a/src/node/simple-net-device.h b/src/node/simple-net-device.h index 208080b2b..c2e2202e7 100644 --- a/src/node/simple-net-device.h +++ b/src/node/simple-net-device.h @@ -59,8 +59,7 @@ public: virtual bool IsBroadcast (void) const; virtual Address GetBroadcast (void) const; virtual bool IsMulticast (void) const; - virtual Address GetMulticast (void) const; - virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const; + virtual Address GetMulticast (Ipv4Address multicastGroup) const; virtual bool IsPointToPoint (void) const; virtual bool Send(Ptr packet, const Address& dest, uint16_t protocolNumber); virtual bool SendFrom(Ptr packet, const Address& source, const Address& dest, uint16_t protocolNumber);