package header import ( "encoding/binary" "gvisor.dev/gvisor/pkg/tcpip" ) const ( greProtocolType = 2 ) // GRE represents a GRE header stored in a byte array. type GRE []byte const ( // GREProtocolNumber is GRE's transport protocol number. GREProtocolNumber tcpip.TransportProtocolNumber = 47 ) func (b GRE) ProtocolType() tcpip.NetworkProtocolNumber { proto := binary.BigEndian.Uint16(b[greProtocolType:]) return tcpip.NetworkProtocolNumber(proto) } // SetLength sets the "length" field of the udp header. func (b GRE) SetProtocolType(protocol tcpip.NetworkProtocolNumber) { binary.BigEndian.PutUint16(b[greProtocolType:], uint16(protocol)) }