码迷,mamicode.com
首页 > 系统相关 > 详细

Linux网卡名称的生成规则

时间:2015-01-23 14:45:15      阅读:309      评论:0      收藏:0      [点我收藏+]

标签:kernel   linux   内核   

eth0, eth1这些名称是怎么来的呢?

内核发现一个pci网卡设备,调用网卡驱动的probe函数。

probe函数在做完一定的初始化之后,会调用内核接口register_netdev向内核注册一个新的net_device设备。


这个设备的名字,网卡驱动程序往往只决定其中一部分。
就像下面这种方式,网卡驱动提供一个“eth%d”这样的名称,然后调用内核接口register_netdev。
strcpy(netdev->name, "eth%d");
register_netdev(netdev);


register_netdev流程中,会根据系统中已有的接口情况,找出一个最小的还没有使用的数字编号,分给新注册的网卡。
比如,系统中当前有,eth0, eth2, eth3三块网卡。
那么新注册的网卡,名字就是eth1了。


当然,网卡驱动也可以提供完整的名字,但必须保证名字与现有网卡不冲突。
这在驱动中就不好实现了。而且,一个驱动程序,可能会驱动很多块网卡,怎么起名字,都是个问题。


最后,用户态程序,可以通过ioctl系统调用,去修改网卡的名称。

Linux网卡名称的生成规则

标签:kernel   linux   内核   

原文地址:http://blog.csdn.net/crazycoder8848/article/details/43054887

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!