问题标签 [network-driver]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
332 浏览

windows - NDIS 版本的迁移

NDIS 6.0 和 NDIS 6.30 之间的主要区别是什么?以下是我所知道的信息,

在 NDIS 6.0 的情况下,没有什么像 WWAN 介质那样。WWAN 特定的 OID 在 NDIS 6.0 中也不可用。因此 TCP/IP 使用 802.3 标头发送。NDIS 6.0 中仅存在 WAN。

后来,从 NDIS 6.20 开始,引入了称为 WWAN 的介质,其中 TCP/IP 直接发送原始 IP 数据包。之后还介绍了 WWAN 特定的 OID。

这个对吗?以及如何从 NDIS 6.0 版本迁移到 NDIS 6.30?我们究竟需要做什么来更改版本?它有什么影响?上面的问题是 wrt 微型端口驱动程序的实现。

提前致谢。

0 投票
1 回答
603 浏览

c - 为什么需要在linux网络驱动中获取系统总线的时钟信息?

我正在浏览网络驱动程序源并在探测功能中找到它

在第一个语句 devm_clk_get(&pdev->dev, "ahb2_gmac") 中,我们得到了 Bus(AHB2) 时钟,这里是 clk_get_rate(priv->miiclk),我们得到了 mii 接口时钟

它服务的目的是什么(获取总线和 mii 时钟),它如何帮助正确的 emac 操作?

0 投票
0 回答
130 浏览

windows - WFP StmEdit 没有为入站流量调用标注函数

我正在尝试让 Microsoft 的 Windows 过滤平台 stmedit 示例正常工作,但遇到了一些困难。

当我在注册表中打开 InspectOutbound 标志时,将 EditInline 设置为 1,将 InspectionPort 设置为 80,将 StringToFind 设置为 A,将 StringToReplace 设置为 B,然后使用代理,将 www.A.com 重定向到 www.B.com预期的,因为目的地被移动到有效载荷的一部分。

当我关闭注册表中的 InspectOutbound 标志(以检查入站数据包)时,仍然使用 EditInline,仍然 InspectionPort=80,访问一个简单的http://www.somewebsite.com/somepage.html页面我看到没有任何功能从驱动程序源代码中被调用。我可以在 WireShark 上看到数据包实际上按预期通过端口 80。

我为源代码中的每个函数添加了一个 DbgPrint() 调用,以查看基本代码流,而不必对所有内容使用调试器,尽管我确实让它工作并且无法在这里找到问题。

任何帮助将非常感激。

0 投票
1 回答
432 浏览

kernel - 需要有关 Windows 10 支持我的 NDIS 5.1 IM 驱动程序的帮助

我们使用的是开源 NDIS IM 驱动程序(5.1),它在 Windows 7 机器上运行良好,但是当我们在 Windows 10 机器上尝试时它没有加载。

驱动:ipfw+dummynet

ipfw 网站: http: //info.iet.unipi.it/~luigi/dummynet/ 源代码:https ://github.com/luigirizzo/dummynet

看起来 NDIS 5.1 代码要迁移到 NDIS 6.X 或 LWF 以在 Windows 10 上运行。

请提出解决方案或解决方法,以便我们可以在 Windows 10 机器上使用此驱动程序,非常感谢您的帮助。

0 投票
2 回答
991 浏览

windows - 杀毒 NDIS 过滤器移除

在我们的 1200 个 Windows 客户端上,我们使用 KES 10 防病毒软件。

由于在某些桌面工作站上出现错误,我们安装了防火墙组件“klim6”。

我们需要静默卸载。在卡巴斯基工具中找不到。

哪种方法可行且正确?

  • RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultUninstall 132 KES10.inf
  • NETCFG.EXE -v -u KLIM6
  • devcon.exe 删除 =net *klim6*

我们还需要解释这些工具的不同行为。

更新:来自 INF 文件的信息:

; KLIM6.INF -- NDIS 用户模式 ​​I/O 驱动程序

[版本]

类 = 网络服务

DriverPackageType=网络

[制造商]

%Klft%=KLFT,NTx86,NTia64,NTamd64

0 投票
1 回答
2464 浏览

networking - 如何在 Linux 内核中检查内存地址是否有效?

我正在调试网络驱动程序中损坏的数据包内容。我想在网络驱动程序中转储数据包内容以进行调试。在此之前,我想检查它的地址在内核地址空间内是否可访问且有效。任何 API 都可用于与 NULL 检查相同的其他 API?

0 投票
2 回答
165 浏览

windows - WEC7 中 MmGetPhysicalAddress 的等效 API

我正在将 Windows 7 网络驱动程序代码移植到 WEC7。我被 API MmGetPhysicalAddress 卡住了。我在 WEC7 中没有找到与此等效的 API。任何人都可以帮助进一步进行..

谢谢。

0 投票
0 回答
481 浏览

c - 安排 NAPI 轮询以定期执行

关于这个主题,我浏览了多篇文章(在 Stackoverflow 内外)。目前,我正在为 Intel X710 NIC 修改 i40e-2.0.30 驱动程序。

多亏了这篇插图博文(https://blog.packagecloud.io/eng/2016/06/22/monitoring-tuning-linux-networking-stack-receiving-data/),理解驱动代码变得容易多了。

我的帖子特别关注 NAPI Poll 机制。我了解当数据包到达时会触发 NAPI Poll 功能,如果接收数据包时完成的工作量超过分配的预算,NAPI Polling 将继续;否则轮询停止。

根据这些信息,我修改了我的驱动程序以保持轮询数据的特定签名是否到达特定队列(使用流导向器),例如端口 XXX 上的 UDP 数据包 10,000 个轮询周期。但是,我试图尽可能地消除中断的可能性。

因此,这是我的主要问题。我可以安排在某个时间点执行 NAPI 轮询吗?就像,我希望每 500 毫秒执行一次 NAPI 轮询,并且可能持续 20 毫秒。例如,我将在时间T ms等待我的数据包,而我可能在时间(T-10) ms开始轮询并在(T + 10) ms停止轮询。这可能,我也许可以减少中断的使用。现在,我每 10,000 个轮询周期就重置一次中断。

对此的任何解释或参考都会非常有帮助。

谢谢,库沙尔。

0 投票
1 回答
413 浏览

linux - Linux内核net_device_ops是否被调用者序列化

我试图找出 Linux net_device_ops 是否由调用者序列化,或者实现这些操作的驱动程序必须处理序列化(或者它们可以同时调用)。

例如,对于相同的驱动程序实例,在驱动程序完成当前的 ndo_start_xmit 调用之前,是否可以再次调用 ndo_start_xmit(例如在不同的 CPU 上)?

我搜索了其他 net_device 驱动程序是如何执行此操作的,但看起来他们假设 ndo_start_xmit 序列化是由调用者完成的(如果我错了,请纠正我)。

但是我也搜索了调用者是否使用自旋锁或其他锁机制,但我找不到。如果存在这样的(调用者)锁定机制,请指出执行此操作的代码。

0 投票
0 回答
211 浏览

networking - 使用网络子系统时内核页面分配失败

我正在开发一个使用 psnap 模块交换数据的驱动程序。但是我遇到了以下崩溃。我该如何解决这个崩溃?如何找出导致问题的原因?我的内核版本是 4.9.41。