add hw adress translator, add solicitedNodeAddress traslation , finisched arp to ndp handler
This commit is contained in:
@@ -2,7 +2,28 @@
|
||||
#include <tins/ip_address.h>
|
||||
#include <tins/ipv6_address.h>
|
||||
|
||||
#ifndef NdpPrefixValueString
|
||||
#define NdpPrefixValueString "FF02:0:0:0:0:1:FF00:0"
|
||||
#endif
|
||||
|
||||
#ifndef NdpMaskValueString
|
||||
#define NdpMaskValueString "::FF:FFFF"
|
||||
#endif
|
||||
|
||||
const size_t IpAddressTranslator::lastAddressByteIndex = Tins::IPv4Address::address_size - 1;
|
||||
const UPtrIPv6Address IpAddressTranslator::ndpPrefix = std::make_unique<Tins::IPv6Address>(NdpPrefixValueString);
|
||||
const UPtrIPv6Address IpAddressTranslator::ndpMask = std::make_unique<Tins::IPv6Address>(NdpMaskValueString);
|
||||
|
||||
void IpAddressTranslator::toSolicitedNodeAddress(const Tins::IPv4Address &ipv4Address, Tins::IPv6Address &resultIpv6Address)
|
||||
{
|
||||
toIpv6Address(ipv4Address, resultIpv6Address);
|
||||
toSolicitedNodeAddress(resultIpv6Address, resultIpv6Address);
|
||||
}
|
||||
|
||||
void IpAddressTranslator::toSolicitedNodeAddress(const Tins::IPv6Address &ipv6Address, Tins::IPv6Address &resultIpv6Address)
|
||||
{
|
||||
resultIpv6Address = (*ndpMask & ipv6Address)| *ndpPrefix;
|
||||
}
|
||||
|
||||
uint32_t IpAddressTranslator::toIpv4AddressBytes(IN const Tins::IPv6Address & ipv6Address)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user