Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 20 additions & 3 deletions pkg/plugin/ebpfwindows/parser_windows.go
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,24 @@ import (

const MaxInt = int(^uint(0) >> 1)
const MessageTypePktmonDrop = 100
const maxCapLength uint16 = 128

type PktmonPacketType uint8

// pktmon packet types
const (
PktMonPayloadUnknown PktmonPacketType = iota
PktMonPayloadEthernet
PktMonPayloadWiFi
PktMonPayloadIP
PktMonPayloadHTTP
PktMonPayloadTCP
PktMonPayloadUDP
PktMonPayloadARP
PktMonPayloadICMP
PktMonPayloadESP
PktMonPayloadAH
PktMonPayloadL4Payload
)

// Parser is a parser for L3/L4 payloads
type Parser struct {
Expand Down Expand Up @@ -230,9 +247,9 @@ func (p *Parser) decode(data []byte, decoded *pb.Flow) error {
var err error
if pdn != nil {
switch pdn.PktmonHeader.Metadata.PacketType {
case 1:
case uint16(PktMonPayloadEthernet):
err = p.packet.decLayerL2Dev.DecodeLayers(data[packetOffset:], &p.packet.Layers)
case 3:
case uint16(PktMonPayloadIP):
switch data[packetOffset] >> 4 {
case 0x4:
err = p.packet.decLayerL3Dev.IPv4.DecodeLayers(data[packetOffset:], &p.packet.Layers)
Expand Down
Loading