コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }
コード例 #3
0
        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));
        }