리눅스 커널 &에 대한 모듈을 작성하면 & 패킷을 도용하려고 시도합니다. sk_buff. 이렇게하려면 struct sk_buff *skb_copy(const struct sk_buff *skb, gfp_t gfp_mask)
&을 사용하고 커널에 반환 유형을 전달하려면 패킷이으로 삭제됩니다.sk_buff copy & sk_buff 복제본
그래서 커널이 패킷 드롭에 대한 정보를 얻으면 sk_buff를 해제하려고합니다. 여기 내 질문은 내 새로 복사 skb & 패킷의 그 지적 데이터에 영향을 미친다 온다? 아니면 지금 내 새 sk_buff 놀 수있어?
또는는 패킷의 복사 비용을 reduse 때문에 가능() & 오래된 sk_buff를하여 참조 데이터를 삭제하지 않고 패킷 데이터 부분을 사용 skb_clone을 사용하는 것입니다.
실제로 내가 skb_clone의 도움으로 패킷 데이터를 사용하려면() 데이터 복사가 필요하지 않으므로 sk_buff 구조체 만 복사됩니다. 그래서 내가 이전 sk_buff의 참조 횟수를 줄이면 가능합니다 ... 복제 중에 coz 내가 참조 카운트가 증가했다고 생각 ...? – akp