internal override IpV6AccessNetworkIdentifierSubOption CreateInstance(DataSegment data)
        {
            if (data.Length < OptionDataMinimumLength)
            {
                return(null);
            }

            IpV6AccessNetworkIdentifierOperatorIdentifierType identifierType = (IpV6AccessNetworkIdentifierOperatorIdentifierType)data[Offset.IdentifierType];
            DataSegment identifier = data.Subsegment(Offset.Identifier, data.Length - Offset.Identifier);

            return(new IpV6AccessNetworkIdentifierSubOptionOperatorIdentifier(identifierType, identifier));
        }
 /// <summary>
 /// Creates an instance from identifier type and identifier.
 /// </summary>
 /// <param name="identifierType">Indicates the type of the Operator-Identifier.</param>
 /// <param name="identifier">
 /// Up to 253 octets of the Operator-Identifier.
 /// The encoding of the identifier depends on the used Operator-Identifier Type.
 /// </param>
 public IpV6AccessNetworkIdentifierSubOptionOperatorIdentifier(IpV6AccessNetworkIdentifierOperatorIdentifierType identifierType, DataSegment identifier)
     : base(IpV6AccessNetworkIdentifierSubOptionType.OperatorIdentifier)
 {
     IdentifierType = identifierType;
     Identifier = identifier;
 }
 /// <summary>
 /// Creates an instance from identifier type and identifier.
 /// </summary>
 /// <param name="identifierType">Indicates the type of the Operator-Identifier.</param>
 /// <param name="identifier">
 /// Up to 253 octets of the Operator-Identifier.
 /// The encoding of the identifier depends on the used Operator-Identifier Type.
 /// </param>
 public IpV6AccessNetworkIdentifierSubOptionOperatorIdentifier(IpV6AccessNetworkIdentifierOperatorIdentifierType identifierType, DataSegment identifier)
     : base(IpV6AccessNetworkIdentifierSubOptionType.OperatorIdentifier)
 {
     IdentifierType = identifierType;
     Identifier     = identifier;
 }