167bd1d07SKajetan Staszkiewicz# 267bd1d07SKajetan Staszkiewicz# SPDX-License-Identifier: BSD-2-Clause 367bd1d07SKajetan Staszkiewicz# 467bd1d07SKajetan Staszkiewicz# Copyright (c) 2024 Kajetan Staszkiewicz <vegeta@tuxpowered.net> 567bd1d07SKajetan Staszkiewicz# 667bd1d07SKajetan Staszkiewicz# Redistribution and use in source and binary forms, with or without 767bd1d07SKajetan Staszkiewicz# modification, are permitted provided that the following conditions 867bd1d07SKajetan Staszkiewicz# are met: 967bd1d07SKajetan Staszkiewicz# 1. Redistributions of source code must retain the above copyright 1067bd1d07SKajetan Staszkiewicz# notice, this list of conditions and the following disclaimer. 1167bd1d07SKajetan Staszkiewicz# 2. Redistributions in binary form must reproduce the above copyright 1267bd1d07SKajetan Staszkiewicz# notice, this list of conditions and the following disclaimer in the 1367bd1d07SKajetan Staszkiewicz# documentation and/or other materials provided with the distribution. 1467bd1d07SKajetan Staszkiewicz# 1567bd1d07SKajetan Staszkiewicz# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 1667bd1d07SKajetan Staszkiewicz# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1767bd1d07SKajetan Staszkiewicz# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1867bd1d07SKajetan Staszkiewicz# ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 1967bd1d07SKajetan Staszkiewicz# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2067bd1d07SKajetan Staszkiewicz# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2167bd1d07SKajetan Staszkiewicz# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2267bd1d07SKajetan Staszkiewicz# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2367bd1d07SKajetan Staszkiewicz# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2467bd1d07SKajetan Staszkiewicz# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 2567bd1d07SKajetan Staszkiewicz# SUCH DAMAGE. 2667bd1d07SKajetan Staszkiewicz 2767bd1d07SKajetan Staszkiewicz. $(atf_get_srcdir)/utils.subr 2867bd1d07SKajetan Staszkiewicz 2967bd1d07SKajetan Staszkiewicz 3067bd1d07SKajetan Staszkiewiczmax_states_head() 3167bd1d07SKajetan Staszkiewicz{ 3267bd1d07SKajetan Staszkiewicz atf_set descr 'Max states per rule' 3367bd1d07SKajetan Staszkiewicz atf_set require.user root 34*c46af893SJose Luis Duran atf_set require.progs python3 scapy 3567bd1d07SKajetan Staszkiewicz} 3667bd1d07SKajetan Staszkiewicz 3767bd1d07SKajetan Staszkiewiczmax_states_body() 3867bd1d07SKajetan Staszkiewicz{ 3967bd1d07SKajetan Staszkiewicz setup_router_dummy_ipv6 4067bd1d07SKajetan Staszkiewicz 4167bd1d07SKajetan Staszkiewicz pft_set_rules router \ 4267bd1d07SKajetan Staszkiewicz "block" \ 43f28d5ac5SKajetan Staszkiewicz "pass inet6 proto icmp6 icmp6-type { neighbrsol, neighbradv }" \ 44f28d5ac5SKajetan Staszkiewicz "pass in on ${epair_tester}b inet6 proto tcp keep state (max 3)" \ 45f28d5ac5SKajetan Staszkiewicz "pass out on ${epair_server}a inet6 proto tcp keep state" 4667bd1d07SKajetan Staszkiewicz 4767bd1d07SKajetan Staszkiewicz ping_dummy_check_request exit:0 --ping-type=tcpsyn --send-sport=4201 4867bd1d07SKajetan Staszkiewicz ping_dummy_check_request exit:0 --ping-type=tcpsyn --send-sport=4202 49f28d5ac5SKajetan Staszkiewicz ping_dummy_check_request exit:0 --ping-type=tcpsyn --send-sport=4203 50f28d5ac5SKajetan Staszkiewicz ping_dummy_check_request exit:1 --ping-type=tcpsyn --send-sport=4204 5167bd1d07SKajetan Staszkiewicz} 5267bd1d07SKajetan Staszkiewicz 5367bd1d07SKajetan Staszkiewiczmax_states_cleanup() 5467bd1d07SKajetan Staszkiewicz{ 5567bd1d07SKajetan Staszkiewicz pft_cleanup 5667bd1d07SKajetan Staszkiewicz} 5767bd1d07SKajetan Staszkiewicz 5867bd1d07SKajetan Staszkiewicz 5967bd1d07SKajetan Staszkiewiczatf_init_test_cases() 6067bd1d07SKajetan Staszkiewicz{ 6167bd1d07SKajetan Staszkiewicz atf_add_test_case "max_states" 6267bd1d07SKajetan Staszkiewicz} 63