struct sk_buff 구조체를 복사하고 싶습니다.
글쓴이: cjy1126 / 작성시간: 화, 2004/02/10 - 6:52오전
커널의 netif_rx()전에 제가 만든 user_rx()를 호출해서 커널 프로그래밍을 했습니다.
eth0으로 들어온 1개의 패킷을 eth1, eth2 두곳으로 쏴주고 싶은데 어떻게 해야할지 모르겠습니다.
struct sk_buff *temp = skb; return (dev_queue_xmit(skb) && dev_queue_xmit(temp));
예상은 했지만 커널 패닉이 나네요.
2번째 방법은...
dev_queue_xmit(skb); skb->dev = global_out; /*eth2의 device pointer */ return dev_queue_xmit(skb);
dev.c에서 atomic_read(skb); 에러가 나네요.
이런식으로 하면 안된는걸 알면서도, 어떻게해야할지 난감해서 손도 못대고 있습니다.
제 생각으로는 skb와 같은 sk_buff를 만들어서 쏘는것이 좋다고 생각하는데...
skb와 같은 구조체를 만들때 모든 필드를 채워야하는지요?
그렇다면 sk_buff *prev, *next 같은 필드는 어떻게 채워야하는지요?
도움 부탁드립니다.[/code]
Forums:
copy_skbclone_skb를 이용해서복사본을 만들어 전송해보
copy_skb
clone_skb를 이용해서
복사본을 만들어 전송해보세요.
댓글 달기