|
|
| 142 |
virtual bool IsMulticast (void) const = 0; |
142 |
virtual bool IsMulticast (void) const = 0; |
| 143 |
|
143 |
|
| 144 |
/** |
144 |
/** |
| 145 |
* \brief Return the MAC multicast base address used when mapping multicast |
|
|
| 146 |
* groups to MAC multicast addresses. |
| 147 |
* |
| 148 |
* Typically when one constructs a multicast MAC addresses, some bits from |
| 149 |
* the IP multicast group are copied into a corresponding MAC multicast |
| 150 |
* group. In EUI-48, for example, the low order 23 bits of the multicast |
| 151 |
* group are copied to the MAC multicast group base address. |
| 152 |
* |
| 153 |
* This method allows access to the underlying MAC multicast group base |
| 154 |
* address. It is expected that in most cases, a net device client will |
| 155 |
* allow the net device to perform the actual construction of the multicast |
| 156 |
* address. Use of this method is discouraged unless you have a good reason |
| 157 |
* to perform a custom mapping. You should prefer |
| 158 |
* NetDevice::MakeMulticastAddress which will do the RFC-specified mapping |
| 159 |
* for the net device in question. |
| 160 |
* |
| 161 |
* \return The multicast address supported by this net device. |
| 162 |
* |
| 163 |
* \warning Calling this method is invalid if IsMulticast returns not true. |
| 164 |
* The method NS_ASSERTs if the device is not a multicast device. |
| 165 |
* \see NetDevice::MakeMulticastAddress |
| 166 |
*/ |
| 167 |
virtual Address GetMulticast (void) const = 0; |
| 168 |
|
| 169 |
/** |
| 170 |
* \brief Make and return a MAC multicast address using the provided |
145 |
* \brief Make and return a MAC multicast address using the provided |
| 171 |
* multicast group |
146 |
* multicast group |
| 172 |
* |
147 |
* |
|
|
| 179 |
* encapsulated in an abstract Address to avoid dependencies on the exact |
154 |
* encapsulated in an abstract Address to avoid dependencies on the exact |
| 180 |
* MAC address format. |
155 |
* MAC address format. |
| 181 |
* |
156 |
* |
| 182 |
* A default imlementation of MakeMulticastAddress is provided, but this |
157 |
* A default imlementation of GetMulticast is provided, but this |
| 183 |
* method simply NS_ASSERTS. In the case of net devices that do not support |
158 |
* method simply NS_ASSERTS. In the case of net devices that do not support |
| 184 |
* multicast, clients are expected to test NetDevice::IsMulticast and avoid |
159 |
* multicast, clients are expected to test NetDevice::IsMulticast and avoid |
| 185 |
* attempting to map multicast packets. Subclasses of NetDevice that do |
160 |
* attempting to map multicast packets. Subclasses of NetDevice that do |
|
|
| 196 |
* \see Address |
171 |
* \see Address |
| 197 |
* \see NetDevice::IsMulticast |
172 |
* \see NetDevice::IsMulticast |
| 198 |
*/ |
173 |
*/ |
| 199 |
virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const = 0; |
174 |
virtual Address GetMulticast (Ipv4Address multicastGroup) const = 0; |
| 200 |
|
175 |
|
| 201 |
/** |
176 |
/** |
| 202 |
* \return value of m_isPointToPoint flag |
177 |
* \return value of m_isPointToPoint flag |