nftables_types.go 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. // Copyright (c) Tailscale Inc & AUTHORS
  2. // SPDX-License-Identifier: BSD-3-Clause
  3. //go:build linux && !(386 || loong64 || arm || armbe)
  4. package linuxfw
  5. import (
  6. "github.com/google/nftables/expr"
  7. "github.com/google/nftables/xt"
  8. )
  9. var metaKeyNames = map[expr.MetaKey]string{
  10. expr.MetaKeyLEN: "LEN",
  11. expr.MetaKeyPROTOCOL: "PROTOCOL",
  12. expr.MetaKeyPRIORITY: "PRIORITY",
  13. expr.MetaKeyMARK: "MARK",
  14. expr.MetaKeyIIF: "IIF",
  15. expr.MetaKeyOIF: "OIF",
  16. expr.MetaKeyIIFNAME: "IIFNAME",
  17. expr.MetaKeyOIFNAME: "OIFNAME",
  18. expr.MetaKeyIIFTYPE: "IIFTYPE",
  19. expr.MetaKeyOIFTYPE: "OIFTYPE",
  20. expr.MetaKeySKUID: "SKUID",
  21. expr.MetaKeySKGID: "SKGID",
  22. expr.MetaKeyNFTRACE: "NFTRACE",
  23. expr.MetaKeyRTCLASSID: "RTCLASSID",
  24. expr.MetaKeySECMARK: "SECMARK",
  25. expr.MetaKeyNFPROTO: "NFPROTO",
  26. expr.MetaKeyL4PROTO: "L4PROTO",
  27. expr.MetaKeyBRIIIFNAME: "BRIIIFNAME",
  28. expr.MetaKeyBRIOIFNAME: "BRIOIFNAME",
  29. expr.MetaKeyPKTTYPE: "PKTTYPE",
  30. expr.MetaKeyCPU: "CPU",
  31. expr.MetaKeyIIFGROUP: "IIFGROUP",
  32. expr.MetaKeyOIFGROUP: "OIFGROUP",
  33. expr.MetaKeyCGROUP: "CGROUP",
  34. expr.MetaKeyPRANDOM: "PRANDOM",
  35. }
  36. var cmpOpNames = map[expr.CmpOp]string{
  37. expr.CmpOpEq: "EQ",
  38. expr.CmpOpNeq: "NEQ",
  39. expr.CmpOpLt: "LT",
  40. expr.CmpOpLte: "LTE",
  41. expr.CmpOpGt: "GT",
  42. expr.CmpOpGte: "GTE",
  43. }
  44. var verdictNames = map[expr.VerdictKind]string{
  45. expr.VerdictReturn: "RETURN",
  46. expr.VerdictGoto: "GOTO",
  47. expr.VerdictJump: "JUMP",
  48. expr.VerdictBreak: "BREAK",
  49. expr.VerdictContinue: "CONTINUE",
  50. expr.VerdictDrop: "DROP",
  51. expr.VerdictAccept: "ACCEPT",
  52. expr.VerdictStolen: "STOLEN",
  53. expr.VerdictQueue: "QUEUE",
  54. expr.VerdictRepeat: "REPEAT",
  55. expr.VerdictStop: "STOP",
  56. }
  57. var payloadOperationTypeNames = map[expr.PayloadOperationType]string{
  58. expr.PayloadLoad: "LOAD",
  59. expr.PayloadWrite: "WRITE",
  60. }
  61. var payloadBaseNames = map[expr.PayloadBase]string{
  62. expr.PayloadBaseLLHeader: "ll-header",
  63. expr.PayloadBaseNetworkHeader: "network-header",
  64. expr.PayloadBaseTransportHeader: "transport-header",
  65. }
  66. var packetTypeNames = map[int]string{
  67. 0 /* PACKET_HOST */ : "unicast",
  68. 1 /* PACKET_BROADCAST */ : "broadcast",
  69. 2 /* PACKET_MULTICAST */ : "multicast",
  70. }
  71. var addrTypeFlagNames = map[xt.AddrTypeFlags]string{
  72. xt.AddrTypeUnspec: "unspec",
  73. xt.AddrTypeUnicast: "unicast",
  74. xt.AddrTypeLocal: "local",
  75. xt.AddrTypeBroadcast: "broadcast",
  76. xt.AddrTypeAnycast: "anycast",
  77. xt.AddrTypeMulticast: "multicast",
  78. xt.AddrTypeBlackhole: "blackhole",
  79. xt.AddrTypeUnreachable: "unreachable",
  80. xt.AddrTypeProhibit: "prohibit",
  81. xt.AddrTypeThrow: "throw",
  82. xt.AddrTypeNat: "nat",
  83. xt.AddrTypeXresolve: "xresolve",
  84. }