aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/github.com/google/gopacket/layers/usb.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/google/gopacket/layers/usb.go')
-rw-r--r--vendor/github.com/google/gopacket/layers/usb.go308
1 files changed, 0 insertions, 308 deletions
diff --git a/vendor/github.com/google/gopacket/layers/usb.go b/vendor/github.com/google/gopacket/layers/usb.go
deleted file mode 100644
index d4f483c..0000000
--- a/vendor/github.com/google/gopacket/layers/usb.go
+++ /dev/null
@@ -1,308 +0,0 @@
-// Copyright 2014 Google, Inc. All rights reserved.
-//
-// Use of this source code is governed by a BSD-style license
-// that can be found in the LICENSE file in the root of the source
-// tree.
-
-package layers
-
-import (
- "encoding/binary"
- "github.com/google/gopacket"
-)
-
-type USBEventType uint8
-
-const (
- USBEventTypeSubmit USBEventType = 'S'
- USBEventTypeComplete USBEventType = 'C'
- USBEventTypeError USBEventType = 'E'
-)
-
-func (a USBEventType) String() string {
- switch a {
- case USBEventTypeSubmit:
- return "SUBMIT"
- case USBEventTypeComplete:
- return "COMPLETE"
- case USBEventTypeError:
- return "ERROR"
- default:
- return "Unknown event type"
- }
-}
-
-type USBRequestBlockSetupRequest uint8
-
-const (
- USBRequestBlockSetupRequestGetStatus USBRequestBlockSetupRequest = 0x00
- USBRequestBlockSetupRequestClearFeature USBRequestBlockSetupRequest = 0x01
- USBRequestBlockSetupRequestSetFeature USBRequestBlockSetupRequest = 0x03
- USBRequestBlockSetupRequestSetAddress USBRequestBlockSetupRequest = 0x05
- USBRequestBlockSetupRequestGetDescriptor USBRequestBlockSetupRequest = 0x06
- USBRequestBlockSetupRequestSetDescriptor USBRequestBlockSetupRequest = 0x07
- USBRequestBlockSetupRequestGetConfiguration USBRequestBlockSetupRequest = 0x08
- USBRequestBlockSetupRequestSetConfiguration USBRequestBlockSetupRequest = 0x09
- USBRequestBlockSetupRequestSetIdle USBRequestBlockSetupRequest = 0x0a
-)
-
-func (a USBRequestBlockSetupRequest) String() string {
- switch a {
- case USBRequestBlockSetupRequestGetStatus:
- return "GET_STATUS"
- case USBRequestBlockSetupRequestClearFeature:
- return "CLEAR_FEATURE"
- case USBRequestBlockSetupRequestSetFeature:
- return "SET_FEATURE"
- case USBRequestBlockSetupRequestSetAddress:
- return "SET_ADDRESS"
- case USBRequestBlockSetupRequestGetDescriptor:
- return "GET_DESCRIPTOR"
- case USBRequestBlockSetupRequestSetDescriptor:
- return "SET_DESCRIPTOR"
- case USBRequestBlockSetupRequestGetConfiguration:
- return "GET_CONFIGURATION"
- case USBRequestBlockSetupRequestSetConfiguration:
- return "SET_CONFIGURATION"
- case USBRequestBlockSetupRequestSetIdle:
- return "SET_IDLE"
- default:
- return "UNKNOWN"
- }
-}
-
-type USBTransportType uint8
-
-const (
- USBTransportTypeTransferIn USBTransportType = 0x80 // Indicates send or receive
- USBTransportTypeIsochronous USBTransportType = 0x00 // Isochronous transfers occur continuously and periodically. They typically contain time sensitive information, such as an audio or video stream.
- USBTransportTypeInterrupt USBTransportType = 0x01 // Interrupt transfers are typically non-periodic, small device "initiated" communication requiring bounded latency, such as pointing devices or keyboards.
- USBTransportTypeControl USBTransportType = 0x02 // Control transfers are typically used for command and status operations.
- USBTransportTypeBulk USBTransportType = 0x03 // Bulk transfers can be used for large bursty data, using all remaining available bandwidth, no guarantees on bandwidth or latency, such as file transfers.
-)
-
-func (a USBTransportType) LayerType() gopacket.LayerType {
- return USBTypeMetadata[a].LayerType
-}
-
-func (a USBTransportType) String() string {
- switch a {
- case USBTransportTypeTransferIn:
- return "Transfer In"
- case USBTransportTypeIsochronous:
- return "Isochronous"
- case USBTransportTypeInterrupt:
- return "Interrupt"
- case USBTransportTypeControl:
- return "Control"
- case USBTransportTypeBulk:
- return "Bulk"
- default:
- return "Unknown transport type"
- }
-}
-
-type USBDirectionType uint8
-
-const (
- USBDirectionTypeUnknown USBDirectionType = iota
- USBDirectionTypeIn
- USBDirectionTypeOut
-)
-
-func (a USBDirectionType) String() string {
- switch a {
- case USBDirectionTypeIn:
- return "In"
- case USBDirectionTypeOut:
- return "Out"
- default:
- return "Unknown direction type"
- }
-}
-
-// The reference at http://www.beyondlogic.org/usbnutshell/usb1.shtml contains more information about the protocol.
-type USB struct {
- BaseLayer
- ID uint64
- EventType USBEventType
- TransferType USBTransportType
- Direction USBDirectionType
- EndpointNumber uint8
- DeviceAddress uint8
- BusID uint16
- TimestampSec int64
- TimestampUsec int32
- Setup bool
- Data bool
- Status int32
- UrbLength uint32
- UrbDataLength uint32
-
- UrbInterval uint32
- UrbStartFrame uint32
- UrbCopyOfTransferFlags uint32
- IsoNumDesc uint32
-}
-
-func (u *USB) LayerType() gopacket.LayerType { return LayerTypeUSB }
-
-func (m *USB) NextLayerType() gopacket.LayerType {
- if m.Setup {
- return LayerTypeUSBRequestBlockSetup
- } else if m.Data {
- }
-
- return m.TransferType.LayerType()
-}
-
-func decodeUSB(data []byte, p gopacket.PacketBuilder) error {
- d := &USB{}
-
- return decodingLayerDecoder(d, data, p)
-}
-
-func (m *USB) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error {
- m.ID = binary.LittleEndian.Uint64(data[0:8])
- m.EventType = USBEventType(data[8])
- m.TransferType = USBTransportType(data[9])
-
- m.EndpointNumber = data[10] & 0x7f
- if data[10]&uint8(USBTransportTypeTransferIn) > 0 {
- m.Direction = USBDirectionTypeIn
- } else {
- m.Direction = USBDirectionTypeOut
- }
-
- m.DeviceAddress = data[11]
- m.BusID = binary.LittleEndian.Uint16(data[12:14])
-
- if uint(data[14]) == 0 {
- m.Setup = true
- }
-
- if uint(data[15]) == 0 {
- m.Data = true
- }
-
- m.TimestampSec = int64(binary.LittleEndian.Uint64(data[16:24]))
- m.TimestampUsec = int32(binary.LittleEndian.Uint32(data[24:28]))
- m.Status = int32(binary.LittleEndian.Uint32(data[28:32]))
- m.UrbLength = binary.LittleEndian.Uint32(data[32:36])
- m.UrbDataLength = binary.LittleEndian.Uint32(data[36:40])
-
- m.Contents = data[:40]
- m.Payload = data[40:]
-
- if m.Setup {
- m.Payload = data[40:]
- } else if m.Data {
- m.Payload = data[uint32(len(data))-m.UrbDataLength:]
- }
-
- // if 64 bit, dissect_linux_usb_pseudo_header_ext
- if false {
- m.UrbInterval = binary.LittleEndian.Uint32(data[40:44])
- m.UrbStartFrame = binary.LittleEndian.Uint32(data[44:48])
- m.UrbDataLength = binary.LittleEndian.Uint32(data[48:52])
- m.IsoNumDesc = binary.LittleEndian.Uint32(data[52:56])
- m.Contents = data[:56]
- m.Payload = data[56:]
- }
-
- // crc5 or crc16
- // eop (end of packet)
-
- return nil
-}
-
-type USBRequestBlockSetup struct {
- BaseLayer
- RequestType uint8
- Request USBRequestBlockSetupRequest
- Value uint16
- Index uint16
- Length uint16
-}
-
-func (u *USBRequestBlockSetup) LayerType() gopacket.LayerType { return LayerTypeUSBRequestBlockSetup }
-
-func (m *USBRequestBlockSetup) NextLayerType() gopacket.LayerType {
- return gopacket.LayerTypePayload
-}
-
-func (m *USBRequestBlockSetup) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error {
- m.RequestType = data[0]
- m.Request = USBRequestBlockSetupRequest(data[1])
- m.Value = binary.LittleEndian.Uint16(data[2:4])
- m.Index = binary.LittleEndian.Uint16(data[4:6])
- m.Length = binary.LittleEndian.Uint16(data[6:8])
- m.Contents = data[:8]
- m.Payload = data[8:]
- return nil
-}
-
-func decodeUSBRequestBlockSetup(data []byte, p gopacket.PacketBuilder) error {
- d := &USBRequestBlockSetup{}
- return decodingLayerDecoder(d, data, p)
-}
-
-type USBControl struct {
- BaseLayer
-}
-
-func (u *USBControl) LayerType() gopacket.LayerType { return LayerTypeUSBControl }
-
-func (m *USBControl) NextLayerType() gopacket.LayerType {
- return gopacket.LayerTypePayload
-}
-
-func (m *USBControl) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error {
- m.Contents = data
- return nil
-}
-
-func decodeUSBControl(data []byte, p gopacket.PacketBuilder) error {
- d := &USBControl{}
- return decodingLayerDecoder(d, data, p)
-}
-
-type USBInterrupt struct {
- BaseLayer
-}
-
-func (u *USBInterrupt) LayerType() gopacket.LayerType { return LayerTypeUSBInterrupt }
-
-func (m *USBInterrupt) NextLayerType() gopacket.LayerType {
- return gopacket.LayerTypePayload
-}
-
-func (m *USBInterrupt) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error {
- m.Contents = data
- return nil
-}
-
-func decodeUSBInterrupt(data []byte, p gopacket.PacketBuilder) error {
- d := &USBInterrupt{}
- return decodingLayerDecoder(d, data, p)
-}
-
-type USBBulk struct {
- BaseLayer
-}
-
-func (u *USBBulk) LayerType() gopacket.LayerType { return LayerTypeUSBBulk }
-
-func (m *USBBulk) NextLayerType() gopacket.LayerType {
- return gopacket.LayerTypePayload
-}
-
-func (m *USBBulk) DecodeFromBytes(data []byte, df gopacket.DecodeFeedback) error {
- m.Contents = data
- return nil
-}
-
-func decodeUSBBulk(data []byte, p gopacket.PacketBuilder) error {
- d := &USBBulk{}
- return decodingLayerDecoder(d, data, p)
-}