SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1915回复:11

继续关注:千兆网卡的问题。关注就有分。总分100

楼主#
更多 发布于:2003-03-03 18:21
小弟在下面一帖中提到了带Task Offload功能的千兆网卡引出的问题。
http://www.driverdevelop.com/forum/html_35288.html?1046685239


现在还有一个问题,在处理TCP数据包的时候,发现经我的驱动处理过的包到了离开本机后经常就被改了,UDP没有问题。改动的主要是TCP头部分,我做过处理的TCP包头又被改成处理前的样子了,这样可能有两个原因,一是我发送的时候数据链错了,二就是还是网卡驱动做了事情了,因为我的驱动在百兆网卡的情况下是好的,而我们知道Task Offload功能对数据包正确性的检查也只关心TCP包,所以我还是怀疑是网卡的问题,还请各位老大指点。

另外,如果是网卡问题的话,是否能将其功能彻底停掉?之前的帖子里我停掉网卡checksum计算功能办法是仅在TCP/IP向下查询的时候向其返回不支持的信息,总觉得这样好像不够,但对于checksum功能,其效果是好的。请教彻底停掉网卡Task Offload相关功能的方法。

[编辑 -  3/3/03 by  SharpShooter]
写驱动不如买足彩!!
magicx
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2014-08-18
  • 粉丝1
  • 关注0
  • 积分-14分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-03-03 22:30
不懂就关注一下
[color=red]大头鬼! :P[/color]
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2003-03-03 22:40
小弟在下面一帖中提到了带Task Offload功能的千兆网卡引出的问题。 [quote] http://www.driverdevelop.com/forum/html_35288.html?1046685239


现在还有一个问题,在处理TCP数据包的时候,发现经我的驱动处理过的包到了离开本机后经常就被改了,UDP没有问题。改动的主要是TCP头部分,我做过处理的TCP包头又被改成处理前的样子了,这样可能有两个原因,一是我发送的时候数据链错了,二就是还是网卡驱动做了事情了,因为我的驱动在百兆网卡的情况下是好的,而我们知道Task Offload功能对数据包正确性的检查也只关心TCP包,所以我还是怀疑是网卡的问题,还请各位老大指点。

另外,如果是网卡问题的话,是否能将其功能彻底停掉?之前的帖子里我停掉网卡checksum计算功能办法是仅在TCP/IP向下查询的时候向其返回不支持的信息,总觉得这样好像不够,但对于checksum功能,其效果是好的。请教彻底停掉网卡Task Offload相关功能的方法。

[编辑 -  3/3/03 by  SharpShooter] [/quote]


千M的网卡多半都实现了taskoffload的功能。
许多百M的网卡也实现了taskoffload的功能。

如果你在imd/hook driver中修改过数据包,那么最简单的
方法是禁用所有的taskoffload。

例如:
if (Oid == OID_TCP_TASK_OFFLOAD)
{
//
// Fail this -if- this driver performs data transformations
// that can interfere with a lower driver\'s ability to offload
// TCP tasks.
//
if (you want to disable taskoffload)
{
Status = NDIS_STATUS_NOT_SUPPORTED;
break;
}
//
}
不再回忆从前,我已经生活在幸福当中。
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-03-03 23:09
 
如果你在imd/hook driver中修改过数据包,那么最简单的
方法是禁用所有的taskoffload。

例如:
if (Oid == OID_TCP_TASK_OFFLOAD)
{
//
// Fail this -if- this driver performs data transformations
// that can interfere with a lower driver\'s ability to offload
// TCP tasks.
//
if (you want to disable taskoffload)
{
Status = NDIS_STATUS_NOT_SUPPORTED;
break;
}
//
}

多谢Hu版主指点。
我的做法是在上层查询的时候将返回的 NDIS_TASK_OFFLOAD_HEADER 中的 OffsetFirstTask 域置了0,应该是禁止所有 Offload 功能了吧?至少checksum是好了。明天试试版主的做法,再不行的话肯定就是我的程序有问题了。
写驱动不如买足彩!!
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-03-04 13:24
你的千M网卡是什么牌子的?
我记得intel的网卡的属性里面就有设置该网卡是否支持task offload功能的。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-03-04 13:38
你的千M网卡是什么牌子的?
我记得intel的网卡的属性里面就有设置该网卡是否支持task offload功能的。


没错,是因特尔的,我见过两种,以太口的pro/1000 M没有配置显示,光纤口的pro/1000 F有配置显示,不过我们总不能要求用户去配置吧。

今天试了Hu老大的办法,效果一样,可见是我的程序有问题了,正在查。
写驱动不如买足彩!!
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-03-04 13:51
我用的PCI的网卡,里面有设置。你的程序里面是怎么改的?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-03-04 15:43
我用的PCI的网卡,里面有设置。你的程序里面是怎么改的?
我不知道在程序里如何逐项修改网卡的设置,只是用HU老大的办法,将其Task Offload功能全部关闭,或许之前说的我的办法也可以,但不如HU老板的办法简洁明了。

现在问题已经搞定,但道理还不是非常清楚,简单的说是我将一个MDL的MappedSystemVa换掉,但发出去的还是以前的Buffer,不明白为什么以前在百兆网卡上从来没有出现过问题,原理还是没有弄明白,我现在只是简单解决了一下,将原先的Buffer里也Copy入新Buffer的数据,问题暂时是没有了。说的不对的地方,还请各位指正。
写驱动不如买足彩!!
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-03-04 16:40
mikeluo老大,不好意思,哥们本想给你5分的,不想你下面还有个帖子,一不小心就多给了你老大24分,实在不好意思,嗬嗬。
写驱动不如买足彩!!
domore
驱动中牛
驱动中牛
  • 注册日期2002-04-06
  • 最后登录2008-04-05
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-03-04 19:32
关注一下!
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-03-04 20:53
关注一下!

大哥你来晚了,分已经给过了。
写驱动不如买足彩!!
dana_wx
驱动牛犊
驱动牛犊
  • 注册日期2002-11-08
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-03-05 10:14
heh  看来我也来晚了 那就不说了
游客

返回顶部