#!/bin/bash
#
MSS=$1

FILTER="(
tcp[tcpflags] == tcp-syn && (
    ((tcp[12] & 0xf0) > 0x50 && tcp[20:2] == 0x0204 && tcp[22:2] < $MSS) ||
    ((tcp[12] & 0xf0) > 0x60 && (
        (tcp[21:2] == 0x0204 && tcp[23:2] < $MSS) ||
        (tcp[22:2] == 0x0204 && tcp[24:2] < $MSS) ||
        (tcp[23:2] == 0x0204 && tcp[25:2] < $MSS) ||
        (tcp[24:2] == 0x0204 && tcp[26:2] < $MSS))) ||
    ((tcp[12] & 0xf0) > 0x70 && (
        (tcp[25:2] == 0x0204 && tcp[27:2] < $MSS) ||
        (tcp[26:2] == 0x0204 && tcp[28:2] < $MSS) ||
        (tcp[27:2] == 0x0204 && tcp[29:2] < $MSS) ||
        (tcp[28:2] == 0x0204 && tcp[30:2] < $MSS))) ||
    ((tcp[12] & 0xf0) > 0x80 && (
        (tcp[29:2] == 0x0204 && tcp[31:2] < $MSS) ||
        (tcp[30:2] == 0x0204 && tcp[32:2] < $MSS) ||
        (tcp[31:2] == 0x0204 && tcp[33:2] < $MSS) ||
        (tcp[32:2] == 0x0204 && tcp[34:2] < $MSS))) ||
    ((tcp[12] & 0xf0) > 0x90 && (
        (tcp[33:2] == 0x0204 && tcp[35:2] < $MSS) ||
        (tcp[34:2] == 0x0204 && tcp[36:2] < $MSS) ||
        (tcp[35:2] == 0x0204 && tcp[37:2] < $MSS) ||
        (tcp[36:2] == 0x0204 && tcp[38:2] < $MSS))) ||
    ((tcp[12] & 0xf0) > 0xa0 && (
        (tcp[37:2] == 0x0204 && tcp[39:2] < $MSS) ||
        (tcp[38:2] == 0x0204 && tcp[40:2] < $MSS) ||
        (tcp[39:2] == 0x0204 && tcp[41:2] < $MSS) ||
        (tcp[40:2] == 0x0204 && tcp[42:2] < $MSS))) ||
    ((tcp[12] & 0xf0) > 0xb0 && (
        (tcp[41:2] == 0x0204 && tcp[43:2] < $MSS) ||
        (tcp[42:2] == 0x0204 && tcp[44:2] < $MSS) ||
        (tcp[43:2] == 0x0204 && tcp[45:2] < $MSS) ||
        (tcp[44:2] == 0x0204 && tcp[46:2] < $MSS))) ||
    ((tcp[12] & 0xf0) > 0xc0 && (
        (tcp[45:2] == 0x0204 && tcp[47:2] < $MSS) ||
        (tcp[46:2] == 0x0204 && tcp[48:2] < $MSS) ||
        (tcp[47:2] == 0x0204 && tcp[49:2] < $MSS) ||
        (tcp[48:2] == 0x0204 && tcp[50:2] < $MSS))) ||
    ((tcp[12] & 0xf0) > 0xd0 && (
        (tcp[49:2] == 0x0204 && tcp[51:2] < $MSS) ||
        (tcp[50:2] == 0x0204 && tcp[52:2] < $MSS) ||
        (tcp[51:2] == 0x0204 && tcp[53:2] < $MSS) ||
        (tcp[52:2] == 0x0204 && tcp[54:2] < $MSS))) ||
    ((tcp[12] & 0xf0) > 0xe0 && (
        (tcp[53:2] == 0x0204 && tcp[55:2] < $MSS) ||
        (tcp[54:2] == 0x0204 && tcp[56:2] < $MSS) ||
        (tcp[55:2] == 0x0204 && tcp[57:2] < $MSS) ||
        (tcp[56:2] == 0x0204 && tcp[58:2] < $MSS)))
))"

sudo tcpdump -i lo tcp and "$FILTER" -ddd
