func (b IPv6Fragment) SetTOS(t uint8, l uint32) {
	panic("not supported")
}
SetTOS is not supported by IPv6Fragment.
package header
import (
	"encoding/binary"
	tcpip "github.com/brewlin/net-protocol/protocol"
)
const (
	nextHdrFrag = 0
	fragOff     = 2
	more        = 3
	idV6        = 4
)
type IPv6FragmentFields struct {
	NextHeader uint8
	FragmentOffset uint16
	M bool
	Identification uint32
}
type IPv6Fragment []byte
const (
	IPv6FragmentHeader = 44
	IPv6FragmentHeaderSize = 8
)
func (b IPv6Fragment) Encode(i *IPv6FragmentFields) {
	b[nextHdrFrag] = i.NextHeader
	binary.BigEndian.PutUint16(b[fragOff:], i.FragmentOffset<<3)
	if i.M {
		b[more] |= 1
	}
	binary.BigEndian.PutUint32(b[idV6:], i.Identification)
}
func (b IPv6Fragment) IsValid() bool {
	return len(b) >= IPv6FragmentHeaderSize
}
func (b IPv6Fragment) NextHeader() uint8 {
	return b[nextHdrFrag]
}
func (b IPv6Fragment) FragmentOffset() uint16 {
	return binary.BigEndian.Uint16(b[fragOff:]) >> 3
}
func (b IPv6Fragment) More() bool {
	return b[more]&1 > 0
}
func (b IPv6Fragment) Payload() []byte {
	return b[IPv6FragmentHeaderSize:]
}
func (b IPv6Fragment) ID() uint32 {
	return binary.BigEndian.Uint32(b[idV6:])
}
func (b IPv6Fragment) TransportProtocol() tcpip.TransportProtocolNumber {
	return tcpip.TransportProtocolNumber(b.NextHeader())
}
func (b IPv6Fragment) Checksum() uint16 {
	panic("not supported")
}
func (b IPv6Fragment) SourceAddress() tcpip.Address {
	panic("not supported")
}
func (b IPv6Fragment) DestinationAddress() tcpip.Address {
	panic("not supported")
}
func (b IPv6Fragment) SetSourceAddress(tcpip.Address) {
	panic("not supported")
}
func (b IPv6Fragment) SetDestinationAddress(tcpip.Address) {
	panic("not supported")
}
func (b IPv6Fragment) SetChecksum(uint16) {
	panic("not supported")
}
func (b IPv6Fragment) TOS() (uint8, uint32) {
	panic("not supported")
}