网卡驱动:传输超时watchdog_timeo/ndo_tx_timeout
来源:互联网 发布:怎么下载网站数据库 编辑:程序博客网 时间:2024/06/10 04:45
网络子系统提供了对传输超时的处理框架,在驱动程序中要支持传输超时处理,只需要实现net_device的watchtimeo和net_device_ops中的ndo_tx_timeout函数。
{
struct rtl8169_private *tp = netdev_priv(dev);
rtl8169_hw_reset(tp->mmio_addr);
rtl8169_schedule_work(dev, rtl8169_reset_task);
}
1】watchdog_timeo
【作用】用于实现传出超时的时间设定。
1】ndo_tx_timeout
【作用】在发送队列停止(netif_queue_stopped(dev)返回1),且watchdog_timeo到期的时候,内核网络子系统会调用ndo_tx_timeout来进行处理
========用法========
ndo_tx_timeout的实现多种多样,可以根据具体的情况来实现。
关于定时器的信息,参照内核定时器介绍。
在linux2.6内核的rtl8169网卡驱动的实现上,在rtl8169_tx_timeout上就调用了两个函数:
rtl8169_hw_reset()
rtl8169_shedule_work()
其中前一个参数实现了硬件reset。
后一个函数完成了设备缓冲区等初始化任务。
---------------源码---------------
static void rtl8169_tx_timeout(struct net_device *dev){
struct rtl8169_private *tp = netdev_priv(dev);
rtl8169_hw_reset(tp->mmio_addr);
rtl8169_schedule_work(dev, rtl8169_reset_task);
}
0 0
- 网卡驱动:传输超时watchdog_timeo/ndo_tx_timeout
- 网卡驱动:传输超时watchdog_timeo/ndo_tx_timeout
- [转] 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
- 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
- 网卡驱动
- 网卡驱动
- 网卡驱动
- 网卡驱动
- 网卡驱动2----虚拟网卡
- 网卡驱动之虚拟网卡驱动编写
- 网卡驱动之虚拟网卡驱动编写
- 【驱动】DM9000网卡驱动分析
- 网卡驱动移植成功
- Linux网卡驱动
- Linux网卡驱动分析
- Linux网卡驱动分析
- 实例解读网卡驱动
- 虚拟网卡驱动
- Js中如何获取div盒子之下的元素(简单的例子)
- Android Studio上传项目作为lib到jcenter中
- Spring入门详解
- 32145132
- VS2015编译生成nanomsg库文件
- 网卡驱动:传输超时watchdog_timeo/ndo_tx_timeout
- 3214324124
- 4123432141324132
- 123512343124
- 89785784567756
- android findViewById(...)的抽取
- Nuget 引用第三方类库到本地项目
- datatables 使用心得
- Unity错误集锦之插件篇