Comments on: Printing sk_buff data https://olegkutkov.me/2019/10/17/printing-sk_buff-data/ Programming, electronics and diy projects Mon, 26 Sep 2022 02:54:20 +0000 hourly 1 https://wordpress.org/?v=6.5.3 By: Ethelene Xiong https://olegkutkov.me/2019/10/17/printing-sk_buff-data/#comment-1372 Mon, 26 Sep 2022 02:54:20 +0000 http://olegkutkov.me/?p=953#comment-1372 why the len is not the “len = skb->tail – skb->mac_header;”?

]]>
By: Netfilter Kernel module doesn't get the ftp packets' data – MVR https://olegkutkov.me/2019/10/17/printing-sk_buff-data/#comment-1243 Sun, 27 Mar 2022 06:13:45 +0000 http://olegkutkov.me/?p=953#comment-1243 […] Here is my code. And I wirte a pkt_hex_dump functioin to dump all my packets’s bytes above the Internet layer(Include Internet layer) accroding to this Printing sk_buff data: […]

]]>
By: tomkcook https://olegkutkov.me/2019/10/17/printing-sk_buff-data/#comment-1027 Wed, 21 Apr 2021 09:02:33 +0000 http://olegkutkov.me/?p=953#comment-1027 In reply to tomkcook.

Though of course printk("%06x\t%02x ", ii, data[ii++]) is undefined – you need to move the increment to a separate statement.

]]>
By: Joseph Cheng https://olegkutkov.me/2019/10/17/printing-sk_buff-data/#comment-1026 Wed, 21 Apr 2021 00:29:26 +0000 http://olegkutkov.me/?p=953#comment-1026 Is it possible to print unfragmented ping message , ” ping -l 8972 -f 192.168.0.108 –t” , sent from another computer ?

Thanks.

]]>
By: tomkcook https://olegkutkov.me/2019/10/17/printing-sk_buff-data/#comment-1025 Tue, 20 Apr 2021 20:27:47 +0000 http://olegkutkov.me/?p=953#comment-1025 Might I humbly suggest the following which is somewhat simpler and has much the same effect:

void dump_skb(struct sk_buff *skb) {
size_t len;
printk("Packet hex dump:\n");
uint8_t *data = (uint8_t *) skb_mac_header(skb);

if (skb_is_nonlinear(skb)) {
len = skb->data_len;
} else {
len = skb->len;
}

for (size_t ii = 0; ii < len; ++ii) {
printk("%06x\t%02x ", ii, data[ii++]);

for (; ii < len && (ii % 16 != 0); ++ii) {
printk(KERN_CONT "%02x ", (uint32_t)(data[ii]));
}
printk(KERN_CONT "\n");
}
}

In particular, using %06d as a format specifier and then adding 10 to li every time you print a row of 16 bytes is pretty horrible…

]]>
By: gregoireg https://olegkutkov.me/2019/10/17/printing-sk_buff-data/#comment-928 Wed, 12 Aug 2020 16:12:40 +0000 http://olegkutkov.me/?p=953#comment-928 Very very useful page. Thank you for writing this.

]]>
By: anuj https://olegkutkov.me/2019/10/17/printing-sk_buff-data/#comment-768 Mon, 15 Jun 2020 11:01:20 +0000 http://olegkutkov.me/?p=953#comment-768 This was very helpful, thanks 😀

]]>