免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 6568 | 回复: 12

[内核入门] 关于eth0接口的一个疑问 [复制链接]

论坛徽章:
0
发表于 2012-07-23 21:33 |显示全部楼层
5可用积分
当执行ifconfig eth0 up 的时候会调用到dev.c中的dev_open函数,将该接口的IFF_UP位置1,我想请问,有线驱动中有同步更新接口状态的函数吗,除了在内核中还能在哪里实时的判断eth0接口的状态时up还是down?  谢谢指点,,这个问题非常着急,知道的朋友还请告知。

最佳答案

查看完整内容

不明白你什么意思,不过要获得内核状态可以去找sys目录下的东东,找了一下发现这个:/sys/class/net/eth0/operstate,可以poll这个文件。另外google一下,有人问这个问题:http://stackoverflow.com/questions/7225888/how-can-i-monitor-the-nic-statusup-down-in-a-c-program-without-polling-the-ker

论坛徽章:
0
发表于 2012-07-23 21:33 |显示全部楼层
不明白你什么意思,不过要获得内核状态可以去找sys目录下的东东,找了一下发现这个:/sys/class/net/eth0/operstate,可以poll这个文件。

另外google一下,有人问这个问题:
http://stackoverflow.com/questio ... out-polling-the-ker

论坛徽章:
0
发表于 2012-07-23 21:43 |显示全部楼层
本帖最后由 tempnamett 于 2012-07-23 21:46 编辑

phy驱动中的phy_device->link记录了ethX的状态。

================================
看错了,这个也是内核里的,

用户态,看看ethtool怎么获取的吧!不知道具体调用哪个system call

论坛徽章:
0
发表于 2012-07-23 21:56 |显示全部楼层
回复 2# tempnamett
今天查了下,也没找到systemcall,,没什么头绪
   

论坛徽章:
0
发表于 2012-07-23 22:07 |显示全部楼层
ioctl(fd, SIOCETHTOOL, &ifr);应该是整个回复 3# 熄灭的太yang


   

论坛徽章:
0
发表于 2012-07-23 22:09 |显示全部楼层
回复 4# tempnamett
好,我先去看看。先谢过。

   

论坛徽章:
0
发表于 2012-07-23 22:26 |显示全部楼层
应用层肯定是通过ioctl来请求查询
ethtool 可以看到网卡状况 你可以参考一下它的相关代码

论坛徽章:
0
发表于 2012-07-23 22:54 |显示全部楼层
回复 4# tempnamett

想起ifconfig.c中ioctl(sockfd, SIOCGIFFLAGS, &ifr) ,可以获取接口的状态。但是主要问题是如何同步获取该接口状态,我之前想法是在dev.c中

dev_open函数中判断接口状态,但是内核中一些函数我无法调用比如system("");,所以要在用户空间判断,那在用户空间如何能做到实时的获取接口状态呢,还望指点,,谢谢!

论坛徽章:
0
发表于 2012-07-23 22:55 |显示全部楼层
回复 6# lenky0401
想起ifconfig.c中ioctl(sockfd, SIOCGIFFLAGS, &ifr) ,可以获取接口的状态。但是主要问题是如何同步获取该接口状态,我之前想法是在dev.c中

dev_open函数中判断接口状态,但是内核中一些函数我无法调用比如system("");,所以要在用户空间判断,那在用户空间如何能做到实时的获取接口状态呢,还望指点,,谢谢!


   

论坛徽章:
0
发表于 2012-07-24 09:45 |显示全部楼层
你的意思是不是当接口状态有变化时,内核能够发通知给用户空间程序。 NETLINK_ROUTE可以实现这种功能。
看手册 man 7 netlink 有文档和例子。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP