nftables_types.go 2.7 KB

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