1234567891011121314151617181920212223242526272829303132333435363738394041 |
- package layers
- import (
- "github.com/google/gopacket"
- "net"
- )
- type FDDI struct {
- BaseLayer
- FrameControl FDDIFrameControl
- Priority uint8
- SrcMAC, DstMAC net.HardwareAddr
- }
- func (f *FDDI) LayerType() gopacket.LayerType { return LayerTypeFDDI }
- func (f *FDDI) LinkFlow() gopacket.Flow {
- return gopacket.NewFlow(EndpointMAC, f.SrcMAC, f.DstMAC)
- }
- func decodeFDDI(data []byte, p gopacket.PacketBuilder) error {
- f := &FDDI{
- FrameControl: FDDIFrameControl(data[0] & 0xF8),
- Priority: data[0] & 0x07,
- SrcMAC: net.HardwareAddr(data[1:7]),
- DstMAC: net.HardwareAddr(data[7:13]),
- BaseLayer: BaseLayer{data[:13], data[13:]},
- }
- p.SetLinkLayer(f)
- p.AddLayer(f)
- return p.NextDecoder(f.FrameControl)
- }
|