Skip to content

Commit aa9a7dc

Browse files
authored
Merge pull request #31 from LakshK98/fix-generation
padding fix
2 parents 58c9b89 + c2053cc commit aa9a7dc

3 files changed

Lines changed: 22 additions & 21 deletions

File tree

pkg/plugin/ebpfwindows/datapath_drop_windows.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -96,22 +96,22 @@ func (n *PktmonDropNotify) decodePktmonDrop(data []byte) error {
9696
if l := len(data); l < dropNotifyV1Len {
9797
return fmt.Errorf("%w: expected at least %d but got %d", errUnexpectedDropNotifyLength, dropNotifyV1Len, l)
9898
}
99-
version := byteorder.Native.Uint16(data[1:3])
99+
version := byteorder.Native.Uint16(data[2:4])
100100

101101
// Check against max version.
102102
if version > DropNotifyVersion1 {
103103
return fmt.Errorf("%w: Unrecognized pktmon drop event version %d\nRaw data bytes: %v\nType: %d\nVersion (bytes 1-2): %v (uint16: %d)\nSubType: %d\nSource (bytes 4-5): %v (uint16: %d)\nHash (bytes 6-9): %v (uint32: %d)\nOrigLen (bytes 10-13): %v (uint32: %d)\nCapLen (bytes 14-15): %v (uint16: %d)\nSrcLabel (bytes 16-19): %v (uint32: %d)\nDstLabel (bytes 20-23): %v (uint32: %d)\nDstID (bytes 24-27): %v (uint32: %d)\nLine (bytes 28-29): %v (uint16: %d)\nFile (byte 30): %d\nExtError (byte 31): %d\nIfindex (bytes 32-35): %v (uint32: %d)",
104104
errInvalidDropNotifyVersion, version,
105105
data,
106106
data[0],
107-
data[1:3], version,
108-
data[3],
109-
data[4:6], byteorder.Native.Uint16(data[4:6]),
110-
data[6:10], byteorder.Native.Uint32(data[6:10]),
111-
data[10:14], byteorder.Native.Uint32(data[10:14]),
112-
data[14:16], byteorder.Native.Uint16(data[14:16]),
113-
data[16:20], byteorder.Native.Uint32(data[16:20]),
114-
data[20:24], byteorder.Native.Uint32(data[20:24]),
107+
data[2:4], version,
108+
data[4],
109+
data[6:8], byteorder.Native.Uint16(data[6:8]),
110+
data[8:12], byteorder.Native.Uint32(data[8:12]),
111+
data[12:16], byteorder.Native.Uint32(data[12:16]),
112+
data[16:18], byteorder.Native.Uint16(data[16:18]),
113+
data[18:22], byteorder.Native.Uint32(data[18:22]),
114+
data[22:26], byteorder.Native.Uint32(data[22:26]),
115115
data[24:28], byteorder.Native.Uint32(data[24:28]),
116116
data[28:30], byteorder.Native.Uint16(data[28:30]),
117117
data[30],
@@ -122,11 +122,11 @@ func (n *PktmonDropNotify) decodePktmonDrop(data []byte) error {
122122

123123
// Decode logic for version >= v0/v1.
124124
n.Type = data[0]
125-
n.SubType = data[3]
126-
n.Source = byteorder.Native.Uint16(data[4:6])
127-
n.Hash = byteorder.Native.Uint32(data[6:10])
128-
n.OrigLen = byteorder.Native.Uint32(data[10:14])
129-
n.CapLen = byteorder.Native.Uint16(data[14:16])
125+
n.SubType = data[4]
126+
n.Source = byteorder.Native.Uint16(data[6:8])
127+
n.Hash = byteorder.Native.Uint32(data[8:12])
128+
n.OrigLen = byteorder.Native.Uint32(data[12:16])
129+
n.CapLen = byteorder.Native.Uint16(data[16:18])
130130
n.Version = version
131131
n.SrcLabel = identity.NumericIdentity(byteorder.Native.Uint32(data[16:20]))
132132
n.DstLabel = identity.NumericIdentity(byteorder.Native.Uint32(data[20:24]))

pkg/plugin/ebpfwindows/parser_windows.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,7 @@ func (p *Parser) decode(data []byte, decoded *pb.Flow) error {
203203
if err := DecodePktmonDrop(data, dn); err != nil {
204204
return fmt.Errorf("failed to parse pktmon drop here: %w", err)
205205
}
206+
slog.Info("Pktmon DropNotify", "DropNotify", dn)
206207
eventSubType = dn.SubType
207208
offset = dn.DataOffset()
208209
if offset > uint(MaxInt) {

test/e2e/tools/event-writer/bpf_event_writer.c

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,13 @@ void create_pktmon_drop_event(struct pktmon_notify* drp_elm)
139139
drp_elm->len_orig = 128;
140140
drp_elm->len_cap = 128;
141141
drp_elm->version = 1;
142-
drp_elm->src_label = 0;
143-
drp_elm->dst_label = 0;
144-
drp_elm->dst_id = 0;
145-
drp_elm->line = 0;
146-
drp_elm->file = 0;
147-
drp_elm->ext_error = 0;
148-
drp_elm->ifindex = 0;
142+
drp_elm->src_label = 5;
143+
drp_elm->dst_label = 257;
144+
drp_elm->dst_id = 3;
145+
drp_elm->line = 14;
146+
drp_elm->file = 22;
147+
drp_elm->ext_error = 2;
148+
drp_elm->ifindex = 12;
149149
}
150150

151151
int

0 commit comments

Comments
 (0)