Network Device Driver에서 UDP/IP 헤더 수정 관련
글쓴이: coolaid0 / 작성시간: 목, 2007/05/17 - 8:30오후
전송할 네트워크 패킷을, Network Device Driver에서 UDP/IP 헤더 앞으로
개인적으로 헤더를 더 붙여서 보내고 수신시는 이를 띠어내고 상위로 올려보내려 합니다.
즉 IP 헤더와 MAC 주소 사이에 무언가를 더 붙이려고 하는데요, 보통 이런 상황에선
skb_push()/skb_pull()을 쓸겁니다.
근데 Kernel이 UDP->IP 프로토콜 스택을 거쳐서 내려보낸(즉, UDP/IP 헤더가 모두 붙은 상황에서)
패킷에 대해 보통 몇 바이트나 skb_push()를 할 수 있는지 궁금합니다.즉, 헤더를 몇 바이트까지 붙이는게 가능한지 잘 모르겠네요.
그리고 이게 모자를 시에는 기존 skb을 버리고 skb_copy()로 새로 복사해서 쓰는 방법밖에는 없는지도 궁금합니다. Device Driver에서 .hard_header()를 사용해서 건드려주려니 skb를 맘대로 kfree() 시켜주는 것도 어려울 것 같은데요..
답변 부탁드립니다. 현재 커널은 2.6.15 사용중입니다.
Forums:
댓글 달기