Jak obliczyć sumę kontrolną TCP

Piszę moduł jądra, który używa haków Netfilter do modyfikowania niektórych informacji nagłówka TCP i oczywiście przed wysłaniem chcę ponownie obliczyć sumę kontrolną.
Edytuję również nagłówek po stronie odbiorczej, więc muszę go tam ponownie obliczyć.

Szukając w Internecie, znalazłem kilka osób mówiących, że mogę po prostu ustawić je na 0 i będzie to dla mnie obliczone, najwyraźniej nie działa.
Znalazłem także tę funkcję

tcp_v4_send_check(struct sock *sk, struct sk_buff *skb);

Chociaż nikt nie wyjaśnił, w jaki sposób jest to używane, i czy mogę go rzeczywiście używać w odbiorze / wysyłaniu w ten sam sposób.
Moja własna próba polegała na ustawieniu sumy kontrolnej na 0, a następnie wywołaniu tej funkcji przekazując skb, które mam i skb-> sk mam, nadal nic.

Więc jaki jest prosty sposób obliczenia sumy kontrolnej datagramów TCP?

questionAnswers(3)

yourAnswerToTheQuestion