网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
在驱动程序中要支持传输超时处理,只需要实现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相关推荐
- 使用druid连接池的超时回收机制排查连接泄露问题
参考:http://www.cnblogs.com/netcorner/p/4380949.html 在工程中使用了druid连接池,运行一段时间后系统出现异常: Caused by: org.spr ...
- TCP之超时重传机制
TCP协议是一种面向连接的可靠的传输层协议,它保证了数据的可靠传输,对于一些出错.超时丢包等问题TCP设计了超时重传机制,其基本原理:在发送一个数据之后,就开启一个定时器,若是在这个时间内没有收到发送 ...
- TCP协议可靠性保证(确认应答机制,超时重传机制,流量控制,拥塞窗口)
上一次我们知道了TCP协议通过连接管理机制保证可靠性,今天我们继续来看一看TCP协议中其他几种保证可靠性的方法. · 确认应答机制 · 超时重传机制 · 流量控制 · 拥塞窗口 确认应答机制 ...
- 4-5:TCP协议之确认应答(ACK)机制和超时重传机制
文章目录 一:TCP的确认应答(ACK)机制 二:超时重传机制 一:TCP的确认应答(ACK)机制 在TCP中,当发送端的数据达到接收主机时,接收端主机会返回一个已收到消息的通知,这个消息叫做ACK( ...
- TCP/IP协议栈:TCP超时重传机制
目录 基础概念 重传超时时间RTO RTO的设定 连接往返时间RTT RTT的计算 Karn算法 往返时间测量 重传 拥塞避免算法 快速重传和快速恢复算法 重新分组 网络数据包丢失,重传和重复确认 是 ...
- 计算机网络超时重传时间,TCP超时重传机制
超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止.[1] 中文名 ...
- TCP协议-TCP超时重传机制
一.前言 在TCP通信中,既要保证在网络正常的情况下提供可靠的交付服务,又要保证在网络异常的情况下也提供可靠的交付服务.而TCP的超时重传机制就是解决在网络异常情况下的可靠传输问题的. 二.通过序列号 ...
- Volley超时重试机制详解
Volley超时重试机制 基础用法 Volley为开发者提供了可配置的超时重试机制,我们在使用时只需要为我们的Request设置自定义的RetryPolicy即可. 参考设置代码如下: int DEF ...
- 确认应答机制超时重传机制序列号延迟应答捎带应答
序列号 一.什么是序列号? TCP会对每个字节的数据都进行编号,数据的编号就是数据的序列号,每个字节都有自己独一无二的编号,故序列号具有唯一性 二.序列号的作用? 接收端为了区别重复的报文段(报文段也 ...
- Dubbo retries 超时重试机制的问题
异常日志 [com.alibaba.dubbo.rpc.filter.TimeoutFilter] - [DUBBO] invoke time out. method: sendMessageargu ...
最新文章
- 理解 JavaScript 作用域和作用域链
- html 右下角弹窗,javascript实现的右下角弹窗实例
- Linux系统二进制bin文件操作的10种方法
- iOS开发-模板方法模式
- 分块读取Blob字段数据(Oracle)
- 正则匹配 http或者 https开头的网络地址
- SAP UI5 里如何让每次视图显示时都执行某方法
- Kubernetes中的nodePort,targetPort,port的区别和意义(转)
- 微信小程序云开发教程-JavaScript入门(5)-函数异步同步
- sendEmail invalid SSL_version at SSL.pm
- 【语音隐写】基于matlab GUI LSB语音信号数字水印【含Matlab源码 619期】
- Spring Boot入门(7)-单元测试
- 毕业设计 - - -数码交流论坛项目功能分析(暂时
- 数字孪生技术方案下的智慧城市建设治理体系优势
- Win10重装系统后,Microsoft账号无法登录,提示“发生了错误”,以及输入账户密码后,显示白屏问题的解决方案
- 测试用例设计方法-思维导图
- 数字图像处理 调色板图像
- Excel合并表格之vba
- python中输入字符串中只有字母_python中,只有一个字母的字符串属于类型
- macbook卡在进度条开不了机_Mac 开机停在进度条解决方法
热门文章
- 个人运营app需要多少钱【费用】
- Debian系统基本命令
- 【数据科学赛】CAIL 2022 #八赛道 #NLP #文本匹配 #信息抽取
- ps切图后 JAVA开发_两种ps切图方法(图层/切片)
- 3个步骤+1个模型,原来「数据分析」才是「增长黑客」的核心技能!
- 确定自动驾驶汽车安全评估指标的挑战
- div实现页面划分为左,中,右三栏
- 完全卸载 OneDrive / 重装 OneDrive / 解决“已经安装了 OneDrive”
- Istio入坑指南(二) Istio的安装与简单的使用
- Ring of Elysium 游戏汉化