1 // Copyright 2012 Google, Inc. All rights reserved.
3 // Use of this source code is governed by a BSD-style license
4 // that can be found in the LICENSE file in the root of the source
10 "github.com/google/gopacket"
14 // FDDI contains the header for FDDI frames.
17 FrameControl FDDIFrameControl
19 SrcMAC, DstMAC net.HardwareAddr
22 // LayerType returns LayerTypeFDDI.
23 func (f *FDDI) LayerType() gopacket.LayerType { return LayerTypeFDDI }
25 // LinkFlow returns a new flow of type EndpointMAC.
26 func (f *FDDI) LinkFlow() gopacket.Flow {
27 return gopacket.NewFlow(EndpointMAC, f.SrcMAC, f.DstMAC)
30 func decodeFDDI(data []byte, p gopacket.PacketBuilder) error {
32 FrameControl: FDDIFrameControl(data[0] & 0xF8),
33 Priority: data[0] & 0x07,
34 SrcMAC: net.HardwareAddr(data[1:7]),
35 DstMAC: net.HardwareAddr(data[7:13]),
36 BaseLayer: BaseLayer{data[:13], data[13:]},
40 return p.NextDecoder(f.FrameControl)