fou.yaml 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
  2. name: fou
  3. protocol: genetlink-legacy
  4. doc: |
  5. Foo-over-UDP.
  6. c-family-name: fou-genl-name
  7. c-version-name: fou-genl-version
  8. max-by-define: true
  9. kernel-policy: global
  10. definitions:
  11. -
  12. type: enum
  13. name: encap_type
  14. name-prefix: fou-encap-
  15. enum-name:
  16. entries: [ unspec, direct, gue ]
  17. attribute-sets:
  18. -
  19. name: fou
  20. name-prefix: fou-attr-
  21. attributes:
  22. -
  23. name: unspec
  24. type: unused
  25. value: 0
  26. -
  27. name: port
  28. type: u16
  29. byte-order: big-endian
  30. -
  31. name: af
  32. type: u8
  33. -
  34. name: ipproto
  35. type: u8
  36. -
  37. name: type
  38. type: u8
  39. -
  40. name: remcsum_nopartial
  41. type: flag
  42. -
  43. name: local_v4
  44. type: u32
  45. -
  46. name: local_v6
  47. type: binary
  48. checks:
  49. min-len: 16
  50. -
  51. name: peer_v4
  52. type: u32
  53. -
  54. name: peer_v6
  55. type: binary
  56. checks:
  57. min-len: 16
  58. -
  59. name: peer_port
  60. type: u16
  61. byte-order: big-endian
  62. -
  63. name: ifindex
  64. type: s32
  65. operations:
  66. list:
  67. -
  68. name: unspec
  69. doc: unused
  70. value: 0
  71. -
  72. name: add
  73. doc: Add port.
  74. attribute-set: fou
  75. dont-validate: [ strict, dump ]
  76. flags: [ admin-perm ]
  77. do:
  78. request: &all_attrs
  79. attributes:
  80. - port
  81. - ipproto
  82. - type
  83. - remcsum_nopartial
  84. - local_v4
  85. - peer_v4
  86. - local_v6
  87. - peer_v6
  88. - peer_port
  89. - ifindex
  90. -
  91. name: del
  92. doc: Delete port.
  93. attribute-set: fou
  94. dont-validate: [ strict, dump ]
  95. flags: [ admin-perm ]
  96. do:
  97. request: &select_attrs
  98. attributes:
  99. - af
  100. - ifindex
  101. - port
  102. - peer_port
  103. - local_v4
  104. - peer_v4
  105. - local_v6
  106. - peer_v6
  107. -
  108. name: get
  109. doc: Get tunnel info.
  110. attribute-set: fou
  111. dont-validate: [ strict, dump ]
  112. do:
  113. request: *select_attrs
  114. reply: *all_attrs
  115. dump:
  116. reply: *all_attrs