skb->mac_header为什么一直为0?向高手求救
我是在hard->start->xmit之前插入一个函数,查询skb->mac_header指针的值,发现它一直为0,这是为什么呢?
static int our_xmit(struct sk_buff *skb,
struct net_device *dev)
{
printk("hello ,wait a while to send~~~~~~~~~~~\n");
unsigned char *a;
printk("head=%x,head_mac=%x, head_ip=%x,tail=%x\n",skb->head, skb_mac_header(skb), skb_network_header(skb), skb->tail);
for(a=skb->head; a<skb->tail; a++)
{
printk("%02X ",*a);
}
p(skb, dev);
}
int init_module(void)
{
printk("Im in the module *******************************");
dev=dev_get_by_name("eth0");
struct sk_buff *skb;
skb=dev->gso_skb;
p=dev->hard_start_xmit;
dev->hard_start_xmit=&our_xmit;
return 0;
}
运行结果如下: head=c8b1ba00,head_mac=0, head_ip=c8b1ba10,tail=c8b1ba64
其他都有值,就mac的指针一直为0
求助!!!!
static int our_xmit(struct sk_buff *skb,
struct net_device *dev)
{
printk("hello ,wait a while to send~~~~~~~~~~~\n");
unsigned char *a;
printk("head=%x,head_mac=%x, head_ip=%x,tail=%x\n",skb->head, skb_mac_header(skb), skb_network_header(skb), skb->tail);
for(a=skb->head; a<skb->tail; a++)
{
printk("%02X ",*a);
}
p(skb, dev);
}
int init_module(void)
{
printk("Im in the module *******************************");
dev=dev_get_by_name("eth0");
struct sk_buff *skb;
skb=dev->gso_skb;
p=dev->hard_start_xmit;
dev->hard_start_xmit=&our_xmit;
return 0;
}
运行结果如下: head=c8b1ba00,head_mac=0, head_ip=c8b1ba10,tail=c8b1ba64
其他都有值,就mac的指针一直为0
求助!!!!
作者: wenzi138 发布时间: 2011-01-10
各位帮帮忙啊,实在不知道哪里出问题了
作者: wenzi138 发布时间: 2011-01-12