博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
慢慢欣赏linux 网络协议栈二 net_device以及初始化注册
阅读量:4070 次
发布时间:2019-05-25

本文共 1057 字,大约阅读时间需要 3 分钟。

两个基本的数据结构之一:net_device

net_device注册

int register_netdev(struct net_device *dev)	rtnl_lock();	if (strchr(dev->name, '%'))		dev_alloc_name(dev, dev->name);	register_netdevice(dev);	=>int register_netdevice(struct net_device *dev)		//初始化结构体配置		dev->iflink = -1;		if (dev->netdev_ops->ndo_init)			ret = dev->netdev_ops->ndo_init(dev);		ret = dev_get_valid_name(net, dev->name, dev->name, 0);		dev->ifindex = dev_new_index(net);		if (dev->iflink == -1)			dev->iflink = dev->ifindex;		netdev_initialize_kobject(dev);		ret = call_netdevice_notifiers(NETDEV_POST_INIT, dev);		ret = netdev_register_kobject(dev);		dev->reg_state = NETREG_REGISTERED;		//设置初始化状态和队列		set_bit(__LINK_STATE_PRESENT, &dev->state);		dev_init_scheduler(dev);		dev_hold(dev);		list_netdevice(dev);//真正注册,加到3个表里面,一个链表,两个hash表		ret = call_netdevice_notifiers(NETDEV_REGISTER, dev);	rtnl_unlock();

参考文章

网络设备模块初始化(net/core/dev.c/net_dev_init)
https://blog.csdn.net/sun172270102/article/details/80643164

Linux eth0, eth1, ..., eth%d 的生成

https://blog.csdn.net/xiruanliuwei/article/details/78765255

你可能感兴趣的文章
在AutoEncoder中使用tied weight的训练方法
查看>>
最近总结
查看>>
神经网络训练中的训练集、验证集以及测试集合
查看>>
对优化算法的一些感想
查看>>
对随机梯度下降的一些使用心得
查看>>
回馈式(RNN)神经网络中梯度更新的2个经典算法的证明和剖析
查看>>
latex中插入图片的一个备忘
查看>>
LSTM中的推导(LATEX写的)
查看>>
JForum学习 -- ClickstreamFilter
查看>>
UNICODE,GBK,UTF-8区别
查看>>
java.io 对字节流和字符流的讨论
查看>>
java中的字节流和字符流的存储区别
查看>>
如何在Visual Studio 2005 中开发ISO 的c++ 程序
查看>>
Visual c++ 6.0 Socket简单例子
查看>>
C的一些入门常识
查看>>
C++ 静态单链表
查看>>
C ++ 动态单链表 代码
查看>>
strcpy, strcat 的问题
查看>>
Ubuntu 8.0.4 下ipmessenger的安装
查看>>
Ubuntu 8.0.4 下雅黑字体安装
查看>>