skb->;数据长度,skb->;len,skb->;mac_len值为0?
当我使用netfilter API时skb->;数据长度,skb->;len,skb->;mac_len值为0?,c,netfilter,C,Netfilter,当我使用netfilter API时 iph = ip_hdr(skb); saddr = iph->saddr; //unsigned long daddr = iph->daddr; //unsigned long 但是saddr和daddr是不正确的值 所以我测试了一下 printk("len = %u , data_len = %u , mac_len = %u , hdr_len = %u\n",skb->len , skb->da
iph = ip_hdr(skb);
saddr = iph->saddr; //unsigned long
daddr = iph->daddr; //unsigned long
但是saddr
和daddr
是不正确的值
所以我测试了一下
printk("len = %u , data_len = %u , mac_len = %u , hdr_len = %u\n",skb->len , skb->data_len , skb->mac_len , skb->hdr_len);
printk("truesize = %u , data = %x\n",skb->truesize , &skb->data);
结果是:
这是否正确?请尝试以这种方式提取:
struct iphdr *ip_hdr = (struct iphdr *)skb_network_header(skb);
并通过以下方式访问:
printk("source address = %u destination address = %u\n", ip_hdr->saddr, ip_hdr->daddr);
从
skb
提取的值似乎分配不好。请在问题中添加文本而不是图像,并提供