From nobody Wed Sep 25 10:44:01 2024 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4XDCyT36RSz5XJVH; Wed, 25 Sep 2024 10:44:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4XDCyT2Xkbz4jG9; Wed, 25 Sep 2024 10:44:01 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1727261041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XDpx+9g6eIH52eFqpJ5QwAejC/f9JHZBIdxw3l6nDM4=; b=elJjc6qp+QqQdB0uAq/4f0MIrPiOXT94b/QJcqlrpTK4BzDkLLtPBkajqKJqrnjCrlu0HE 7svAoUgs1GFk0ApoCfyDmy/59cH/LaOJqQdYx75D338HBPerCZj9+jLs39swdq0hJn43TO r1PUjN8qS0uKgkw3Z+O+VdEH1EDtD61iRU2BCtF77Gamuh1UOipHsN5tNfwiqzcAbOvgfV dSEHfCQdJBRL9RGEdJssRaKjp3/xnMrfrmrCQ1/nFGdjF7gkn/PCMte6fBHJit1a5uje6x RfGiCs0vCtKx1HuVMvUY4V7GjLKgFDVPZBimwmBwERpNNwFXFxJGsIeUGyFjAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1727261041; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=XDpx+9g6eIH52eFqpJ5QwAejC/f9JHZBIdxw3l6nDM4=; b=LUpsyYGKcKz+b32IAlp8WGf10F7uFR0WADpRgGE0bIOCwq6fcLitosLgbPxg92ecpYyTbC H/Eq7hOghFwIUTPv7OXaOk7qXudcMVWrJiU7iWl+CngupY8zxYApLq3fPi6JIDdpR3xwKE ZPE39qjcS7o1zgz3pPksHJz5iox/UPbsuwD58TmuyRvU1vk5+3VpdJws4LekTuwrLRW8FD 5/n5uO8JAnPOlsj+5GbGH6ykjhkS5cNkx2NsIc7SFQ9tOZn6ZNqIg8z3VCMgBwnLvyPoKl nV8FjwtaEyRHmhNfAl4ziH/8f6hzBmggu0pluj6AP6m55puXhYkR3nBBMVm8KQ== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1727261041; a=rsa-sha256; cv=none; b=PhUnE/MtBYlbsl5bkJVurZkBDlINIqa8gdBlxIoCPaYLJDKvJ1fMe/zhwrhvbY/aly922I RNWOuPZPQ1ZQtgsq67EcilKlGlqk3pMEQSgDIaw9GolO8ut8kIVRryZtTMs3mI1N+HS52+ kn0+h9Q3BqipOwlwKPicBf9fiMKxeQ6p8FySZgB/wEUtQIL2RnHCMsYri1gp2ma/T2vul9 IiG1kC5qar8gN/+O6PXC+IaIWiKQn4A4jCV4DJg/ZuASNHq0FuiSWDWzyNmijaG/k3eh29 tfEaZLGUyyL6c59+5L6OiK2ZFYOMvlI0+OwiAiA3BK5LSN4DKDS3fNrBtu0S9w== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4XDCyT27tdz1822; Wed, 25 Sep 2024 10:44:01 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 48PAi131085268; Wed, 25 Sep 2024 10:44:01 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 48PAi1dB085265; Wed, 25 Sep 2024 10:44:01 GMT (envelope-from git) Date: Wed, 25 Sep 2024 10:44:01 GMT Message-Id: <202409251044.48PAi1dB085265@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Kristof Provost Subject: git: 6aeaadf68def - main - pf tests: Remove nargs from single arguments List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kp X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 6aeaadf68def9bb6355c7462c5527574698367df Auto-Submitted: auto-generated The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=6aeaadf68def9bb6355c7462c5527574698367df commit 6aeaadf68def9bb6355c7462c5527574698367df Author: Kajetan Staszkiewicz AuthorDate: 2024-09-25 08:35:33 +0000 Commit: Kristof Provost CommitDate: 2024-09-25 10:43:27 +0000 pf tests: Remove nargs from single arguments Using nargs=1 causes arguments to produce lists from which we must then get the real value. The same applies to defaults, the must be provided as arrays too. Remove nargs=1 so that values and defaults can be accessed directly. Reviewed by: kp Differential Revision: https://reviews.freebsd.org/D46772 --- tests/sys/netpfil/common/pft_ping.py | 73 ++++++++++++++++-------------------- 1 file changed, 33 insertions(+), 40 deletions(-) diff --git a/tests/sys/netpfil/common/pft_ping.py b/tests/sys/netpfil/common/pft_ping.py index a24a1e00150a..21b08c75a7da 100644 --- a/tests/sys/netpfil/common/pft_ping.py +++ b/tests/sys/netpfil/common/pft_ping.py @@ -408,17 +408,15 @@ def parse_args(): description="Ping test tool") # Parameters of sent ping request - parser.add_argument('--sendif', nargs=1, - required=True, + parser.add_argument('--sendif', required=True, help='The interface through which the packet(s) will be sent') - parser.add_argument('--to', nargs=1, - required=True, + parser.add_argument('--to', required=True, help='The destination IP address for the ping request') parser.add_argument('--ping-type', choices=('icmp', 'tcpsyn'), help='Type of ping: ICMP (default) or TCP SYN', default='icmp') - parser.add_argument('--fromaddr', nargs=1, + parser.add_argument('--fromaddr', help='The source IP address for the ping request') # Where to look for packets to analyze. @@ -431,36 +429,36 @@ def parse_args(): # Packet settings parser_send = parser.add_argument_group('Values set in transmitted packets') - parser_send.add_argument('--send-flags', nargs=1, type=str, + parser_send.add_argument('--send-flags', type=str, help='IPv4 fragmentation flags') - parser_send.add_argument('--send-frag-length', nargs=1, type=int, - help='Force IP fragmentation with given fragment length') - parser_send.add_argument('--send-hlim', nargs=1, type=int, + parser_send.add_argument('--send-frag-length', type=int, + help='Force IP fragmentation with given fragment length') + parser_send.add_argument('--send-hlim', type=int, help='IPv6 Hop Limit or IPv4 Time To Live') - parser_send.add_argument('--send-mss', nargs=1, type=int, + parser_send.add_argument('--send-mss', type=int, help='TCP Maximum Segment Size') - parser_send.add_argument('--send-seq', nargs=1, type=int, + parser_send.add_argument('--send-seq', type=int, help='TCP sequence number') - parser_send.add_argument('--send-length', nargs=1, type=int, - default=[len(PAYLOAD_MAGIC)], help='ICMP Echo Request payload size') - parser_send.add_argument('--send-tc', nargs=1, type=int, + parser_send.add_argument('--send-length', type=int, default=len(PAYLOAD_MAGIC), + help='ICMP Echo Request payload size') + parser_send.add_argument('--send-tc', type=int, help='IPv6 Traffic Class or IPv4 DiffServ / ToS') parser_send.add_argument('--send-tcpopt-unaligned', action='store_true', - help='Include unaligned TCP options') + help='Include unaligned TCP options') parser_send.add_argument('--send-nop', action='store_true', - help='Include a NOP IPv4 option') + help='Include a NOP IPv4 option') # Expectations parser_expect = parser.add_argument_group('Values expected in sniffed packets') - parser_expect.add_argument('--expect-flags', nargs=1, type=str, + parser_expect.add_argument('--expect-flags', type=str, help='IPv4 fragmentation flags') - parser_expect.add_argument('--expect-hlim', nargs=1, type=int, + parser_expect.add_argument('--expect-hlim', type=int, help='IPv6 Hop Limit or IPv4 Time To Live') - parser_expect.add_argument('--expect-mss', nargs=1, type=int, + parser_expect.add_argument('--expect-mss', type=int, help='TCP Maximum Segment Size') - parser_send.add_argument('--expect-seq', nargs=1, type=int, + parser_send.add_argument('--expect-seq', type=int, help='TCP sequence number') - parser_expect.add_argument('--expect-tc', nargs=1, type=int, + parser_expect.add_argument('--expect-tc', type=int, help='IPv6 Traffic Class or IPv4 DiffServ / ToS') parser.add_argument('-v', '--verbose', action='store_true', @@ -478,31 +476,26 @@ def main(): if args.verbose: LOGGER.setLevel(logging.DEBUG) - # Dig out real values of program arguments - send_if = args.sendif[0] - reply_ifs = args.replyif - recv_ifs = args.recvif - dst_address = args.to[0] - - # Standardize parameters which have nargs=1. + # Split parameters into send and expect parameters. Parameters might be + # missing from the command line, always fill the dictionaries with None. send_params = {} expect_params = {} for param_name in ('flags', 'hlim', 'length', 'mss', 'seq', 'tc', 'frag_length'): param_arg = vars(args).get(f'send_{param_name}') - send_params[param_name] = param_arg[0] if param_arg else None + send_params[param_name] = param_arg if param_arg else None param_arg = vars(args).get(f'expect_{param_name}') - expect_params[param_name] = param_arg[0] if param_arg else None + expect_params[param_name] = param_arg if param_arg else None expect_params['length'] = send_params['length'] send_params['tcpopt_unaligned'] = args.send_tcpopt_unaligned send_params['nop'] = args.send_nop - send_params['src_address'] = args.fromaddr[0] if args.fromaddr else None + send_params['src_address'] = args.fromaddr if args.fromaddr else None # We may not have a default route. Tell scapy where to start looking for routes - sp.conf.iface6 = send_if + sp.conf.iface6 = args.sendif # Configuration sanity checking. - if not (reply_ifs or recv_ifs): + if not (args.replyif or args.recvif): raise Exception('With no reply or recv interface specified no traffic ' 'can be sniffed and verified!' ) @@ -514,22 +507,22 @@ def main(): else: defrag = False - if recv_ifs: + if args.recvif: sniffer_params = copy(expect_params) sniffer_params['src_address'] = None - sniffer_params['dst_address'] = dst_address - for iface in recv_ifs: + sniffer_params['dst_address'] = args.to + for iface in args.recvif: LOGGER.debug(f'Installing receive sniffer on {iface}') sniffers.append( setup_sniffer(iface, args.ping_type, 'request', sniffer_params, defrag, )) - if reply_ifs: + if args.replyif: sniffer_params = copy(expect_params) - sniffer_params['src_address'] = dst_address + sniffer_params['src_address'] = args.to sniffer_params['dst_address'] = None - for iface in reply_ifs: + for iface in args.replyif: LOGGER.debug(f'Installing reply sniffer on {iface}') sniffers.append( setup_sniffer(iface, args.ping_type, 'reply', @@ -538,7 +531,7 @@ def main(): LOGGER.debug(f'Installed {len(sniffers)} sniffers') - send_ping(dst_address, send_if, args.ping_type, send_params) + send_ping(args.to, args.sendif, args.ping_type, send_params) err = 0 sniffer_num = 0