netif_rx(skb)返回值为0,表示放入CPU输入队列正确,为什么网络还不通?

skb->protocol=eth_type_trans(skb,dev);
                printk("protcol=%x\n",skb->protocol);
        err=netif_rx(skb);

这里skb->protocol打印出来的值是8,表示接受到为IP包,可是为什么网络还是不通呢?err的值为0.


向高手求救啊

作者: wenzi138   发布时间: 2011-01-19



接收端的数据包为: 00  00  00  00  3A  02  40  03  DD  00  40  03  03  00  10  00  00  0C  29  47  26  4C  00  0C  29  CE  57  34  80  20  00  01  08  00  06  04  00  01  00  0C  29  CE  57  34  C0  A8  2A  82  00  00  00  00  00  00  C0  A8  2A  82  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00  00

发送端为: 00  A8  00  0C  29  47  26  4C  00  0C  29  CE  57  34  08  06  00  01  08  00  06  04  00  02  00  0C  29  CE  57  34  C0  A8  2A  81  00  0C  29  47  26  4C  C0  A8  2A  82


这说明发送接受都没有问题,可是为什么网络就是不通呢?

作者: wenzi138   发布时间: 2011-01-20

不过好像是IP位不对齐,难道要重新构造一个skb?

作者: wenzi138   发布时间: 2011-01-20