0
ping과 유사한 모듈을 작성하려고합니다. 패킷을 수신 할 때 문제가 발생합니다. 오류없이napi가 수신에 사용됨
#include<asm/uaccess.h>
#include<linux/sched.h>
#include<linux/wait.h>
#include<linux/netfilter.h>
#include<linux/netfilter_ipv4.h>
struct net_device *dev;
struct sk_buff *skb;
struct napi_struct *rnapi;
int rrpoll(struct napi_struct *napi,int budget)
{
printk(KERN_ALERT"we are HEARRR%s,%d\n",__func__,__LINE__);
skb = (struct sk_buff *)kmalloc(sizeof(struct sk_buff *),GFP_KERNEL);
netif_receive_skb(skb);
kfree(skb);
return 0;
}
static int rec_init(void)
{
dev = __dev_get_by_name(&init_net,"wlan0");
rnapi = (struct napi_struct *)kmalloc(sizeof(struct napi_struct *),GFP_KERNEL);
netif_napi_add(dev,rnapi,&rrpoll,100);
napi_schedule(rnapi);
return 0;
}
static void rec_exit(void)
{
//napi_complete(rnapi);
netif_napi_del(rnapi);
}
모듈의 컴파일 및 실행을하지만, 전체 시스템은 잠시 후 중단 : 코드는 다음과 같습니다.
사람이 무엇이 잘못되었는지, 또는 코드, 요령에 대한 책임이있는 경우에도 사용자에게 불충분 "전체 시스템 몇 시간 후에 중단"또는 경우, 여부 문제 귀하가 게시 한 코드 또는 다른 곳에 있습니다. –
@JimGarrison 모든 패킷 (확인 용)과 위의 코드를 수신하기 위해 새 모듈을 만들었습니다 ....... – karan421
@JimGarrison "잠시 후"는 모듈을 설치할 때마다 멈 춥니 다. 시스템은 모듈이 설치되지 않았을 때 멈추지 않습니다. ..... – karan421