diff options
| author | Viacheslav Hletenko <v.gletenko@vyos.io> | 2026-08-14 16:22:53 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-08-14 16:22:53 +0300 |
| commit | 94fd8a0f43578012f2ab7f2cd76eedca3b4ac5bb (patch) | |
| tree | ae6cbbef8c83f7ecc3b81f7cc20ea72049f74d5e /smoketest/scripts | |
| parent | c30f15ae89e9c67d065cc033131da44bd8b4d9c8 (diff) | |
| parent | dc6da4b49c383312b069eb3bdc8ed6237a33013a (diff) | |
| download | vyos-1x-94fd8a0f43578012f2ab7f2cd76eedca3b4ac5bb.tar.gz vyos-1x-94fd8a0f43578012f2ab7f2cd76eedca3b4ac5bb.zip | |
Merge pull request #5364 from l0crian1/normalize-proto-values
firewall: T8247: Normalize protocol values to protocol names
Diffstat (limited to 'smoketest/scripts')
| -rwxr-xr-x | smoketest/scripts/cli/test_firewall.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/smoketest/scripts/cli/test_firewall.py b/smoketest/scripts/cli/test_firewall.py index d8f29d4d5..f006c30d8 100755 --- a/smoketest/scripts/cli/test_firewall.py +++ b/smoketest/scripts/cli/test_firewall.py @@ -1687,5 +1687,34 @@ class TestFirewall(VyOSUnitTestSHIM.TestCase): ] self.verify_nftables(nftables_search, 'ip vyos_filter') + def test_protocol_normalization(self): + # Protocol cannot be ipv6-icmp on IPv4 + self.cli_set(['firewall', 'ipv4', 'input', 'filter', 'rule', '1', 'action', 'accept']) + self.cli_set(['firewall', 'ipv4', 'input', 'filter', 'rule', '1', 'protocol', '58']) + + with self.assertRaises(ConfigSessionError): + self.cli_commit() + + self.cli_discard() + + # Protocol must be TCP if flags are set + self.cli_set(['firewall', 'ipv4', 'input', 'filter', 'rule', '1', 'action', 'accept']) + self.cli_set(['firewall', 'ipv4', 'input', 'filter', 'rule', '1', 'protocol', '6']) + self.cli_set(['firewall', 'ipv4', 'input', 'filter', 'rule', '1', 'tcp', 'flags', 'syn']) + + # Protocol must be GRE if GRE specific fields are set + self.cli_set(['firewall', 'ipv4', 'input', 'filter', 'rule', '2', 'action', 'accept']) + self.cli_set(['firewall', 'ipv4', 'input', 'filter', 'rule', '2', 'protocol', '47']) + self.cli_set(['firewall', 'ipv4', 'input', 'filter', 'rule', '2', 'gre', 'flags', 'key', 'unset']) + + self.cli_commit() + + nftables_search = [ + ['tcp flags & syn == syn'], + ['gre flags & 4 == 0'], + ] + self.verify_nftables(nftables_search, 'ip vyos_filter') + + if __name__ == '__main__': unittest.main(verbosity=2, failfast=VyOSUnitTestSHIM.TestCase.debug_on()) |
