当前位置: 技术问答>linux和unix
高手给讲讲 fec_enet_rx 收报后的处理过程,还有 fec_enet_tx 发包的组包过程
来源: 互联网 发布时间:2016-04-30
本文导语: 如题 | 这个不是一两句就可以说得清楚的。 fec_enet_rx 最终会调用netif_rx,然后送到上层协议处理。 fec_enet_tx 这个不是核心的transmit函数,只是更新buffer描述符,做一些统计。 真正做transmit...
如题
|
这个不是一两句就可以说得清楚的。
fec_enet_rx 最终会调用netif_rx,然后送到上层协议处理。
fec_enet_tx 这个不是核心的transmit函数,只是更新buffer描述符,做一些统计。
真正做transmit的是dev->hard_start_xmit所指的是函数,即fec_enet_start_xmit,
从硬件角度来看,是写fec_x_des_active寄存器使得skb->data里的数据发送出去。
具体的可以看看 Understanding Linux Network Internals 这本书。
fec_enet_rx 最终会调用netif_rx,然后送到上层协议处理。
fec_enet_tx 这个不是核心的transmit函数,只是更新buffer描述符,做一些统计。
真正做transmit的是dev->hard_start_xmit所指的是函数,即fec_enet_start_xmit,
从硬件角度来看,是写fec_x_des_active寄存器使得skb->data里的数据发送出去。
/* Trigger transmission start */
fecp->fec_x_des_active = 0x01000000;
具体的可以看看 Understanding Linux Network Internals 这本书。