亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3435 | 回復(fù): 2
打印 上一主題 下一主題

請教icmp_rcv()是被誰調(diào)用的 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-15 19:57 |只看該作者 |倒序瀏覽
請教高手們,小弟知道ping的時候回是要經(jīng)過icmp.c處理的,請問
(1)ping的時候icmp_rcv()之前是什么函數(shù)調(diào)用了icmp_rcv();
(2)我想通過一張網(wǎng)卡通過第二張網(wǎng)卡轉(zhuǎn)發(fā)后來ping到第三張網(wǎng)卡,請問icmp中哪個函數(shù)有涉及到轉(zhuǎn)發(fā)的處理?
萬分感謝。!

論壇徽章:
0
2 [報告]
發(fā)表于 2011-12-16 09:18 |只看該作者
1)我沒看代碼,猜的話應(yīng)該是類似的ip_rcv()的函數(shù)會調(diào)用icmp_rcv;
2)應(yīng)該有個ip_forward()吧。

論壇徽章:
0
3 [報告]
發(fā)表于 2011-12-16 14:59 |只看該作者
本帖最后由 cuic139 于 2011-12-16 17:23 編輯

代碼流程里是在inet_init函數(shù)里
注冊上的處理函數(shù),底層判斷為icmp就去調(diào)用相關(guān)的rcv函數(shù)
  1.         if (inet_add_protocol(&icmp_protocol, IPPROTO_ICMP) < 0)
  2.                 printk(KERN_CRIT "inet_init: Cannot add ICMP protocol\n");
  3.         if (inet_add_protocol(&udp_protocol, IPPROTO_UDP) < 0)
  4.                 printk(KERN_CRIT "inet_init: Cannot add UDP protocol\n");
  5.         if (inet_add_protocol(&tcp_protocol, IPPROTO_TCP) < 0)
  6.                 printk(KERN_CRIT "inet_init: Cannot add TCP protocol\n");
復(fù)制代碼
  1. static const struct net_protocol icmp_protocol = {
  2.         .handler =        icmp_rcv,
  3.         .no_policy =        1,
  4.         .netns_ok =        1,
  5. };
復(fù)制代碼
具體轉(zhuǎn)發(fā)流程你可以在icmp_rcv里面加一個dump_stack,然后dmesg看一下就全都出來了

協(xié)議棧大致的轉(zhuǎn)發(fā)流程見版主的帖子
http://www.72891.cn/thread-1960601-1-1.html
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP