C语言 读取sk_buff并在内核模块中获取iphdr



我正试图阅读sk_buff->network_header,但当我试图阅读我的电脑被冻结,永远不会解冻。为什么会这样呢?这是我在napi api

poll中的代码
In probe function
netif_napi_add(netdev, &adapter->napi, e1000e_poll, 64);            

static int e1000e_poll(struct napi_struct *napi, int budget)
{
struct sk_buff *skb=napi->skb;
// (struct iphdr *)skb_network_header(&napi->skb); 
struct iphdr *ip_header = (struct iphdr *)skb->network_header;
struct udphdr *udp_header;
struct tcphdr *tcp_header;
struct list_head *p;
//unsigned int src_ip = (unsigned int)ip_header->saddr;
}

我只是不想给类似的东西分配任何东西。当分配+ prinkk时,我有检查类型,而不是解决方案,因为它没有涵盖所有类型的格式

最新更新