123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- package layers
- import (
- "encoding/binary"
- "github.com/google/gopacket"
- )
- type EtherIP struct {
- BaseLayer
- Version uint8
- Reserved uint16
- }
- func (e *EtherIP) LayerType() gopacket.LayerType { return LayerTypeEtherIP }
- func (e *EtherIP) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error {
- e.Version = data[0] >> 4
- e.Reserved = binary.BigEndian.Uint16(data[:2]) & 0x0fff
- e.BaseLayer = BaseLayer{data[:2], data[2:]}
- return nil
- }
- func (e *EtherIP) CanDecode() gopacket.LayerClass {
- return LayerTypeEtherIP
- }
- func (e *EtherIP) NextLayerType() gopacket.LayerType {
- return LayerTypeEthernet
- }
- func decodeEtherIP(data []byte, p gopacket.PacketBuilder) error {
- e := &EtherIP{}
- return decodingLayerDecoder(e, data, p)
- }
|