荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: jjk (UNIX+C+XML+?? 傻了?), 信区: Linux
标  题: ARP的初始化函数分析(转寄)
发信站: 荔园晨风BBS站 (Mon Apr 22 19:48:12 2002), 转信

【 以下文字转载自 jjk 的信箱 】
【 原文由 jjk.bbs@apue.dhs.org 所发表 】
发信人: tl (tl), 信区: UKP
标  题: ARP的初始化函数分析
发信站: UNIX编程 (2002年04月16日20:54:13 星期二), 转信

作者:硅谷农民<mailto:ggnm@kerneldiary.net>

 void __init arp_init (void)
    当系统启动时,调用inet_init来初始化网络子系统。inet_init会调用arp_init()

来初始化ARP的缓存(arp cache),并且注册ARP的接收函数。
实现过程:
 + 调用neigh_table_init初始化ARP缓存,设置ARP定时器,proxy队列,回收阀值等等

 + 调用dev_add_pack注册ARP包类型(arp_packet_type),主要是为了注册ARP的接收
函数。
   dev_add_pack将arp_packet_type放入到网络包类型的哈希表中(ptype_base)。当
系统收到
   ARP包的时候,会调用net_rx_action来遍历ptype_base,从而调用ARP的接收函数(
arp_rcv)
   来处理。
 + 调用proc_net_create在proc文件系统中创建一个表达ARP信息的域,可以通过这个表
动态修改
   ARP的参数。
    void __init arp_init (void)
    {
        neigh_table_init(&arp_tbl);
        dev_add_pack(&arp_packet_type);
        proc_net_create ("arp", 0, arp_get_info);
    #ifdef CONFIG_SYSCTL
        neigh_sysctl_register(NULL, &arp_tbl.parms, NET_IPV4, NET_IPV4_NEIGH
, "ipv4");
    #endif
    }
--------------------------------------------------
硅谷农民,日出而作,一分耕耘,一分收获。

--

    欲慰韶华携吴钩,剑雪刀霜遣风流。
    一蓑烟雨平生事,道无狂嚣亦无愁!

※ 来源:·UNIX编程 apue.dhs.org·[FROM: 166.111.160.6] --
※ 转寄:·UNIX编程 apue.dhs.org·[FROM: 210.39.3.50]
--
※ 转载:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 192.168.0.146]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店