nl-linux 0.2.4 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/.yardopts +5 -0
  4. data/CHANGELOG.md +8 -0
  5. data/Rakefile +27 -5
  6. data/generated/nl/linux/binder.rb +227 -19
  7. data/generated/nl/linux/conntrack.rb +1325 -365
  8. data/generated/nl/linux/dev_energymodel.rb +357 -66
  9. data/generated/nl/linux/devlink.rb +6310 -1859
  10. data/generated/nl/linux/dpll.rb +2202 -376
  11. data/generated/nl/linux/drm_ras.rb +312 -63
  12. data/generated/nl/linux/ethtool.rb +7555 -2447
  13. data/generated/nl/linux/fou.rb +381 -133
  14. data/generated/nl/linux/handshake.rb +340 -70
  15. data/generated/nl/linux/lockd.rb +132 -27
  16. data/generated/nl/linux/mptcp_pm.rb +773 -161
  17. data/generated/nl/linux/net_shaper.rb +892 -211
  18. data/generated/nl/linux/netdev.rb +2366 -518
  19. data/generated/nl/linux/nfsd.rb +1299 -317
  20. data/generated/nl/linux/nftables.rb +5351 -1533
  21. data/generated/nl/linux/nl80211.rb +4601 -882
  22. data/generated/nl/linux/nlctrl.rb +460 -117
  23. data/generated/nl/linux/ovpn.rb +1360 -262
  24. data/generated/nl/linux/ovs_datapath.rb +312 -98
  25. data/generated/nl/linux/ovs_flow.rb +1866 -358
  26. data/generated/nl/linux/ovs_packet.rb +331 -45
  27. data/generated/nl/linux/ovs_vport.rb +374 -123
  28. data/generated/nl/linux/psp.rb +1093 -201
  29. data/generated/nl/linux/rt_addr.rb +423 -165
  30. data/generated/nl/linux/rt_link.rb +6928 -1336
  31. data/generated/nl/linux/rt_neigh.rb +1063 -297
  32. data/generated/nl/linux/rt_route.rb +1112 -483
  33. data/generated/nl/linux/rt_rule.rb +931 -262
  34. data/generated/nl/linux/sunrpc_cache.rb +407 -82
  35. data/generated/nl/linux/tc.rb +10081 -1763
  36. data/generated/nl/linux/tcp_metrics.rb +388 -109
  37. data/generated/nl/linux/team.rb +350 -84
  38. data/generated/nl/linux/wireguard.rb +525 -96
  39. data/generated/nl/linux.rb +1 -0
  40. data/lib/nl/linux/nlctrl_resolver.rb +31 -0
  41. data/lib/nl/linux/version.rb +1 -1
  42. data/sig/generated/nl/linux/binder.rbs +366 -0
  43. data/sig/generated/nl/linux/conntrack.rbs +2787 -0
  44. data/sig/generated/nl/linux/dev_energymodel.rbs +636 -0
  45. data/sig/generated/nl/linux/devlink.rbs +12496 -0
  46. data/sig/generated/nl/linux/dpll.rbs +3461 -0
  47. data/sig/generated/nl/linux/drm_ras.rbs +553 -0
  48. data/sig/generated/nl/linux/ethtool.rbs +15291 -0
  49. data/sig/generated/nl/linux/fou.rbs +702 -0
  50. data/sig/generated/nl/linux/handshake.rbs +622 -0
  51. data/sig/generated/nl/linux/lockd.rbs +234 -0
  52. data/sig/generated/nl/linux/mptcp_pm.rbs +1511 -0
  53. data/sig/generated/nl/linux/net_shaper.rbs +1645 -0
  54. data/sig/generated/nl/linux/netdev.rbs +4187 -0
  55. data/sig/generated/nl/linux/nfsd.rbs +2520 -0
  56. data/sig/generated/nl/linux/nftables.rbs +10304 -0
  57. data/sig/generated/nl/linux/nl80211.rbs +9786 -0
  58. data/sig/generated/nl/linux/nlctrl.rbs +944 -0
  59. data/sig/generated/nl/linux/nlctrl_resolver.rbs +20 -0
  60. data/sig/generated/nl/linux/ovpn.rbs +2564 -0
  61. data/sig/generated/nl/linux/ovs_datapath.rbs +640 -0
  62. data/sig/generated/nl/linux/ovs_flow.rbs +3659 -0
  63. data/sig/generated/nl/linux/ovs_packet.rbs +540 -0
  64. data/sig/generated/nl/linux/ovs_vport.rbs +777 -0
  65. data/sig/generated/nl/linux/psp.rbs +1846 -0
  66. data/sig/generated/nl/linux/rt_addr.rbs +866 -0
  67. data/sig/generated/nl/linux/rt_link.rbs +13438 -0
  68. data/sig/generated/nl/linux/rt_neigh.rbs +2124 -0
  69. data/sig/generated/nl/linux/rt_route.rbs +2218 -0
  70. data/sig/generated/nl/linux/rt_rule.rbs +1726 -0
  71. data/sig/generated/nl/linux/sunrpc_cache.rbs +739 -0
  72. data/sig/generated/nl/linux/tc.rbs +19931 -0
  73. data/sig/generated/nl/linux/tcp_metrics.rbs +740 -0
  74. data/sig/generated/nl/linux/team.rbs +733 -0
  75. data/sig/generated/nl/linux/version.rbs +7 -0
  76. data/sig/generated/nl/linux/wireguard.rbs +1006 -0
  77. data/sig/generated/nl/linux.rbs +6 -0
  78. data/sig/generated/nl-linux.rbs +2 -0
  79. metadata +51 -10
@@ -1,99 +1,204 @@
1
1
  # SPDX-License-Identifier: ((GPL-2.0 WITH Linux-syscall-note) OR BSD-3-Clause)
2
+ #
3
+ # This file is based on Documentation/netlink/specs/lockd.yaml from Linux v7.2.
2
4
  #--
3
5
  # frozen_string_literal: true
4
- # rbs_inline: enabled
5
6
  # This code is generated by Ynl::Generator. DO NOT EDIT.
6
7
  require 'nl'
7
8
  module Nl; module Linux
8
9
  # lockd configuration over generic netlink
9
- class Lockd < ::Nl::Family
10
+ class Lockd < ::Nl::Genl::Family
10
11
  NAME = "lockd"
11
- PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Genl.new("lockd"))
12
+ VERSION = 1
13
+ # @rbs (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) -> (::Nl::Family::Session & instance)
14
+ # @rbs | [R] (?resolver: ^(::Nl::Genl::Client, ::String) -> ::Nl::Genl::FamilyInfo, ?executor: executor?, ?notification_capacity: ::Integer?) { (instance) -> R } -> R
15
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
16
+ # @param [#call] resolver
17
+ # @param [Symbol, nil] executor
18
+ # @param [Integer, nil] notification_capacity
19
+ # @return [Lockd]
20
+ # @overload open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY, &block)
21
+ # @param [#call] resolver
22
+ # @param [Symbol, nil] executor
23
+ # @param [Integer, nil] notification_capacity
24
+ # @yieldparam [Lockd] family
25
+ # @return [Object] the result of the block
26
+ def self.open(resolver: ::Nl::Linux::DEFAULT_RESOLVER, executor: nil, notification_capacity: DEFAULT_NOTIFICATION_CAPACITY)
27
+ super
28
+ end
29
+ # @private
30
+ MCAST_GROUPS = Ractor.make_shareable({}) #: Hash[::Symbol, ::Nl::McastGroup]
12
31
  module Structs
13
32
  end
14
33
  module AttributeSets
15
- class Server < ::Nl::Protocols::Genl::AttributeSet
34
+ class Server < ::Nl::AttributeSet
16
35
  # Abstract class
17
- class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
36
+ class Attribute < ::Nl::AttributeSet::Attribute
18
37
  end
19
38
  class Gracetime < Attribute
20
39
  TYPE = 1
21
40
  NAME = :"gracetime"
22
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
41
+ # @private
42
+ ORDER = 0
43
+ # @private
44
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
23
45
  end
24
46
  class TcpPort < Attribute
25
47
  TYPE = 2
26
48
  NAME = :"tcp_port"
27
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
49
+ # @private
50
+ ORDER = 1
51
+ # @private
52
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
28
53
  end
29
54
  class UdpPort < Attribute
30
55
  TYPE = 3
31
56
  NAME = :"udp_port"
32
- DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
57
+ # @private
58
+ ORDER = 2
59
+ # @private
60
+ DATATYPE = ::Nl::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
33
61
  end
34
- # :nodoc:
62
+ # @private
35
63
  BY_NAME = Ractor.make_shareable({:"gracetime" => Gracetime, :"tcp_port" => TcpPort, :"udp_port" => UdpPort}) #: Hash[::Symbol, Attribute]
36
- # :nodoc:
64
+ # @private
37
65
  BY_TYPE = Ractor.make_shareable({1 => Gracetime, 2 => TcpPort, 3 => UdpPort}) #: Hash[::Integer, Attribute]
66
+ # @rbs return: ::Integer
67
+ # @return [Integer]
68
+ # @see Gracetime
69
+ def gracetime; self[:"gracetime"]&.value; end
70
+ # @rbs return: ::Integer
71
+ # @return [Integer]
72
+ # @see TcpPort
73
+ def tcp_port; self[:"tcp_port"]&.value; end
74
+ # @rbs return: ::Integer
75
+ # @return [Integer]
76
+ # @see UdpPort
77
+ def udp_port; self[:"udp_port"]&.value; end
38
78
  class << self
39
79
  # Looks up Attribute class by name.
40
- #--
41
80
  # @rbs name: Symbol
42
81
  # @rbs return: Attribute
82
+ # @param [Symbol] name
83
+ # @return [Attribute]
43
84
  def by_name(name); BY_NAME.fetch(name); end
44
85
  # Looks up Attribute class by type value.
45
- #--
46
86
  # @rbs type: Integer
47
87
  # @rbs return: Attribute
88
+ # @param [Integer] type
89
+ # @return [Attribute]
48
90
  def by_type(type); BY_TYPE.fetch(type); end
49
91
  end
50
92
  end
51
93
  end
52
94
  module Messages
53
95
  # set the lockd server parameters
54
- class DoServerSetRequest < ::Nl::Protocols::Genl::Message
96
+ #
97
+ # Requires CAP_NET_ADMIN in the initial user namespace.
98
+ class DoServerSetRequest < ::Nl::Genl::Message
55
99
  TYPE = 1
56
100
  FIXED_HEADER = nil
57
101
  ATTRIBUTE_SET = AttributeSets::Server
58
102
  ATTRIBUTES = Ractor.make_shareable(%i[gracetime tcp_port udp_port])
59
- # Gets the value of `gracetime` attribute in the message.
60
- #--
61
103
  # @rbs return: ::Integer
104
+ # @return [Integer]
105
+ # @see AttributeSets::Server::Gracetime
62
106
  def gracetime; attributes[:"gracetime"]&.value; end
63
- # Gets the value of `tcp-port` attribute in the message.
64
- #--
65
107
  # @rbs return: ::Integer
108
+ # @return [Integer]
109
+ # @see AttributeSets::Server::TcpPort
66
110
  def tcp_port; attributes[:"tcp_port"]&.value; end
67
- # Gets the value of `udp-port` attribute in the message.
68
- #--
69
111
  # @rbs return: ::Integer
112
+ # @return [Integer]
113
+ # @see AttributeSets::Server::UdpPort
70
114
  def udp_port; attributes[:"udp_port"]&.value; end
71
115
  end
72
116
  # get the lockd server parameters
73
- class DoServerGetReply < ::Nl::Protocols::Genl::Message
117
+ class DoServerGetRequest < ::Nl::Genl::Message
118
+ TYPE = 2
119
+ FIXED_HEADER = nil
120
+ ATTRIBUTE_SET = AttributeSets::Server
121
+ ATTRIBUTES = Ractor.make_shareable(%i[])
122
+ end
123
+ # get the lockd server parameters
124
+ class DoServerGetReply < ::Nl::Genl::Message
74
125
  TYPE = 2
75
126
  FIXED_HEADER = nil
76
127
  ATTRIBUTE_SET = AttributeSets::Server
77
128
  ATTRIBUTES = Ractor.make_shareable(%i[gracetime tcp_port udp_port])
78
- # Gets the value of `gracetime` attribute in the message.
79
- #--
80
129
  # @rbs return: ::Integer
130
+ # @return [Integer]
131
+ # @see AttributeSets::Server::Gracetime
81
132
  def gracetime; attributes[:"gracetime"]&.value; end
82
- # Gets the value of `tcp-port` attribute in the message.
83
- #--
84
133
  # @rbs return: ::Integer
134
+ # @return [Integer]
135
+ # @see AttributeSets::Server::TcpPort
85
136
  def tcp_port; attributes[:"tcp_port"]&.value; end
86
- # Gets the value of `udp-port` attribute in the message.
87
- #--
88
137
  # @rbs return: ::Integer
138
+ # @return [Integer]
139
+ # @see AttributeSets::Server::UdpPort
89
140
  def udp_port; attributes[:"udp_port"]&.value; end
90
141
  end
91
142
  end
143
+ module Notifications
144
+ end
145
+ # @private
146
+ NOTIFICATIONS = Ractor.make_shareable({}) #: Hash[::Integer, ::Class]
92
147
  # set the lockd server parameters
93
- #--
148
+ #
149
+ # Requires CAP_NET_ADMIN in the initial user namespace.
94
150
  # @rbs (?gracetime: ::Integer, ?tcp_port: ::Integer, ?udp_port: ::Integer) -> void
151
+ # @param [Hash] args
152
+ # @option args [Integer] gracetime
153
+ # @option args [Integer] tcp_port
154
+ # @option args [Integer] udp_port
155
+ # @return [void]
156
+ # @see Messages::DoServerSetRequest
95
157
  def do_server_set(**args)
96
158
  exchange_message(:"do", Messages::DoServerSetRequest, nil, args)
97
159
  end
160
+ # get the lockd server parameters
161
+ # @rbs () -> Messages::DoServerGetReply
162
+ # @param [Hash] args
163
+ # @return [Messages::DoServerGetReply]
164
+ # @see Messages::DoServerGetRequest
165
+ def do_server_get(**args)
166
+ exchange_message(:"do", Messages::DoServerGetRequest, Messages::DoServerGetReply, args)
167
+ end
168
+ class AsyncOperations
169
+ # @private
170
+ def initialize(&exchange)
171
+ @exchange = exchange
172
+ end
173
+ # set the lockd server parameters
174
+ #
175
+ # Requires CAP_NET_ADMIN in the initial user namespace.
176
+ # @rbs (?gracetime: ::Integer, ?tcp_port: ::Integer, ?udp_port: ::Integer) -> ::Nl::Async::Future[void]
177
+ # @param [Hash] args
178
+ # @option args [Integer] gracetime
179
+ # @option args [Integer] tcp_port
180
+ # @option args [Integer] udp_port
181
+ # @return [Nl::Async::Future<void>]
182
+ # @see Messages::DoServerSetRequest
183
+ def do_server_set(**args)
184
+ @exchange.call(:"do", Messages::DoServerSetRequest, nil, args)
185
+ end
186
+ # get the lockd server parameters
187
+ # @rbs () -> ::Nl::Async::Future[Messages::DoServerGetReply]
188
+ # @param [Hash] args
189
+ # @return [Nl::Async::Future<Messages::DoServerGetReply>]
190
+ # @see Messages::DoServerGetRequest
191
+ def do_server_get(**args)
192
+ @exchange.call(:"do", Messages::DoServerGetRequest, Messages::DoServerGetReply, args)
193
+ end
194
+ end
195
+ # Returns the asynchronous operation facade for this family.
196
+ # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
197
+ # @param [::Integer, nil] stream_capacity
198
+ # @return [AsyncOperations]
199
+ def async(stream_capacity: nil)
200
+ return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
201
+ build_async_facade(AsyncOperations, stream_capacity:)
202
+ end
98
203
  end
99
204
  end; end