/*
* 当你使用 ifconfig ethx up、down 时, 这个函数就被执行到了. 知道了它的执行时机了吧 😄
* 比如 : PHY_FORCING -> PHY_RUNNING 切换的时候.
*
* phy 的12种状态中的4种在phy状态机中是归纳为同一种处理的.
* state 叠加了 ? 不论你观不观测它, 它都是4态合一, TMD 量子力学也只有两态吧 😄😄
* 这几天著名的双缝干涉实验看的有点多 .... 😂
*/
static void phy_link_change(struct phy_device *phydev, bool up, bool do_carrier)
{
/*
* 核心动作来了.
* 为了 mac 与 phy 的绑定, kernel 准备了很多. 用兵一时. 好了,这里就拿出mac来了.
* 拿出mac仅仅是为了执行netif_carrier_xx的需要. 在核心函数 如 macb_handle_link_change()
* 也仅仅是为了获取到 phy.
*/
struct net_device *netdev = phydev->attached_dev;
/*
* 这是一个布尔值. 要明白这个值的用意,就必须要理解 phy的状态切换.
*/
if
phy state machine 与 rate --- linux kernel 欣赏
于 2022-10-10 22:48:51 首次发布
本文解析了在Linux内核中,PHY设备状态变化时所触发的处理流程。重点介绍了phy_link_change和macb_handle_link_change两个核心函数,展示了如何通过这些函数更新网络设备的状态,并解释了在不同状态下对网络设备进行配置的具体细节。

最低0.47元/天 解锁文章
978

被折叠的 条评论
为什么被折叠?



