Fix address parsing from Mac[16,48.64]Address
This commit is contained in:
@@ -62,10 +62,10 @@ void Ipv6AddressHelper::SetBase (Ipv6Address network, Ipv6Prefix prefix,
|
||||
Ipv6Address Ipv6AddressHelper::NewAddress (Address addr)
|
||||
{
|
||||
NS_LOG_FUNCTION (this << addr);
|
||||
if (Mac16Address::IsMatchingType (addr))
|
||||
if (Mac64Address::IsMatchingType (addr))
|
||||
{
|
||||
Ipv6Address network = Ipv6AddressGenerator::GetNetwork (Ipv6Prefix (64));
|
||||
Ipv6Address address = Ipv6Address::MakeAutoconfiguredAddress (Mac16Address::ConvertFrom (addr), network);
|
||||
Ipv6Address address = Ipv6Address::MakeAutoconfiguredAddress (Mac64Address::ConvertFrom (addr), network);
|
||||
Ipv6AddressGenerator::AddAllocated (address);
|
||||
return address;
|
||||
}
|
||||
@@ -76,10 +76,10 @@ Ipv6Address Ipv6AddressHelper::NewAddress (Address addr)
|
||||
Ipv6AddressGenerator::AddAllocated (address);
|
||||
return address;
|
||||
}
|
||||
else if (Mac64Address::IsMatchingType (addr))
|
||||
else if (Mac16Address::IsMatchingType (addr))
|
||||
{
|
||||
Ipv6Address network = Ipv6AddressGenerator::GetNetwork (Ipv6Prefix (64));
|
||||
Ipv6Address address = Ipv6Address::MakeAutoconfiguredAddress (Mac64Address::ConvertFrom (addr), network);
|
||||
Ipv6Address address = Ipv6Address::MakeAutoconfiguredAddress (Mac16Address::ConvertFrom (addr), network);
|
||||
Ipv6AddressGenerator::AddAllocated (address);
|
||||
return address;
|
||||
}
|
||||
|
||||
@@ -89,9 +89,9 @@ void Ipv6Interface::DoSetup ()
|
||||
{
|
||||
Address addr = GetDevice ()->GetAddress ();
|
||||
|
||||
if (Mac16Address::IsMatchingType (addr))
|
||||
if (Mac64Address::IsMatchingType (addr))
|
||||
{
|
||||
Ipv6InterfaceAddress ifaddr = Ipv6InterfaceAddress (Ipv6Address::MakeAutoconfiguredLinkLocalAddress (Mac16Address::ConvertFrom (addr)), Ipv6Prefix (64));
|
||||
Ipv6InterfaceAddress ifaddr = Ipv6InterfaceAddress (Ipv6Address::MakeAutoconfiguredLinkLocalAddress (Mac64Address::ConvertFrom (addr)), Ipv6Prefix (64));
|
||||
AddAddress (ifaddr);
|
||||
}
|
||||
else if (Mac48Address::IsMatchingType (addr))
|
||||
@@ -99,9 +99,9 @@ void Ipv6Interface::DoSetup ()
|
||||
Ipv6InterfaceAddress ifaddr = Ipv6InterfaceAddress (Ipv6Address::MakeAutoconfiguredLinkLocalAddress (Mac48Address::ConvertFrom (addr)), Ipv6Prefix (64));
|
||||
AddAddress (ifaddr);
|
||||
}
|
||||
else if (Mac64Address::IsMatchingType (addr))
|
||||
else if (Mac16Address::IsMatchingType (addr))
|
||||
{
|
||||
Ipv6InterfaceAddress ifaddr = Ipv6InterfaceAddress (Ipv6Address::MakeAutoconfiguredLinkLocalAddress (Mac64Address::ConvertFrom (addr)), Ipv6Prefix (64));
|
||||
Ipv6InterfaceAddress ifaddr = Ipv6InterfaceAddress (Ipv6Address::MakeAutoconfiguredLinkLocalAddress (Mac16Address::ConvertFrom (addr)), Ipv6Prefix (64));
|
||||
AddAddress (ifaddr);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -266,17 +266,17 @@ void Ipv6L3Protocol::AddAutoconfiguredAddress (uint32_t interface, Ipv6Address n
|
||||
if (flags & (1 << 6)) /* auto flag */
|
||||
{
|
||||
// In case of new MacAddress types, remember to change Ipv6L3Protocol::RemoveAutoconfiguredAddress as well
|
||||
if (Mac16Address::IsMatchingType (addr))
|
||||
if (Mac64Address::IsMatchingType (addr))
|
||||
{
|
||||
address = Ipv6InterfaceAddress (Ipv6Address::MakeAutoconfiguredAddress (Mac16Address::ConvertFrom (addr), network));
|
||||
address = Ipv6InterfaceAddress (Ipv6Address::MakeAutoconfiguredAddress (Mac64Address::ConvertFrom (addr), network));
|
||||
}
|
||||
else if (Mac48Address::IsMatchingType (addr))
|
||||
{
|
||||
address = Ipv6InterfaceAddress (Ipv6Address::MakeAutoconfiguredAddress (Mac48Address::ConvertFrom (addr), network));
|
||||
}
|
||||
else if (Mac64Address::IsMatchingType (addr))
|
||||
else if (Mac16Address::IsMatchingType (addr))
|
||||
{
|
||||
address = Ipv6InterfaceAddress (Ipv6Address::MakeAutoconfiguredAddress (Mac64Address::ConvertFrom (addr), network));
|
||||
address = Ipv6InterfaceAddress (Ipv6Address::MakeAutoconfiguredAddress (Mac16Address::ConvertFrom (addr), network));
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -324,17 +324,17 @@ void Ipv6L3Protocol::RemoveAutoconfiguredAddress (uint32_t interface, Ipv6Addres
|
||||
uint32_t i = 0;
|
||||
Ipv6Address toFound;
|
||||
|
||||
if (Mac16Address::IsMatchingType (addr))
|
||||
if (Mac64Address::IsMatchingType (addr))
|
||||
{
|
||||
toFound = Ipv6Address::MakeAutoconfiguredAddress (Mac16Address::ConvertFrom (addr), network);
|
||||
toFound = Ipv6Address::MakeAutoconfiguredAddress (Mac64Address::ConvertFrom (addr), network);
|
||||
}
|
||||
else if (Mac48Address::IsMatchingType (addr))
|
||||
{
|
||||
toFound = Ipv6Address::MakeAutoconfiguredAddress (Mac48Address::ConvertFrom (addr), network);
|
||||
}
|
||||
else if (Mac64Address::IsMatchingType (addr))
|
||||
else if (Mac16Address::IsMatchingType (addr))
|
||||
{
|
||||
toFound = Ipv6Address::MakeAutoconfiguredAddress (Mac64Address::ConvertFrom (addr), network);
|
||||
toFound = Ipv6Address::MakeAutoconfiguredAddress (Mac16Address::ConvertFrom (addr), network);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user