linux内核网络代码,linux内核网络栈代码的准备知识有哪些?

协议初始化此处主要列举inet协议的初始化过程。staticint__initinet_init(void){structsk_buff*dummy_skb;structinet_protocol*p;structinet_protosw*q;structlist_head*r;printk(KERN_INFO"NET4:LinuxTCP/IP1。  0forNET4。0\n");if(sizeof(structinet_skb_parm)>sizeof(dummy_skb->cb)){printk(KERN_CRIT"inet_proto_init:panic\n");return-EINVAL;}/**TellSOCKETthatwearealive。  。。注册socket,告诉socketinet类型的地址族已经准备好了*/(void)sock_register(&inet_family_ops);/**Addalltheprotocols。包括arp,ip、ICMP、UPD、tcp_v4、tcp、igmp的初始化,主要初始化各种协议对应的inode和socket变量。  其中arp_init完成系统中路由部分neighbour表的初始化ip_init完成ip协议的初始化。在这两个函数中,都通过定义一个packet_type结构的变量将这种数据包对应的协议发送数据、允许发送设备都做初始化。*/printk(KERN_INFO"IPProtocols:");for(p=inet_protocol_base;p!=NULL;){structinet_protocol*tmp=(structinet_protocol*)p->next;inet_add_protocol(p);printk("%s%s",p->name,tmp?",":"\n");p=tmp;}/*Registerthesocket-sideinformationforinet_create。  */for(r=&inetsw[0];r<&inetsw[SOCK_MAX];++r)INIT_LIST_HEAD(r);for(q=inetsw_array;q<&inetsw_array[INETSW_ARRAY_LEN];++q)inet_register_protosw(q)。

阅读全文 >

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值