public static DHCPv6PacketIdentityAssociationTemporaryAddressesOption FromByteArray(Byte[] data, Int32 offset) { UInt16 lenght = ByteHelper.ConvertToUInt16FromByte(data, offset + 2); UInt32 identifier = ByteHelper.ConvertToUInt32FromByte(data, offset + 4); List <DHCPv6PacketSuboption> suboptions = new List <DHCPv6PacketSuboption>(); if (lenght > 4) { Byte[] subOptionsData = ByteHelper.CopyData(data, offset + 8); suboptions.AddRange(DHCPv6PacketSuboptionFactory.GetOptions(subOptionsData)); } return(new DHCPv6PacketIdentityAssociationTemporaryAddressesOption(identifier, suboptions)); }
public static DHCPv6PacketIdentityAssociationPrefixDelegationOption FromByteArray(Byte[] data, Int32 offset) { UInt16 lenght = ByteHelper.ConvertToUInt16FromByte(data, offset + 2); UInt32 identifier = ByteHelper.ConvertToUInt32FromByte(data, offset + 4); UInt32 T1 = ByteHelper.ConvertToUInt32FromByte(data, offset + 8); UInt32 T2 = ByteHelper.ConvertToUInt32FromByte(data, offset + 12); List <DHCPv6PacketSuboption> suboptions = new List <DHCPv6PacketSuboption>(); if (lenght > 12) { Byte[] subOptionsData = ByteHelper.CopyData(data, offset + 16); suboptions.AddRange(DHCPv6PacketSuboptionFactory.GetOptions(subOptionsData)); } return(new DHCPv6PacketIdentityAssociationPrefixDelegationOption( identifier, TimeSpan.FromSeconds(T1), TimeSpan.FromSeconds(T2), suboptions)); }
public static DHCPv6PacketIdentityAssociationAddressSuboption FromByteArray(Byte[] data, Int32 offset) { UInt16 lenght = ByteHelper.ConvertToUInt16FromByte(data, offset + 2); IPv6Address address = IPv6Address.FromByteArray(data, offset + 4); UInt32 preferredLifetime = ByteHelper.ConvertToUInt32FromByte(data, offset + 4 + 16); UInt32 validLifetime = ByteHelper.ConvertToUInt32FromByte(data, offset + 4 + 16 + 4); List <DHCPv6PacketSuboption> suboptions = new List <DHCPv6PacketSuboption>(); if (lenght > 16 + 4 + 4) { Byte[] subOptionsData = ByteHelper.CopyData(data, offset + 4 + 16 + 4 + 4); suboptions.AddRange(DHCPv6PacketSuboptionFactory.GetOptions(subOptionsData)); } return(new DHCPv6PacketIdentityAssociationAddressSuboption( address, TimeSpan.FromSeconds(preferredLifetime), TimeSpan.FromSeconds(validLifetime), suboptions)); }