Lines Matching full:tcp

63 	struct tcphdr *tcp;  member
98 ctx->tcp = (struct tcphdr *)(ctx->ipv4 + 1); in tcp_load_headers()
112 ctx->tcp = (struct tcphdr *)(ctx->ipv6 + 1); in tcp_load_headers()
118 if (ctx->tcp + 1 > ctx->data_end) in tcp_load_headers()
133 if (ctx->tcp->doff < sizeof(*ctx->tcp) / 4) in tcp_reload_headers()
136 /* Needed to calculate csum and parse TCP options. */ in tcp_reload_headers()
137 if (bpf_skb_change_tail(ctx->skb, data_len + 60 - ctx->tcp->doff * 4, 0)) in tcp_reload_headers()
146 ctx->tcp = (struct tcphdr *)(ctx->ipv4 + 1); in tcp_reload_headers()
150 ctx->tcp = (struct tcphdr *)(ctx->ipv6 + 1); in tcp_reload_headers()
153 if ((void *)ctx->tcp + 60 > ctx->data_end) in tcp_reload_headers()
164 ctx->tcp->doff * 4, IPPROTO_TCP, csum); in tcp_v4_csum()
170 ctx->tcp->doff * 4, IPPROTO_TCP, csum); in tcp_v6_csum()
180 csum = bpf_csum_diff(0, 0, (void *)ctx->tcp, ctx->tcp->doff * 4, 0); in tcp_validate_header()
248 if (*opsize == TCPOLEN_MSS && ctx->tcp->syn && mss) in tcp_parse_option()
253 if (*opsize == TCPOLEN_WINDOW && ctx->tcp->syn && wscale) { in tcp_parse_option()
265 if (ctx->tcp->syn && ctx->attrs.rcv_tsecr) in tcp_parse_option()
272 if (*opsize == TCPOLEN_SACK_PERM && ctx->tcp->syn) in tcp_parse_option()
286 ctx->off = (__u8 *)(ctx->tcp + 1) - (__u8 *)ctx->data, in tcp_parse_options()
306 if (!ctx->tcp->ece || !ctx->tcp->cwr) in tcp_validate_sysctl()
316 u32 seq = bpf_ntohl(ctx->tcp->seq); in tcp_prepare_cookie()
340 second = (u64)seq << 32 | ctx->tcp->source << 16 | ctx->tcp->dest; in tcp_prepare_cookie()
358 if (ctx->attrs.tstamp_ok && ctx->tcp->ece && ctx->tcp->cwr) in tcp_prepare_cookie()
366 ctx->ptr32 = (__be32 *)(ctx->tcp + 1); in tcp_write_options()
414 swap(ctx->tcp->source, ctx->tcp->dest); in tcp_handle_syn()
415 ctx->tcp->check = 0; in tcp_handle_syn()
416 ctx->tcp->ack_seq = bpf_htonl(bpf_ntohl(ctx->tcp->seq) + 1); in tcp_handle_syn()
417 ctx->tcp->seq = bpf_htonl(ctx->cookie); in tcp_handle_syn()
418 ctx->tcp->doff = ((long)ctx->ptr32 - (long)ctx->tcp) >> 2; in tcp_handle_syn()
419 ctx->tcp->ack = 1; in tcp_handle_syn()
420 if (!ctx->attrs.tstamp_ok || !ctx->tcp->ece || !ctx->tcp->cwr) in tcp_handle_syn()
421 ctx->tcp->ece = 0; in tcp_handle_syn()
422 ctx->tcp->cwr = 0; in tcp_handle_syn()
424 csum = bpf_csum_diff(0, 0, (void *)ctx->tcp, ctx->tcp->doff * 4, 0); in tcp_handle_syn()
430 ctx->tcp->check = tcp_v4_csum(ctx, csum); in tcp_handle_syn()
445 ctx->tcp->check = tcp_v6_csum(ctx, csum); in tcp_handle_syn()
448 ctx->ipv6->payload_len = bpf_htons((long)ctx->ptr32 - (long)ctx->tcp); in tcp_handle_syn()
464 u32 cookie = bpf_ntohl(ctx->tcp->ack_seq) - 1; in tcp_validate_cookie()
465 u32 seq = bpf_ntohl(ctx->tcp->seq) - 1; in tcp_validate_cookie()
476 second = (u64)seq << 32 | ctx->tcp->source << 16 | ctx->tcp->dest; in tcp_validate_cookie()
516 tuple.ipv4.sport = ctx->tcp->source; in tcp_handle_ack()
517 tuple.ipv4.dport = ctx->tcp->dest; in tcp_handle_ack()
522 tuple.ipv6.sport = ctx->tcp->source; in tcp_handle_ack()
523 tuple.ipv6.dport = ctx->tcp->dest; in tcp_handle_ack()
572 if (ctx.tcp->rst) in tcp_custom_syncookie()
575 if (ctx.tcp->syn) { in tcp_custom_syncookie()
576 if (ctx.tcp->ack) in tcp_custom_syncookie()