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

时间:2008-11-25 14:47:08

标签: networking ethernet

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

我敢说这可以在像Linux这样的东西中找到,我现在就去看看,但是如果有人有一个很好的参考我会感兴趣。

我感兴趣的是它是否真正联系起来,以及它与之相关联的内容,而不是每一端在一开始就广告宣传的巨大可能性。

2 个答案:

答案 0 :(得分:1)

感谢您的回答。它旨在作为语言和平台无关的问题,因为几乎所有MII / GMII以太网PHY都具有相同的基本寄存器。我碰巧在嵌入式平台上。

但是我发现了一个合理的序列,通过查看Linux驱动程序源的各个部分,对于我的受限应用程序来说已经足够了 - 它基本上是:

检查基本状态(0x1)中的链接 如果链接已启动,则检查基本状态(0x1)中的协商完成情况 如果协商完成,则在1000M状态寄存器(0xa)中检查1G 如果你还没有1G,那么你有100M。 (这不是一般规则,但它适用于此应用程序)

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

答案 1 :(得分:1)

为了帮助您了解Linux内核是如何做到的:虽然每个驱动程序都可以做自己的事情,但是当芯片足够紧密地遵循标准时,应该使用通用版本:Generic Media Independent Interface device support