Skip to content

Commit f86d5cf

Browse files
committed
drgn.helpers.linux.net: add basic skb_dump helper
Signed-off-by: Mina Almasry <[email protected]>
1 parent 06d475d commit f86d5cf

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

drgn/helpers/linux/net.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
"skb_is_nonlinear",
3636
"skb_tailroom",
3737
"skb_availroom",
38+
"skb_dump",
3839
)
3940

4041

@@ -315,3 +316,32 @@ def skb_mac_header_was_set(skb: Object) -> int:
315316
def skb_transport_header_was_set(skb: Object) -> int:
316317
prog = skb.prog_
317318
return skb.transport_header != 65535;
319+
320+
321+
def skb_dump(skb: Object) -> None:
322+
prog = skb.prog_
323+
324+
headroom = skb_headroom(skb)
325+
tailroom = skb_tailroom(skb)
326+
sh = skb_shinfo(skb)
327+
328+
has_mac = skb_mac_header_was_set(skb)
329+
has_trans = skb_transport_header_was_set(skb)
330+
331+
print("skb len=%u headroom=%u headlen=%u tailroom=%u\n"
332+
"mac=(%d,%d) net=(%d,%d) trans=%d\n"
333+
"shinfo(txflags=%u nr_frags=%u gso(size=%hu type=%u segs=%hu))\n"
334+
"csum(0x%x ip_summed=%u complete_sw=%u valid=%u level=%u)\n"
335+
"hash(0x%x sw=%u l4=%u) proto=0x%04x pkttype=%u iif=%d\n" %
336+
(skb.len, headroom, skb_headlen(skb), tailroom,
337+
skb.mac_header if has_mac else -1,
338+
skb_mac_header_len(skb) if has_mac else -1,
339+
skb.network_header,
340+
skb_network_header_len(skb) if has_trans else -1,
341+
skb.transport_header if has_trans else -1,
342+
sh.tx_flags, sh.nr_frags,
343+
sh.gso_size, sh.gso_type, sh.gso_segs,
344+
skb.csum, skb.ip_summed, skb.csum_complete_sw,
345+
skb.csum_valid, skb.csum_level,
346+
skb.hash, skb.sw_hash, skb.l4_hash,
347+
skb.protocol, skb.pkt_type, skb.skb_iif))

0 commit comments

Comments
 (0)