Linux路由相关函数数据跟踪浅析
1.int ip_rcv()函数 该函数在Linux2.6.34\net\ipv4\Ip_input.c
该函数是在L2调用deliver_skb()是调用的,当然它的数据包类型ptype=ETH_P_IP。这里主要是对收上来的数据包进行一些验证其合法性,然后就交给了ip_rcv_finish()函数继续处理。
2.ip_rcv_finish()函数 Ip_rcv_finish()在Linux2.6.34\net\ipv4\Ip_input.c
Ip_rcv_finish()函数是之后所有函数的归属函数,因为最后的最后还是要返回这个函数来调用dst_input()函数来继续调用ip_local_deliver()或ip_forward()。该函数主要是调用了ip_route_input()函数来对IP数据包进行路由查找和设置路由信息。Ip_route_input()函数在Linux2.6.34\net\ipv4\Route.c