【问题标题】:Data-link layer libraries linux kernel数据链路层库 linux kernel
【发布时间】:2014-02-17 22:25:25
【问题描述】:

我正在实现一个路由协议。为此,我需要知道数据链路层的故障。无论底层数据链路层协议如何,是否都有可用的库,它为我提供了钩子(如 netfilter)来捕获此类信息。

因为,这是一个关于协议的实验,我试图找出是否有任何可用的东西,以便它可以在用户空间上实现,而不是为此编写内核模块。(因为,我对内核编程完全陌生)

任何提示都将非常有帮助。

【问题讨论】:

  • 是否要在链路层捕获丢包?
  • @AmitSinghTomar 不是真的。我希望能够知道数据包是否未在第 2 层传递或丢弃。在重新传输后的 802.11 中,将有一种方法可以将此信息提供给上层,以便采取适当的措施。我需要有关此类挂钩/功能的信息。希望有帮助!
  • 我不确定它对你有什么帮助,但是在 net/8021q/vlan_dev.c 中有一个处理丢包的函数,并且一些用户空间实用程序也可以读取它。

标签: linux linux-kernel network-programming kernel kernel-module


【解决方案1】:

只是猜测:

您可以查看有关您的网络接口的 sysfs 条目(假设您在内核中配置了 sysfs),例如:

cat /sys/class/net/eth0/carrier # 链接运营商状态 1

cat /sys/class/net/eth0/operstate # 应该也是相关的,但是 up #忘记它的意思。

【讨论】:

  • 首先,感谢您介绍 sysfs(我从来不知道有这样的东西存在..)但是看一些例子我不太确定它是否对我有帮助。因为,我需要有关当前在数据链路层执行的数据包的信息,并且要报告同一数据包的故障(如果有),以便我可以在将其发送到网络层之前为其提供另一条路由。希望这有点道理!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
  • 1970-01-01
  • 2021-05-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多