나는 오후 내내 udp 패킷을 보내는 문제를 찾고있었습니다. 그것은 sendmsg 시스템 호출이 먼저 inet_sendmsg에 올 것이라고 말하고, 그 다음에 udp_sendmsg, 그 다음 udp_push_pending_frames가이 함수에서 UDP 헤더는 ip_push_pending_frames 전에 채워집니다. 그러나 http://vger.kernel.org/~davem/skb_data.html에 따르면 UDP 계층은 skb의 데이터로 순수한 사용자 데이터를 가지고 있어야하며 UDP 헤더의 공간을 확보하기 위해 skb_push를 사용해야합니다. 방금 찾지 못했습니다.커널에서 udp 헤더 용 skb_push는 어디에 있습니까?
누구나 단서를 제공 할 수 있습니까?
감사합니다.
Emm. udp_hdr 함수는 skb_transport_header이기 때문에 udp 계층은 skb_push와 비슷한 기능을 호출하지 않는다고 생각합니다. udp_hdr 함수는 skb-> head + skb-> transport_header입니다. 이것은 헤드 룸의 오프셋입니다. 그래서 나는 IP에만 헤더를 데이터로 푸시해야 할 의무가 있다고 생각한다. 아직 확인하지 않습니다. – Tiina