TCPOLEN_MSS
if (opcode == TCPOPT_MSS && opsize == TCPOLEN_MSS) {
if (opsize == TCPOLEN_MSS && th->syn && !estab) {
(TCPOLEN_MSS << 16) |
(TCPOLEN_MSS << 16) |
if (opsize == TCPOLEN_MSS) {
for (i = sizeof(struct tcphdr); i <= tcp_hdrlen - TCPOLEN_MSS; i += optlen(opt, i)) {
if (opt[i] == TCPOPT_MSS && opt[i+1] == TCPOLEN_MSS) {
if (skb_tailroom(skb) < TCPOLEN_MSS) {
TCPOLEN_MSS - skb_tailroom(skb),
skb_put(skb, TCPOLEN_MSS);
memmove(opt + TCPOLEN_MSS, opt, len - sizeof(struct tcphdr));
htons(len), htons(len + TCPOLEN_MSS), true);
opt[1] = TCPOLEN_MSS;
tcph->doff += TCPOLEN_MSS/4;
return TCPOLEN_MSS;
&& (optlen - i) >= TCPOLEN_MSS
&& op[i+1] == TCPOLEN_MSS) {
if (*opsize == TCPOLEN_MSS && ctx->tcp->syn && mss)
*ctx->ptr32++ = bpf_htonl(TCPOPT_MSS << 24 | TCPOLEN_MSS << 16 |
*buf++ = bpf_htonl((TCPOPT_MSS << 24) | (TCPOLEN_MSS << 16) | mss);