我必须通过修改Linux内核源代码来稍微改变TCP拥塞控制算法。但要检查resutl是否正确,我需要记录MAC或IP地址的信息。
我使用PRINTK函数为内核打印消息。但我觉得很难打印出主机的MAC / IP地址。
printk(“%pM \ n”,mac)
但是mac指的是什么? 在TCP源代码中,我经常使用skbuff或sock结构。
谢谢。
更新:
struct iphdr *iph = ip_hdr(skb);
printk(KERN_DEBUG "%pI4", iph->saddr);
答案 0 :(得分:1)
Linux记录文件captureOutput(_ output: _AVCaptureOutput!, didOutputMetadataObjects: [Any]!, from connection: AVCaptureConnection!)
中的printk
格式说明符扩展,作为内核源代码的一部分。对于你的例子,
Documentation/printk-formats.txt
传递的参数是指向要打印的IP地址的指针(skbuff,套接字结构等)。
答案 1 :(得分:0)
printk("(%pM) ", lp->mac);
我发现它使用此命令
grep -R "mac)" * | grep printk
如果您可以告诉我们您当前正在处理哪个文件/行,可能会更容易提供帮助。