荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: 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软件 网络书店