From nobody Fri Apr 7 15:57:54 2023 X-Original-To: dev-commits-src-main@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 4PtNLW19Vfz43Z2C; Fri, 7 Apr 2023 15:57:55 +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 "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4PtNLW0bPGz3K03; Fri, 7 Apr 2023 15:57:55 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1680883075; 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=/yxcOiGHc/q+AEF5yAE6lat9S9oo7ccVTyaYzF91jYc=; b=eBXWkeOWij4xf+hN7y+v6FrTBb9+RirBvLQPxrfsB1f/Ah55q560JRdod/APTVeef5OKwi +XrnZ4P264JVdMucx56z8rDUW/vWhAKRvETSzBbovdtihF/1Jc5AZScRDfAnxNnLfQLvdU L/4m1xUtfGYSpLZWUX7fwMIO5gDQjcyACHBOiVVmRFb0k9AFm67e1BVLeaYc6XvqUAy9gD eXEko6h5Hu2lW8bDB7d6tE/jUiD9rERPRnQCMf4bxwBiLA0gKYqPSH2pbBApv2x4LXDhcq w5ire8snS2hqWxNv/W0FehK/DFa0zrk6Ey3kEzRyGuztY2OJS1D9g4HJRgXl8A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1680883075; 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=/yxcOiGHc/q+AEF5yAE6lat9S9oo7ccVTyaYzF91jYc=; b=PSiKuhzRXVxqZ3eLGf4WK3oQWAe6wGKy20xIkRd26o9UdovGE0rvMi5WIZoZ3iSVmO0KiA 5IaCyBKHl1YNVGIsusb7DPHC0fJ2zXAhWtzBNUUQ5t618RGKZ30OS2iHqZixwu9B3ez9Dm SaEtnuQP+f0pMgWJ5xFo2boil8aFWYvv3jegH4Akko8Bg8vRyKk44MDc6G4Rqp/Qe0rH+u Z6EEKEIO/pqVmua3Xfk2cNdXsjA7oPLC5bPaaC4Nb+Tz1pfcJRhhzAS5M1RAyVZ9HqntQ5 9i1JjPARj+4wEENRlccrf9frT5LapjzOEK7KpQYNq8AOqkngn67kM3hvks84/w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1680883075; a=rsa-sha256; cv=none; b=mc6aB4nFHHglqOyf6Rb3YrA3Nl0x2RADyJwE7iRnfhMrKvgZGQC1Mhla4oOIvwuVb1fZpi GFv9jWLxW0cfIV1mEQk3u9MDOzEvGpPxjYNZYfBeP1wBbQEnY/2rUgDWYH0QWukJX6EfCX bKEVfC9mhSlEWwqw9PCqUxCaZvamXuuoXt9I814KOYtUj/zYkRzI3Pt7VdOvXQ57zoLG7S M3qqDlWPG1bsHv3vQU540iVtGutwjPS32FkmpLg42XJXKIHTc2IolRWh+KPeDTy+mEIaeH Olw/UFrz/wmw30NedTXOsBRUAd//b0Nrgs2zueSvDxZyoVfkOHdrUOMcEf8pzw== 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 4PtNLV6mXYzrg0; Fri, 7 Apr 2023 15:57:54 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 337FvsHe068527; Fri, 7 Apr 2023 15:57:54 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 337FvsR1068526; Fri, 7 Apr 2023 15:57:54 GMT (envelope-from git) Date: Fri, 7 Apr 2023 15:57:54 GMT Message-Id: <202304071557.337FvsR1068526@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: 5e2e3615d91f - main - netinet tests: test carp source MAC address List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-main@freebsd.org X-BeenThere: dev-commits-src-main@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: 5e2e3615d91f9c0c688987915ff5c8de23c22bde Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by kp: URL: https://cgit.FreeBSD.org/src/commit/?id=5e2e3615d91f9c0c688987915ff5c8de23c22bde commit 5e2e3615d91f9c0c688987915ff5c8de23c22bde Author: Kristof Provost AuthorDate: 2023-04-06 16:10:27 +0000 Commit: Kristof Provost CommitDate: 2023-04-07 15:56:45 +0000 netinet tests: test carp source MAC address Ensure that (multicast) CARP packets are sent with the expected source MAC address. Reviewed by: melifaro Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D39454 --- tests/sys/netinet/Makefile | 2 ++ tests/sys/netinet/carp.py | 53 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+) diff --git a/tests/sys/netinet/Makefile b/tests/sys/netinet/Makefile index d6324367606f..69fffa63fb79 100644 --- a/tests/sys/netinet/Makefile +++ b/tests/sys/netinet/Makefile @@ -24,6 +24,8 @@ ATF_TESTS_SH= arp \ output \ redirect +ATF_TESTS_PYTEST+= carp.py + TEST_METADATA.divert+= required_programs="python" TEST_METADATA.forward+= required_programs="python" TEST_METADATA.output+= required_programs="python" diff --git a/tests/sys/netinet/carp.py b/tests/sys/netinet/carp.py new file mode 100644 index 000000000000..ac2c5547fe97 --- /dev/null +++ b/tests/sys/netinet/carp.py @@ -0,0 +1,53 @@ +import pytest +from atf_python.sys.net.tools import ToolsHelper +from atf_python.sys.net.vnet import VnetTestTemplate + +sc = None + + +def filter_f(x): + ip = x.getlayer(sc.IP) + if not ip: + return False + + return ip.proto == 112 + + +class TestCarp(VnetTestTemplate): + REQUIRED_MODULES = ["carp"] + TOPOLOGY = { + "vnet1": {"ifaces": ["if1"]}, + "if1": {"prefixes4": [("192.0.2.1/24", "192.0.2.2/24")]}, + } + + def setup_method(self, method): + global sc + if sc is None: + import scapy.all as _sc + + sc = _sc + super().setup_method(method) + + @classmethod + def check_carp_src_mac(self, pkts): + for p in pkts: + if not filter_f(p): + continue + + print("Packet src mac {}".format(p.src)) + + if p.src != "00:00:5e:00:01:01": + raise + + def test_source_mac(self): + "Test carp packets source address" + + if1 = self.vnet.iface_alias_map["if1"] + + ToolsHelper.print_output( + "ifconfig {} add vhid 1 192.0.2.203/24".format(if1.name) + ) + + carp_pkts = sc.sniff(iface=if1.name, stop_filter=filter_f, timeout=5) + + self.check_carp_src_mac(carp_pkts)