网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
来源:互联网 发布:网络打字员骗局 编辑:程序博客网 时间:2024/05/19 04:03
在驱动程序中要支持传输超时处理,只需要实现net_device的watchtimeo和net_device_ops中的ndo_tx_timeout函数。
1】watchdog_timeo
【作用】用于实现传出超时的时间设定。
1】ndo_tx_timeout
【作用】在发送队列停止(netif_queue_stopped(dev)返回1),且watchdog_timeo到期的时候,内核网络子系统会调用ndo_tx_timeout来进行处理
即在驱动中完成以下成员的赋值:
ndev->watchdog_timeo = NIC_TX_TIMEOUT;//设置超时的时间
static const struct net_device_ops nic_netdev_ops = {
.....
.ndo_tx_timeout = nic_net_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);
}
- [转] 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
- 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
- 网卡驱动:传输超时watchdog_timeo/ndo_tx_timeout
- 网卡驱动:传输超时watchdog_timeo/ndo_tx_timeout
- perl实现超时机制综述
- Java任务超时处理机制实现
- Netty 超时机制及心跳程序实现
- Netty 超时机制及心跳程序实现
- Linux-千兆网卡驱动实现机制浅析
- Linux-千兆网卡驱动实现机制浅析
- Linux-千兆网卡驱动实现机制浅析
- Linux-千兆网卡驱动实现机制浅析
- Linux-千兆网卡驱动实现机制浅析
- Linux-千兆网卡驱动实现机制浅析
- Linux-千兆网卡驱动实现机制浅析
- 如何用信号来实现超时的读写机制
- 用CancellableTask实现TCP连接请求超时机制
- Linux 多线程等待超时机制的实现:pthread_mutex_lock/pthread_cond_signal/pthread_mutex_unlock
- 程序设计周报
- react native实现原理解析(从源码入手,nice)
- myEclipse中的web项目直接引入到eclipse中运行
- 人为什么会打喷嚏?
- 设计模式之观察者模式(气象站案例)
- 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
- 线上问题处理
- 解决Oledb连接Excel数据类型不统一的问题
- java.lang.ClassNotFoundException org.springframework.web.servlet.DispatcherServlet 解决办法
- 常用统计学回归模型应用场景与python实现方法
- SQL的主键和外键约束
- ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderExce
- 感冒为什么会流鼻涕?
- Java web项目设置默认主页