internal static IpV6ExtensionHeader CreateInstance(IpV4Protocol nextHeader, DataSegment extensionHeaderData, out int numBytesRead)
        {
            if (IpV6ExtensionHeaderStandard.IsStandard(nextHeader))
            {
                return(IpV6ExtensionHeaderStandard.CreateInstanceStandard(nextHeader, extensionHeaderData, out numBytesRead));
            }

            switch (nextHeader)
            {
            case IpV4Protocol.EncapsulatingSecurityPayload:     // 50
                return(IpV6ExtensionHeaderEncapsulatingSecurityPayload.CreateInstance(extensionHeaderData, out numBytesRead));

            case IpV4Protocol.AuthenticationHeader:     // 51
                return(IpV6ExtensionHeaderAuthentication.CreateInstance(extensionHeaderData, out numBytesRead));

            default:
                throw new InvalidOperationException("Invalid next header value" + nextHeader);
            }
        }
        internal static IpV6ExtensionHeader CreateInstance(IpV4Protocol nextHeader, DataSegment extensionHeaderData, out int numBytesRead)
        {
            switch (nextHeader)
            {
            case IpV4Protocol.IpV6HopByHopOption:        // 0
            case IpV4Protocol.IpV6Route:                 // 43
            case IpV4Protocol.FragmentHeaderForIpV6:     // 44
            case IpV4Protocol.IpV6Opts:                  // 60
            case IpV4Protocol.MobilityHeader:            // 135
                return(CreateStandardInstance(nextHeader, extensionHeaderData, out numBytesRead));

            case IpV4Protocol.EncapsulatingSecurityPayload:     // 50
                return(IpV6ExtensionHeaderEncapsulatingSecurityPayload.CreateInstance(extensionHeaderData, out numBytesRead));

            case IpV4Protocol.AuthenticationHeader:             // 51
                return(IpV6ExtensionHeaderAuthentication.CreateInstance(extensionHeaderData, out numBytesRead));

            default:
                throw new InvalidOperationException("Invalid nextHeader value" + nextHeader);
            }
        }