def parse_args()

in tools/tcpdump_encap_helper/tcpdump_encap_helper.py [0:0]


def parse_args():
    parser = argparse.ArgumentParser(
        description=(
            "this is a tool which helps to create a filter to match "
            "fields from internal header of IPIP/GUE packet"
        )
    )
    parser.add_argument(
        "-m",
        "--mode",
        choices=["4", "6", "46"],
        help=(
            "mode of the filter. possible values: 4 (for ipip) "
            "6 (for ip6ip6), 46 (for ip4ip6)"
        ),
    )
    parser.add_argument(
        "-g",
        "--gue",
        action="store_true",
        help=("run helper in GUE mode (instead of default IPIP)"),
    )
    parser.add_argument(
        "-s",
        "--src",
        default=None,
        help="src ip address of internal packet. could be ipv4 or ipv6",
    )
    parser.add_argument(
        "-d",
        "--dst",
        default=None,
        help="dst ip address of internal packet. could be ipv4 or ipv6",
    )
    parser.add_argument(
        "-p",
        "--proto",
        default=None,
        type=int,
        help=(
            "protocol of internal packet. must be a number. "
            "e.g. 6 for tcp or 17 for udp"
        ),
    )
    parser.add_argument(
        "--sport",
        default=None,
        type=int,
        help="src port of internal packet (e.g. if it's udp or tcp)",
    )
    parser.add_argument(
        "--dport",
        default=None,
        type=int,
        help="dst port of internal packet (e.g. if it's udp or tcp)",
    )

    return parser.parse_args()