- 论坛徽章:
- 0
|
回复 #5 qtdszws 的帖子
再次感谢qtdszws.
刚弄清楚,这儿是应该加.虽然对于字节序为big-endian的mips cpu来讲( 此时ntoh(x)等价于(x) ),不加也可以.
但是为了可移植性,应该加,这样不管是big-endian还是little-endian,都ok.
PS :mips的字节序好像是可以随意配置的,我们用的是big-endian
呵呵,再借这个机会请教一个bridge module的问题.
当本机自己要往外发一个包时,如果目的设备是bridge,在dev_queue_xmit()里调用dev->hard_start_xmit(skb, dev)就相当于
调用br_dev_xmit(),接着会调用__br_dev_xmit(),在这个函数里,有
skb_pull(skb, ETH_HLEN);
接着依次调用
br_deliver()-->__br_deliver()-->__br_forward_finish()-->__dev_queue_push_xmit()-->dev_queue_xmit(),把包真正发送出去.
在__dev_queue_push_xmit()这个函数里,有
skb_push(skb, ETH_HLEN);
我的问题是,为什么要先pull,再push,看code好像没看出来这么做有什么用?
[ 本帖最后由 happy_flying 于 2008-3-7 16:09 编辑 ] |
|