func (i *IE) HasIPv6D() bool {
	if i.Type != UEIPAddress {
		return false
	}
	if len(i.Payload) < 1 {
		return false
	}
	return has4thBit(i.Payload[0])
}
HasIPv6D reports whether an IE has IPv6D bit.
package ie
import (
	"io"
	"net"
)
func NewUEIPAddress(flags uint8, v4, v6 string, v6d, v6pl uint8) *IE {
	fields := NewUEIPAddressFields(flags, v4, v6, v6d, v6pl)
	b, err := fields.Marshal()
	if err != nil {
		return nil
	}
	return New(UEIPAddress, b)
}
func (i *IE) UEIPAddress() (*UEIPAddressFields, error) {
	switch i.Type {
	case UEIPAddress:
		fields, err := ParseUEIPAddressFields(i.Payload)
		if err != nil {
			return nil, err
		}
		return fields, nil
	case CreatePDR:
		ies, err := i.CreatePDR()
		if err != nil {
			return nil, err
		}
		for _, x := range ies {
			if x.Type == PDI {
				return x.UEIPAddress()
			}
		}
		return nil, ErrIENotFound
	case PDI:
		ies, err := i.PDI()
		if err != nil {
			return nil, err
		}
		for _, x := range ies {
			if x.Type == UEIPAddress {
				return x.UEIPAddress()
			}
		}
		return nil, ErrIENotFound
	case CreatedPDR:
		ies, err := i.CreatedPDR()
		if err != nil {
			return nil, err
		}
		for _, x := range ies {
			if x.Type == UEIPAddress {
				return x.UEIPAddress()
			}
		}
		return nil, ErrIENotFound
	case UsageReportWithinSessionReportRequest:
		ies, err := i.UsageReport()
		if err != nil {
			return nil, err
		}
		for _, x := range ies {
			if x.Type == UEIPAddress {
				return x.UEIPAddress()
			}
		}
		return nil, ErrIENotFound
	case CreateTrafficEndpoint:
		ies, err := i.CreateTrafficEndpoint()
		if err != nil {
			return nil, err
		}
		for _, x := range ies {
			if x.Type == UEIPAddress {
				return x.UEIPAddress()
			}
		}
		return nil, ErrIENotFound
	case CreatedTrafficEndpoint:
		ies, err := i.CreatedTrafficEndpoint()
		if err != nil {
			return nil, err
		}
		for _, x := range ies {
			if x.Type == UEIPAddress {
				return x.UEIPAddress()
			}
		}
		return nil, ErrIENotFound
	case UpdateTrafficEndpoint:
		ies, err := i.UpdateTrafficEndpoint()
		if err != nil {
			return nil, err
		}
		for _, x := range ies {
			if x.Type == UEIPAddress {
				return x.UEIPAddress()
			}
		}
		return nil, ErrIENotFound
	default:
		return nil, &InvalidTypeError{Type: i.Type}
	}
}
func (i *IE) HasCH() bool {
	if i.Type != UEIPAddress {
		return false
	}
	if len(i.Payload) < 1 {
		return false
	}
	return has5thBit(i.Payload[0])
}