网络子系统提供了对传输超时的处理框架,在驱动程序中要支持传输超时处理,只需要实现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来进行处理

========用法========

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. server2008网卡驱动包_从网卡发送数据再谈TCP/IP协议—网络传输速度计算-网卡构造...

    在<在深谈TCP/IP三步握手&四步挥手原理及衍生问题-长文解剖IP>里面提到 单个TCP包每次打包1448字节的数据进行发送(以太网Ethernet最大的数据帧是1518字节,以 ...

  2. Linux网卡驱动pcnet32.c的注释(AM79C9*系列网卡的驱动)

    很久之前读的网卡驱动源码,很多东西已经忘记了,最近面试被问道了网卡收数据包的全过程,只能答出一个很简单的过程,NAPI这种非常优秀的机制都没有想起来,很惭愧,重新复习了一下收包的过程,顺便把当时注释的 ...

  3. 网卡驱动dev_watchdog详解

    目录 1.初始化 2.开启watchdog 3.超时处理dev_watchdog 4.发送时间trans_start 更新 5.usbnet驱动 网络设备watchdog用于监控网卡驱动发送数据是否异 ...

  4. Linux 网卡驱动学习(二)(网络驱动接口小结)

    [摘要]前文我们分析了一个虚拟硬件的网络驱动样例.从中我们看到了网络设备的一些接口.事实上网络设备驱动和块设备驱动的功能比較相似,都是发送和接收数据包(数据请求). 当然它们实际是有非常多不同的. 1 ...

  5. 【NanoPi T2】 6.uboot gmac网卡驱动(2) - 寄存器介绍

    1.mac控制器,phy芯片,rgmii协议 2.寄存器介绍 3.驱动源码解析 4.nanopi t2 移植rtl8211e网卡驱动(首发) s5p4418 gmac概述 支持千兆速度,协议为RGMI ...

  6. 一文搞懂网卡驱动的原理与移植方法

    1.网卡设备驱动原理 1.1 层次结构 Linux系统对网络设备驱动定义了4个层次, 这4个层次有到下分为: 1.网络协议接口层:实现统一的数据包收发的协议.该层主要负责调用dev_queue_xmi ...

  7. VMware ESXi 8.0U1 集成网卡驱动和 NVMe 驱动 (网卡驱动集成版,整合版)

    原文地址:VMware ESXi 8.0U1 集成网卡驱动和 NVMe 驱动 (网卡驱动集成版,整合版) - DIYNAS 下载地址: VMware ESXi 8.0U1 集成网卡驱动和 NVMe 驱 ...

  8. 【linux】网卡驱动框架介绍

    在介绍本文之前,我想先对前面的知识做一下总结,我们知道Linux系统的设备分为字符设备(char device),块设备(block device),以及网络设备(network device).字符 ...

  9. linux pci 网卡驱动,linux网络设备驱动_pci网卡

    <linux网络设备驱动_pci网卡>由会员分享,可在线阅读,更多相关<linux网络设备驱动_pci网卡(12页珍藏版)>请在技术文库上搜索. 1. LinuxLinux 网 ...

  10. Linux网卡驱动(1)-网卡驱动架构分析

    1.Linux网络子系统 网络子系统采用分层的结构: 我们这里研究内核空间即可,在内核空间分成5层,分别是: 1.系统调用接口,它面向的客户是应用层序,为应用程序提供访问网络子系统的统一方法,比如说s ...

最新文章

  1. wp实例开发精品文章源码推荐
  2. Android 快速选择联系人
  3. Linux_正则表达式
  4. python datasets_python基础之sklearn.datasets
  5. 【Pytorch神经网络理论篇】 08 Softmax函数(处理分类问题)
  6. Python学习笔记--8.6 函数--递归
  7. 1748. 唯一元素的和
  8. 姑苏山塘飞雪披银装[组图]
  9. java vm art_Android虚拟机art流程:JavaVM 和 JNIEnv 的初始化 - 神农笔记
  10. 服务器虚拟化techtarget技术社区,服务器上的应用程序虚拟化
  11. PHP 后台程序配置config文件,及form表单上传文件
  12. ASP.NET Core 使用Redis 存储Session 实现共享 Session
  13. torch随机数 manual_seed
  14. 《光剑文集》青玉案: 27首
  15. 【现代计算机图形学 GAMES101】 第五讲:光栅化(一)
  16. 好的博客学习的地址【持续更新中】
  17. POJ 1637 混合图的欧拉回路判定
  18. mt7 android6.0 回退,Mate7 M版本(Android 6.0)B553发布说明及问题反馈
  19. 如何清理占用计算机内存,电脑内存不足怎么清理
  20. 童牧野中国十年股市十大名人 主要书籍著作及论宝塔线

热门文章

  1. python中plot函数参数_Python的 plot函数和绘图参数设置
  2. .tpk格式文件简介
  3. Qt设置鼠标光标样式
  4. 翟菜花:资本退烧、开源节流时代,品质服务保障成携程终极利器
  5. 翟菜花:《完美世界》手游大火,大文娱的卡路里能释放多少热量?
  6. Android Studio 打包Jar
  7. ChinaSoft 论坛巡礼 | CCF-华为胡杨林基金-系统软件专项论坛
  8. 如何复制他人csdn博客文章到自己博客下
  9. 实验吧——WEB-天下武功唯快不破
  10. LPC1768 SPI 外设控制DA(PCM1796)调试记录