nlctrl.yaml 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
  2. ---
  3. name: nlctrl
  4. protocol: genetlink-legacy
  5. uapi-header: linux/genetlink.h
  6. doc: |
  7. genetlink meta-family that exposes information about all genetlink
  8. families registered in the kernel (including itself).
  9. definitions:
  10. -
  11. name: op-flags
  12. type: flags
  13. enum-name:
  14. entries:
  15. - admin-perm
  16. - cmd-cap-do
  17. - cmd-cap-dump
  18. - cmd-cap-haspol
  19. - uns-admin-perm
  20. -
  21. name: attr-type
  22. enum-name: netlink-attribute-type
  23. type: enum
  24. entries:
  25. - invalid
  26. - flag
  27. - u8
  28. - u16
  29. - u32
  30. - u64
  31. - s8
  32. - s16
  33. - s32
  34. - s64
  35. - binary
  36. - string
  37. - nul-string
  38. - nested
  39. - nested-array
  40. - bitfield32
  41. - sint
  42. - uint
  43. attribute-sets:
  44. -
  45. name: ctrl-attrs
  46. name-prefix: ctrl-attr-
  47. attributes:
  48. -
  49. name: family-id
  50. type: u16
  51. -
  52. name: family-name
  53. type: string
  54. -
  55. name: version
  56. type: u32
  57. -
  58. name: hdrsize
  59. type: u32
  60. -
  61. name: maxattr
  62. type: u32
  63. -
  64. name: ops
  65. type: indexed-array
  66. sub-type: nest
  67. nested-attributes: op-attrs
  68. -
  69. name: mcast-groups
  70. type: indexed-array
  71. sub-type: nest
  72. nested-attributes: mcast-group-attrs
  73. -
  74. name: policy
  75. type: nest-type-value
  76. type-value: [policy-id, attr-id]
  77. nested-attributes: policy-attrs
  78. -
  79. name: op-policy
  80. type: nest-type-value
  81. type-value: [op-id]
  82. nested-attributes: op-policy-attrs
  83. -
  84. name: op
  85. type: u32
  86. -
  87. name: mcast-group-attrs
  88. name-prefix: ctrl-attr-mcast-grp-
  89. enum-name:
  90. attributes:
  91. -
  92. name: name
  93. type: string
  94. -
  95. name: id
  96. type: u32
  97. -
  98. name: op-attrs
  99. name-prefix: ctrl-attr-op-
  100. enum-name:
  101. attributes:
  102. -
  103. name: id
  104. type: u32
  105. -
  106. name: flags
  107. type: u32
  108. enum: op-flags
  109. enum-as-flags: true
  110. -
  111. name: policy-attrs
  112. name-prefix: nl-policy-type-attr-
  113. enum-name:
  114. attributes:
  115. -
  116. name: type
  117. type: u32
  118. enum: attr-type
  119. -
  120. name: min-value-s
  121. type: s64
  122. -
  123. name: max-value-s
  124. type: s64
  125. -
  126. name: min-value-u
  127. type: u64
  128. -
  129. name: max-value-u
  130. type: u64
  131. -
  132. name: min-length
  133. type: u32
  134. -
  135. name: max-length
  136. type: u32
  137. -
  138. name: policy-idx
  139. type: u32
  140. -
  141. name: policy-maxtype
  142. type: u32
  143. -
  144. name: bitfield32-mask
  145. type: u32
  146. -
  147. name: mask
  148. type: u64
  149. -
  150. name: pad
  151. type: pad
  152. -
  153. name: op-policy-attrs
  154. name-prefix: ctrl-attr-policy-
  155. enum-name:
  156. attributes:
  157. -
  158. name: do
  159. type: u32
  160. -
  161. name: dump
  162. type: u32
  163. operations:
  164. enum-model: directional
  165. name-prefix: ctrl-cmd-
  166. list:
  167. -
  168. name: getfamily
  169. doc: Get / dump genetlink families
  170. attribute-set: ctrl-attrs
  171. do:
  172. request:
  173. value: 3
  174. attributes:
  175. - family-name
  176. reply: &all-attrs
  177. value: 1
  178. attributes:
  179. - family-id
  180. - family-name
  181. - hdrsize
  182. - maxattr
  183. - mcast-groups
  184. - ops
  185. - version
  186. dump:
  187. reply: *all-attrs
  188. -
  189. name: getpolicy
  190. doc: Get / dump genetlink policies
  191. attribute-set: ctrl-attrs
  192. dump:
  193. request:
  194. value: 10
  195. attributes:
  196. - family-name
  197. - family-id
  198. - op
  199. reply:
  200. value: 10
  201. attributes:
  202. - family-id
  203. - op-policy
  204. - policy