1. tcp_rcv_established打印
net\ipv4\tcp_input.c
void tcp_rcv_established(struct sock *sk, struct sk_buff *skb)
{
const struct tcphdr *th = (const struct tcphdr *)skb->data;
struct tcp_sock *tp = tcp_sk(sk);
unsigned int len = skb->len;
// log begin................................................
if (skb != NULL && skb->len > 0) {
int th_doff = th->doff * 4;
printk(KERNEL_INFO "tcp_rcv_established skb->len = %d, data_len = %d,"
" th->doff = %d, tail - data = %d, ipid = 0x%X\n",
skb->len, skb->data_len, th_doff, (skb->tail - skb->data), ntohs(ip_hdr(skb)->id));
int datalen = skb->len - skb->data_len - th_doff;
if (datalen > 0) {
unsigned char * pdata = skb->data;
pdata += th_doff;