func ParseUserPlaneIPResourceInformationFields(b []byte) (*UserPlaneIPResourceInformationFields, error) {
	f := &UserPlaneIPResourceInformationFields{}
	if err := f.UnmarshalBinary(b); err != nil {
		return nil, err
	}
	return f, nil
}
ParseUserPlaneIPResourceInformationFields parses b into UserPlaneIPResourceInformationFields.
package ie
import (
	"io"
	"net"
)
func NewUserPlaneIPResourceInformation(flags uint8, tRange uint8, v4, v6, ni string, si uint8) *IE {
	fields := NewUserPlaneIPResourceInformationFields(flags, tRange, v4, v6, ni, si)
	b, err := fields.Marshal()
	if err != nil {
		return nil
	}
	return New(UserPlaneIPResourceInformation, b)
}
func (i *IE) UserPlaneIPResourceInformation() (*UserPlaneIPResourceInformationFields, error) {
	if i.Type != UserPlaneIPResourceInformation {
		return nil, &InvalidTypeError{Type: i.Type}
	}
	f, err := ParseUserPlaneIPResourceInformationFields(i.Payload)
	if err != nil {
		return nil, err
	}
	return f, nil
}
func (i *IE) TEIDRI() int {
	if i.Type != UserPlaneIPResourceInformation {
		return 0
	}
	return int(i.Payload[0]>>2) & 0x07
}
func (i *IE) HasASSONI() bool {
	if i.Type != UserPlaneIPResourceInformation {
		return false
	}
	if len(i.Payload) < 1 {
		return false
	}
	return has6thBit(i.Payload[0])
}
func (i *IE) HasASSOSI() bool {
	if i.Type != UserPlaneIPResourceInformation {
		return false
	}
	if len(i.Payload) < 1 {
		return false
	}
	return has7thBit(i.Payload[0])
}
type UserPlaneIPResourceInformationFields struct {
	Flags           uint8
	TEIDRange       uint8
	IPv4Address     net.IP
	IPv6Address     net.IP
	NetworkInstance string
	SourceInterface uint8
}
func NewUserPlaneIPResourceInformationFields(flags uint8, tRange uint8, v4, v6, ni string, si uint8) *UserPlaneIPResourceInformationFields {
	f := &UserPlaneIPResourceInformationFields{Flags: flags}
	if (flags>>2)&0x07 != 0 {
		f.TEIDRange = tRange
	}
	if has1stBit(flags) {
		f.IPv4Address = net.ParseIP(v4).To4()
	}
	if has2ndBit(flags) {
		f.IPv6Address = net.ParseIP(v6).To16()
	}
	if has6thBit(flags) {
		f.NetworkInstance = ni
	}
	if has7thBit(flags) {
		f.SourceInterface = si
	}
	return f
}