Networking 寻找网络链路速度确定算法

Networking 寻找网络链路速度确定算法,networking,ethernet,Networking,Ethernet,我正在寻找解释标准以太网PHY寄存器的最佳方法,以确定以太网链路实际运行的速度。(例如10/100/1000和全/半双工) 我敢说这是可以在Linux之类的源代码中找到的,我现在就去看看,但是如果有人有一个好的参考资料,我会感兴趣的 我感兴趣的是它是否真的链接以及链接的内容,而不是每个终端在一开始就宣传的浩瀚的可能性海洋。谢谢你的回答。这是一个语言和平台不可知的问题,因为几乎所有MII/GMII以太网物理都有相同的基本寄存器。我正好在一个嵌入式平台上 但是,通过查看Linux驱动程序源代码的各个

我正在寻找解释标准以太网PHY寄存器的最佳方法,以确定以太网链路实际运行的速度。(例如10/100/1000和全/半双工)

我敢说这是可以在Linux之类的源代码中找到的,我现在就去看看,但是如果有人有一个好的参考资料,我会感兴趣的


我感兴趣的是它是否真的链接以及链接的内容,而不是每个终端在一开始就宣传的浩瀚的可能性海洋。

谢谢你的回答。这是一个语言和平台不可知的问题,因为几乎所有MII/GMII以太网物理都有相同的基本寄存器。我正好在一个嵌入式平台上

但是,通过查看Linux驱动程序源代码的各个部分,我发现了一个适合我的受限应用程序的合理序列-基本上是:

检查处于基本状态(0x1)的链接 如果链接已启动,则在基本状态(0x1)下检查协商是否已完成 如果协商完成,则检查1000M状态寄存器中是否有1G(0xa) 如果你没有1克,那么你就有100米。(这不是一般规则,但适用于本申请)


也许这真的是一个硬件问题,而不是软件问题…

来帮助您了解Linux内核是如何做到的:虽然每个驱动程序都可以做自己的事情,但当芯片足够严格地遵循标准时,应该使用一个通用版本:。

同意-更多的是一个硬件问题为什么否决?我知道他已经提到了Linux,但我指出了在Linux内核源代码中可以找到它的确切位置。