edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1931回复:6

转发包时如何处理 OOB 数据?[50 分]

楼主#
更多 发布于:2002-12-21 14:11
我的程序中有一个转发流程,就是把从网卡 A 收到的包用网卡 B 转发出去,我是改写 Passthru,当然也就保留了它复制 OOB 数据的部分,可是程序运行一段时间之后网卡就好象“失效”了一样,其它主机发给我的包在 Passthru 里根本看不到,先禁用再启用网卡一般就能恢复正常,过一会儿就又不行了。

听胡版主说 OOB 数据是 NDIS 做管理之用的,那么我把收到的包不交给上层直接转发出去(用另一块网卡)这些 OOB 数据是不是对于用于转发的网卡就是没有意义的?该怎么处理?对 OOB 数据有深入分析的大侠给俺讲讲好吗?

假如这种现象不是由 OOB 数据引起的,那又可能是什么原因造成的呢?请各位大侠畅所欲言,谢谢!
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-12-21 15:01
呵呵原因已经找到,是缓冲区全满造成的,一定是我某处的代码没有释放缓冲区:)

现在问题改为“OOB 数据跟转发包的互动关系”。
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-12-22 21:39
在2k和xp下,你转发的包都要用那几个宏取到OOD数据加到你新构造的packet里面,xp的passthru里面使用了这些宏
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
edust
驱动中牛
驱动中牛
  • 注册日期2002-04-02
  • 最后登录2003-06-25
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-12-23 09:00
那么这些 OOB 数据不是用于管理目的的吗?那从网卡收到的包,为其复制 OOB 数据并将其指示给上层就很容易理解了,可是如果收到的包我是要用另一块网卡转发到其它主机去,那么这些 OOB 数据就没有意义了吧?而且它会妨碍转发吗?
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-12-23 09:38
你是在中间层的,还要交给ndis处理,所以你得复制这些ddb数据,
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
leepyzh
禁止发言
禁止发言
  • 注册日期2001-04-27
  • 最后登录2018-05-30
  • 粉丝0
  • 关注0
  • 积分3668分
  • 威望18340点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
  • 社区居民
5楼#
发布于:2002-12-23 17:38
用户被禁言,该主题自动屏蔽!
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2002-12-23 17:55
98下不用
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
游客

返回顶部