nft01.sh 850 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/sh
  2. # SPDX-License-Identifier: GPL-2.0-or-later
  3. # Copyright (c) 2019 Oracle and/or its affiliates. All Rights Reserved.
  4. TST_SETUP="do_setup"
  5. TST_CLEANUP="do_cleanup"
  6. TST_NEEDS_DRIVERS="nf_tables"
  7. use_iptables=0
  8. cleanup_table=0
  9. cleanup_chain=0
  10. . iptables_lib.sh
  11. do_setup()
  12. {
  13. init
  14. local ip_table="ip${TST_IPV6}"
  15. if ! nft list table $ip_table filter > /dev/null 2>&1; then
  16. ROD nft add table $ip_table filter
  17. cleanup_table=1
  18. fi
  19. if ! nft list chain $ip_table filter INPUT > /dev/null 2>&1; then
  20. ROD nft add chain $ip_table filter INPUT '{ type filter hook input priority 0; }'
  21. cleanup_chain=1
  22. fi
  23. }
  24. do_cleanup()
  25. {
  26. local ip_table="ip${TST_IPV6}"
  27. [ "$cleanup_chain" = 1 ] && nft delete chain $ip_table filter INPUT >/dev/null 2>&1
  28. [ "$cleanup_table" = 1 ] && nft delete table $ip_table filter >/dev/null 2>&1
  29. cleanup
  30. }
  31. tst_run