nlctrl.yaml 3.8 KB

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