在驱动程序中要支持传输超时处理,只需要实现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相关推荐

  1. 使用druid连接池的超时回收机制排查连接泄露问题

    参考:http://www.cnblogs.com/netcorner/p/4380949.html 在工程中使用了druid连接池,运行一段时间后系统出现异常: Caused by: org.spr ...

  2. TCP之超时重传机制

    TCP协议是一种面向连接的可靠的传输层协议,它保证了数据的可靠传输,对于一些出错.超时丢包等问题TCP设计了超时重传机制,其基本原理:在发送一个数据之后,就开启一个定时器,若是在这个时间内没有收到发送 ...

  3. TCP协议可靠性保证(确认应答机制,超时重传机制,流量控制,拥塞窗口)

    上一次我们知道了TCP协议通过连接管理机制保证可靠性,今天我们继续来看一看TCP协议中其他几种保证可靠性的方法. · 确认应答机制  · 超时重传机制  · 流量控制  · 拥塞窗口 确认应答机制  ...

  4. 4-5:TCP协议之确认应答(ACK)机制和超时重传机制

    文章目录 一:TCP的确认应答(ACK)机制 二:超时重传机制 一:TCP的确认应答(ACK)机制 在TCP中,当发送端的数据达到接收主机时,接收端主机会返回一个已收到消息的通知,这个消息叫做ACK( ...

  5. TCP/IP协议栈:TCP超时重传机制

    目录 基础概念 重传超时时间RTO RTO的设定 连接往返时间RTT RTT的计算 Karn算法 往返时间测量 重传 拥塞避免算法 快速重传和快速恢复算法 重新分组 网络数据包丢失,重传和重复确认 是 ...

  6. 计算机网络超时重传时间,TCP超时重传机制

    超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止.[1] 中文名 ...

  7. TCP协议-TCP超时重传机制

    一.前言 在TCP通信中,既要保证在网络正常的情况下提供可靠的交付服务,又要保证在网络异常的情况下也提供可靠的交付服务.而TCP的超时重传机制就是解决在网络异常情况下的可靠传输问题的. 二.通过序列号 ...

  8. Volley超时重试机制详解

    Volley超时重试机制 基础用法 Volley为开发者提供了可配置的超时重试机制,我们在使用时只需要为我们的Request设置自定义的RetryPolicy即可. 参考设置代码如下: int DEF ...

  9. 确认应答机制超时重传机制序列号延迟应答捎带应答

    序列号 一.什么是序列号? TCP会对每个字节的数据都进行编号,数据的编号就是数据的序列号,每个字节都有自己独一无二的编号,故序列号具有唯一性 二.序列号的作用? 接收端为了区别重复的报文段(报文段也 ...

  10. Dubbo retries 超时重试机制的问题

    异常日志 [com.alibaba.dubbo.rpc.filter.TimeoutFilter] - [DUBBO] invoke time out. method: sendMessageargu ...

最新文章

  1. 理解 JavaScript 作用域和作用域链
  2. html 右下角弹窗,javascript实现的右下角弹窗实例
  3. Linux系统二进制bin文件操作的10种方法
  4. iOS开发-模板方法模式
  5. 分块读取Blob字段数据(Oracle)
  6. 正则匹配 http或者 https开头的网络地址
  7. SAP UI5 里如何让每次视图显示时都执行某方法
  8. Kubernetes中的nodePort,targetPort,port的区别和意义(转)
  9. 微信小程序云开发教程-JavaScript入门(5)-函数异步同步
  10. sendEmail invalid SSL_version at SSL.pm
  11. 【语音隐写】基于matlab GUI LSB语音信号数字水印【含Matlab源码 619期】
  12. Spring Boot入门(7)-单元测试
  13. 毕业设计 - - -数码交流论坛项目功能分析(暂时
  14. 数字孪生技术方案下的智慧城市建设治理体系优势
  15. Win10重装系统后,Microsoft账号无法登录,提示“发生了错误”,以及输入账户密码后,显示白屏问题的解决方案
  16. 测试用例设计方法-思维导图
  17. 数字图像处理 调色板图像
  18. Excel合并表格之vba
  19. python中输入字符串中只有字母_python中,只有一个字母的字符串属于类型
  20. macbook卡在进度条开不了机_Mac 开机停在进度条解决方法

热门文章

  1. 个人运营app需要多少钱【费用】
  2. Debian系统基本命令
  3. 【数据科学赛】CAIL 2022 #八赛道 #NLP #文本匹配 #信息抽取
  4. ps切图后 JAVA开发_两种ps切图方法(图层/切片)
  5. 3个步骤+1个模型,原来「数据分析」才是「增长黑客」的核心技能!
  6. 确定自动驾驶汽车安全评估指标的挑战
  7. div实现页面划分为左,中,右三栏
  8. 完全卸载 OneDrive / 重装 OneDrive / 解决“已经安装了 OneDrive”
  9. Istio入坑指南(二) Istio的安装与简单的使用
  10. Ring of Elysium 游戏汉化