如何在Linux内核中跟踪传出ICMP包的代码路径?

时间:2014-06-02 04:42:39

标签: c debugging linux-kernel kernel kernel-module

我想知道Linux内核的POST_ROUTING之后,输出ICMP数据包的代码路径是什么?调用哪些函数? 传出ICMP数据包的函数调用顺序是什么?我可以通过ftrace找到这个序列吗?

例如,是否创建了how this kernel_flow

1 个答案:

答案 0 :(得分:1)

取决于。

ICMP数据包可以通过两种方式发起:

  1. 从用户空间套接字,例如socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)或原始套接字。

  2. 从内核中的网络堆栈,作为某些ICMP事件的结果,例如, ICMP Time Exceeded