阅读:1198回复:0
IM中转发包的问题
我在一个passthru框架的中间层驱动里,想做一个转发的机制
就是在双网卡配置的机器上,一个网卡接收到的数据包,从另 外一个网卡发送出去。但是这个接收到的数据包是属于底层miniport 的,是要回收的,在发送到另外一个网卡上并等待pending的过程中 还要用到这个包,所以只有在pending结束后才能交给底层回收。 这是最直接的一个思路,但是我在看了xpddk里带的那个e100bex网卡 驱动例子,看到底层接收包是用一个叫做TCB的东西,这个传输控制块 是有限的,如果上层占用太多的包的话,TCB得不到释放,后续报文 就没办法接收了。我在用这种思路发包的时候也遇到过这种情况。 所以我现在实现,是完全拷贝原始包的数据到一个新建立的数据包 中,发送的时候用新的数据包。驱动本身已经可以用了,但是最近 用户有反映说装了这个东西以后速度变慢,我想大概就是因为拷贝 数据的问题了。 不知道我上述对底层TCB的理解是不是正确,再请问如何解决这个 问题呢? |
|