nl-linux 0.2.4 → 0.3.0

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/CHANGELOG.md +2 -0
  4. data/Rakefile +13 -3
  5. data/generated/nl/linux/binder.rb +80 -0
  6. data/generated/nl/linux/conntrack.rb +39 -2
  7. data/generated/nl/linux/dev_energymodel.rb +106 -0
  8. data/generated/nl/linux/devlink.rb +751 -0
  9. data/generated/nl/linux/dpll.rb +712 -55
  10. data/generated/nl/linux/drm_ras.rb +87 -0
  11. data/generated/nl/linux/ethtool.rb +1569 -259
  12. data/generated/nl/linux/fou.rb +82 -13
  13. data/generated/nl/linux/handshake.rb +92 -0
  14. data/generated/nl/linux/lockd.rb +50 -0
  15. data/generated/nl/linux/mptcp_pm.rb +159 -0
  16. data/generated/nl/linux/net_shaper.rb +123 -0
  17. data/generated/nl/linux/netdev.rb +374 -0
  18. data/generated/nl/linux/nfsd.rb +316 -6
  19. data/generated/nl/linux/nftables.rb +414 -25
  20. data/generated/nl/linux/nl80211.rb +81 -22
  21. data/generated/nl/linux/nlctrl.rb +59 -8
  22. data/generated/nl/linux/ovpn.rb +180 -0
  23. data/generated/nl/linux/ovs_datapath.rb +55 -6
  24. data/generated/nl/linux/ovs_flow.rb +63 -20
  25. data/generated/nl/linux/ovs_packet.rb +115 -4
  26. data/generated/nl/linux/ovs_vport.rb +55 -6
  27. data/generated/nl/linux/psp.rb +257 -0
  28. data/generated/nl/linux/rt_addr.rb +69 -14
  29. data/generated/nl/linux/rt_link.rb +381 -47
  30. data/generated/nl/linux/rt_neigh.rb +227 -16
  31. data/generated/nl/linux/rt_route.rb +92 -49
  32. data/generated/nl/linux/rt_rule.rb +300 -11
  33. data/generated/nl/linux/sunrpc_cache.rb +130 -0
  34. data/generated/nl/linux/tc.rb +161 -52
  35. data/generated/nl/linux/tcp_metrics.rb +69 -12
  36. data/generated/nl/linux/team.rb +80 -0
  37. data/generated/nl/linux/wireguard.rb +99 -7
  38. data/lib/nl/linux/version.rb +1 -1
  39. metadata +11 -9
@@ -1,4 +1,6 @@
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/nftables.yaml from Linux v7.2.
2
4
  #--
3
5
  # frozen_string_literal: true
4
6
  # rbs_inline: enabled
@@ -9,6 +11,7 @@ module Nl; module Linux
9
11
  class Nftables < ::Nl::Family
10
12
  NAME = "nftables"
11
13
  PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Raw.new("nftables", 12))
14
+ MCAST_GROUPS = Ractor.make_shareable({:"mgmt" => ::Nl::McastGroup.new("mgmt", nil)}) #: Hash[::Symbol, ::Nl::McastGroup]
12
15
  module Structs
13
16
  Nfgenmsg = Struct.new(
14
17
  :"nfgen_family", #: ::Integer
@@ -2154,7 +2157,7 @@ class Nftables < ::Nl::Family
2154
2157
  def flags; attributes[:"flags"]&.value; end
2155
2158
  # Gets the value of `userdata` attribute in the message.
2156
2159
  #--
2157
- # @rbs return: untyped
2160
+ # @rbs return: ::String
2158
2161
  def userdata; attributes[:"userdata"]&.value; end
2159
2162
  end
2160
2163
  # Get / dump tables.
@@ -2216,7 +2219,7 @@ class Nftables < ::Nl::Family
2216
2219
  def handle; attributes[:"handle"]&.value; end
2217
2220
  # Gets the value of `userdata` attribute in the message.
2218
2221
  #--
2219
- # @rbs return: untyped
2222
+ # @rbs return: ::String
2220
2223
  def userdata; attributes[:"userdata"]&.value; end
2221
2224
  # Gets the value of `owner` attribute in the message.
2222
2225
  #--
@@ -2224,6 +2227,25 @@ class Nftables < ::Nl::Family
2224
2227
  def owner; attributes[:"owner"]&.value; end
2225
2228
  end
2226
2229
  # Get / dump tables.
2230
+ class DumpGettableRequest < ::Nl::Protocols::Raw::Message
2231
+ TYPE = 2561
2232
+ FIXED_HEADER = Structs::Nfgenmsg
2233
+ ATTRIBUTE_SET = AttributeSets::TableAttrs
2234
+ ATTRIBUTES = Ractor.make_shareable(%i[])
2235
+ # Gets the value of `nfgen-family` field in the message's fixed header.
2236
+ #--
2237
+ # @rbs return: ::Integer
2238
+ def nfgen_family; fixed_header.nfgen_family; end
2239
+ # Gets the value of `version` field in the message's fixed header.
2240
+ #--
2241
+ # @rbs return: ::Integer
2242
+ def version; fixed_header.version; end
2243
+ # Gets the value of `res-id` field in the message's fixed header.
2244
+ #--
2245
+ # @rbs return: ::Integer
2246
+ def res_id; fixed_header.res_id; end
2247
+ end
2248
+ # Get / dump tables.
2227
2249
  class DumpGettableReply < ::Nl::Protocols::Raw::Message
2228
2250
  TYPE = 2560
2229
2251
  FIXED_HEADER = Structs::Nfgenmsg
@@ -2259,7 +2281,7 @@ class Nftables < ::Nl::Family
2259
2281
  def handle; attributes[:"handle"]&.value; end
2260
2282
  # Gets the value of `userdata` attribute in the message.
2261
2283
  #--
2262
- # @rbs return: untyped
2284
+ # @rbs return: ::String
2263
2285
  def userdata; attributes[:"userdata"]&.value; end
2264
2286
  # Gets the value of `owner` attribute in the message.
2265
2287
  #--
@@ -2373,7 +2395,7 @@ class Nftables < ::Nl::Family
2373
2395
  def flags; attributes[:"flags"]&.value; end
2374
2396
  # Gets the value of `userdata` attribute in the message.
2375
2397
  #--
2376
- # @rbs return: untyped
2398
+ # @rbs return: ::String
2377
2399
  def userdata; attributes[:"userdata"]&.value; end
2378
2400
  end
2379
2401
  # Get / dump chains.
@@ -2463,10 +2485,29 @@ class Nftables < ::Nl::Family
2463
2485
  def id; attributes[:"id"]&.value; end
2464
2486
  # Gets the value of `userdata` attribute in the message.
2465
2487
  #--
2466
- # @rbs return: untyped
2488
+ # @rbs return: ::String
2467
2489
  def userdata; attributes[:"userdata"]&.value; end
2468
2490
  end
2469
2491
  # Get / dump chains.
2492
+ class DumpGetchainRequest < ::Nl::Protocols::Raw::Message
2493
+ TYPE = 2564
2494
+ FIXED_HEADER = Structs::Nfgenmsg
2495
+ ATTRIBUTE_SET = AttributeSets::ChainAttrs
2496
+ ATTRIBUTES = Ractor.make_shareable(%i[])
2497
+ # Gets the value of `nfgen-family` field in the message's fixed header.
2498
+ #--
2499
+ # @rbs return: ::Integer
2500
+ def nfgen_family; fixed_header.nfgen_family; end
2501
+ # Gets the value of `version` field in the message's fixed header.
2502
+ #--
2503
+ # @rbs return: ::Integer
2504
+ def version; fixed_header.version; end
2505
+ # Gets the value of `res-id` field in the message's fixed header.
2506
+ #--
2507
+ # @rbs return: ::Integer
2508
+ def res_id; fixed_header.res_id; end
2509
+ end
2510
+ # Get / dump chains.
2470
2511
  class DumpGetchainReply < ::Nl::Protocols::Raw::Message
2471
2512
  TYPE = 2563
2472
2513
  FIXED_HEADER = Structs::Nfgenmsg
@@ -2526,7 +2567,7 @@ class Nftables < ::Nl::Family
2526
2567
  def id; attributes[:"id"]&.value; end
2527
2568
  # Gets the value of `userdata` attribute in the message.
2528
2569
  #--
2529
- # @rbs return: untyped
2570
+ # @rbs return: ::String
2530
2571
  def userdata; attributes[:"userdata"]&.value; end
2531
2572
  end
2532
2573
  # Delete an existing chain.
@@ -2644,7 +2685,7 @@ class Nftables < ::Nl::Family
2644
2685
  def position; attributes[:"position"]&.value; end
2645
2686
  # Gets the value of `userdata` attribute in the message.
2646
2687
  #--
2647
- # @rbs return: untyped
2688
+ # @rbs return: ::String
2648
2689
  def userdata; attributes[:"userdata"]&.value; end
2649
2690
  # Gets the value of `position-id` attribute in the message.
2650
2691
  #--
@@ -2726,7 +2767,7 @@ class Nftables < ::Nl::Family
2726
2767
  def position; attributes[:"position"]&.value; end
2727
2768
  # Gets the value of `userdata` attribute in the message.
2728
2769
  #--
2729
- # @rbs return: untyped
2770
+ # @rbs return: ::String
2730
2771
  def userdata; attributes[:"userdata"]&.value; end
2731
2772
  end
2732
2773
  # Get / dump rules.
@@ -2796,7 +2837,7 @@ class Nftables < ::Nl::Family
2796
2837
  def position; attributes[:"position"]&.value; end
2797
2838
  # Gets the value of `userdata` attribute in the message.
2798
2839
  #--
2799
- # @rbs return: untyped
2840
+ # @rbs return: ::String
2800
2841
  def userdata; attributes[:"userdata"]&.value; end
2801
2842
  end
2802
2843
  # Get / dump rules and reset stateful expressions.
@@ -2870,7 +2911,7 @@ class Nftables < ::Nl::Family
2870
2911
  def position; attributes[:"position"]&.value; end
2871
2912
  # Gets the value of `userdata` attribute in the message.
2872
2913
  #--
2873
- # @rbs return: untyped
2914
+ # @rbs return: ::String
2874
2915
  def userdata; attributes[:"userdata"]&.value; end
2875
2916
  end
2876
2917
  # Get / dump rules and reset stateful expressions.
@@ -2944,7 +2985,7 @@ class Nftables < ::Nl::Family
2944
2985
  def position; attributes[:"position"]&.value; end
2945
2986
  # Gets the value of `userdata` attribute in the message.
2946
2987
  #--
2947
- # @rbs return: untyped
2988
+ # @rbs return: ::String
2948
2989
  def userdata; attributes[:"userdata"]&.value; end
2949
2990
  end
2950
2991
  # Delete an existing rule.
@@ -3085,7 +3126,7 @@ class Nftables < ::Nl::Family
3085
3126
  def gc_interval; attributes[:"gc_interval"]&.value; end
3086
3127
  # Gets the value of `userdata` attribute in the message.
3087
3128
  #--
3088
- # @rbs return: untyped
3129
+ # @rbs return: ::String
3089
3130
  def userdata; attributes[:"userdata"]&.value; end
3090
3131
  # Gets the value of `obj-type` attribute in the message.
3091
3132
  #--
@@ -3179,7 +3220,7 @@ class Nftables < ::Nl::Family
3179
3220
  def gc_interval; attributes[:"gc_interval"]&.value; end
3180
3221
  # Gets the value of `userdata` attribute in the message.
3181
3222
  #--
3182
- # @rbs return: untyped
3223
+ # @rbs return: ::String
3183
3224
  def userdata; attributes[:"userdata"]&.value; end
3184
3225
  # Gets the value of `obj-type` attribute in the message.
3185
3226
  #--
@@ -3281,7 +3322,7 @@ class Nftables < ::Nl::Family
3281
3322
  def gc_interval; attributes[:"gc_interval"]&.value; end
3282
3323
  # Gets the value of `userdata` attribute in the message.
3283
3324
  #--
3284
- # @rbs return: untyped
3325
+ # @rbs return: ::String
3285
3326
  def userdata; attributes[:"userdata"]&.value; end
3286
3327
  # Gets the value of `obj-type` attribute in the message.
3287
3328
  #--
@@ -3734,6 +3775,25 @@ class Nftables < ::Nl::Family
3734
3775
  def proc_name; attributes[:"proc_name"]&.value; end
3735
3776
  end
3736
3777
  # Get / dump rule-set generation.
3778
+ class DumpGetgenRequest < ::Nl::Protocols::Raw::Message
3779
+ TYPE = 2576
3780
+ FIXED_HEADER = Structs::Nfgenmsg
3781
+ ATTRIBUTE_SET = AttributeSets::GenAttrs
3782
+ ATTRIBUTES = Ractor.make_shareable(%i[])
3783
+ # Gets the value of `nfgen-family` field in the message's fixed header.
3784
+ #--
3785
+ # @rbs return: ::Integer
3786
+ def nfgen_family; fixed_header.nfgen_family; end
3787
+ # Gets the value of `version` field in the message's fixed header.
3788
+ #--
3789
+ # @rbs return: ::Integer
3790
+ def version; fixed_header.version; end
3791
+ # Gets the value of `res-id` field in the message's fixed header.
3792
+ #--
3793
+ # @rbs return: ::Integer
3794
+ def res_id; fixed_header.res_id; end
3795
+ end
3796
+ # Get / dump rule-set generation.
3737
3797
  class DumpGetgenReply < ::Nl::Protocols::Raw::Message
3738
3798
  TYPE = 2575
3739
3799
  FIXED_HEADER = Structs::Nfgenmsg
@@ -3796,11 +3856,11 @@ class Nftables < ::Nl::Family
3796
3856
  def type; attributes[:"type"]&.value; end
3797
3857
  # Gets the value of `data` attribute in the message.
3798
3858
  #--
3799
- # @rbs return: untyped
3859
+ # @rbs return: ::String
3800
3860
  def data; attributes[:"data"]&.value; end
3801
3861
  # Gets the value of `userdata` attribute in the message.
3802
3862
  #--
3803
- # @rbs return: untyped
3863
+ # @rbs return: ::String
3804
3864
  def userdata; attributes[:"userdata"]&.value; end
3805
3865
  end
3806
3866
  # Get / dump stateful objects.
@@ -3866,7 +3926,7 @@ class Nftables < ::Nl::Family
3866
3926
  def type; attributes[:"type"]&.value; end
3867
3927
  # Gets the value of `data` attribute in the message.
3868
3928
  #--
3869
- # @rbs return: untyped
3929
+ # @rbs return: ::String
3870
3930
  def data; attributes[:"data"]&.value; end
3871
3931
  # Gets the value of `use` attribute in the message.
3872
3932
  #--
@@ -3878,7 +3938,7 @@ class Nftables < ::Nl::Family
3878
3938
  def handle; attributes[:"handle"]&.value; end
3879
3939
  # Gets the value of `userdata` attribute in the message.
3880
3940
  #--
3881
- # @rbs return: untyped
3941
+ # @rbs return: ::String
3882
3942
  def userdata; attributes[:"userdata"]&.value; end
3883
3943
  end
3884
3944
  # Get / dump stateful objects.
@@ -3940,7 +4000,7 @@ class Nftables < ::Nl::Family
3940
4000
  def type; attributes[:"type"]&.value; end
3941
4001
  # Gets the value of `data` attribute in the message.
3942
4002
  #--
3943
- # @rbs return: untyped
4003
+ # @rbs return: ::String
3944
4004
  def data; attributes[:"data"]&.value; end
3945
4005
  # Gets the value of `use` attribute in the message.
3946
4006
  #--
@@ -3952,7 +4012,7 @@ class Nftables < ::Nl::Family
3952
4012
  def handle; attributes[:"handle"]&.value; end
3953
4013
  # Gets the value of `userdata` attribute in the message.
3954
4014
  #--
3955
- # @rbs return: untyped
4015
+ # @rbs return: ::String
3956
4016
  def userdata; attributes[:"userdata"]&.value; end
3957
4017
  end
3958
4018
  # Delete an existing stateful object.
@@ -4131,6 +4191,25 @@ class Nftables < ::Nl::Family
4131
4191
  def flags; attributes[:"flags"]&.value; end
4132
4192
  end
4133
4193
  # Get / dump flow tables.
4194
+ class DumpGetflowtableRequest < ::Nl::Protocols::Raw::Message
4195
+ TYPE = 2583
4196
+ FIXED_HEADER = Structs::Nfgenmsg
4197
+ ATTRIBUTE_SET = AttributeSets::FlowtableAttrs
4198
+ ATTRIBUTES = Ractor.make_shareable(%i[])
4199
+ # Gets the value of `nfgen-family` field in the message's fixed header.
4200
+ #--
4201
+ # @rbs return: ::Integer
4202
+ def nfgen_family; fixed_header.nfgen_family; end
4203
+ # Gets the value of `version` field in the message's fixed header.
4204
+ #--
4205
+ # @rbs return: ::Integer
4206
+ def version; fixed_header.version; end
4207
+ # Gets the value of `res-id` field in the message's fixed header.
4208
+ #--
4209
+ # @rbs return: ::Integer
4210
+ def res_id; fixed_header.res_id; end
4211
+ end
4212
+ # Get / dump flow tables.
4134
4213
  class DumpGetflowtableReply < ::Nl::Protocols::Raw::Message
4135
4214
  TYPE = 2582
4136
4215
  FIXED_HEADER = Structs::Nfgenmsg
@@ -4244,6 +4323,9 @@ class Nftables < ::Nl::Family
4244
4323
  def handle; attributes[:"handle"]&.value; end
4245
4324
  end
4246
4325
  end
4326
+ module Notifications
4327
+ end
4328
+ NOTIFICATIONS = Ractor.make_shareable({}) #: Hash[::Integer, ::Class]
4247
4329
  # Start a batch of operations
4248
4330
  #--
4249
4331
  # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?genid: ::Integer) -> Messages::DoBatchBeginReply
@@ -4258,7 +4340,7 @@ class Nftables < ::Nl::Family
4258
4340
  end
4259
4341
  # Create a new table.
4260
4342
  #--
4261
- # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?name: ::String, ?flags: ::Integer, ?userdata: untyped) -> void
4343
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?name: ::String, ?flags: ::Integer, ?userdata: ::String) -> void
4262
4344
  def do_newtable(**args)
4263
4345
  exchange_message(:"do", Messages::DoNewtableRequest, nil, args)
4264
4346
  end
@@ -4268,6 +4350,13 @@ class Nftables < ::Nl::Family
4268
4350
  def do_gettable(**args)
4269
4351
  exchange_message(:"do", Messages::DoGettableRequest, Messages::DoGettableReply, args)
4270
4352
  end
4353
+ # Get / dump tables.
4354
+ #--
4355
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) -> Enumerable[Messages::DumpGettableReply]
4356
+ # | (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) { (Messages::DumpGettableReply) -> void } -> void
4357
+ def dump_gettable(**args, &block)
4358
+ exchange_message(:"dump", Messages::DumpGettableRequest, Messages::DumpGettableReply, args, &block)
4359
+ end
4271
4360
  # Delete an existing table.
4272
4361
  #--
4273
4362
  # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?name: ::String, ?handle: ::Integer) -> void
@@ -4283,7 +4372,7 @@ class Nftables < ::Nl::Family
4283
4372
  end
4284
4373
  # Create a new chain.
4285
4374
  #--
4286
- # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?handle: ::Integer, ?name: ::String, ?hook: AttributeSets::NftHookAttrs, ?policy: ::Integer, ?type: ::String, ?counters: AttributeSets::NftCounterAttrs, ?flags: ::Integer, ?userdata: untyped) -> void
4375
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?handle: ::Integer, ?name: ::String, ?hook: AttributeSets::NftHookAttrs, ?policy: ::Integer, ?type: ::String, ?counters: AttributeSets::NftCounterAttrs, ?flags: ::Integer, ?userdata: ::String) -> void
4287
4376
  def do_newchain(**args)
4288
4377
  exchange_message(:"do", Messages::DoNewchainRequest, nil, args)
4289
4378
  end
@@ -4293,6 +4382,13 @@ class Nftables < ::Nl::Family
4293
4382
  def do_getchain(**args)
4294
4383
  exchange_message(:"do", Messages::DoGetchainRequest, Messages::DoGetchainReply, args)
4295
4384
  end
4385
+ # Get / dump chains.
4386
+ #--
4387
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) -> Enumerable[Messages::DumpGetchainReply]
4388
+ # | (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) { (Messages::DumpGetchainReply) -> void } -> void
4389
+ def dump_getchain(**args, &block)
4390
+ exchange_message(:"dump", Messages::DumpGetchainRequest, Messages::DumpGetchainReply, args, &block)
4391
+ end
4296
4392
  # Delete an existing chain.
4297
4393
  #--
4298
4394
  # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?handle: ::Integer, ?name: ::String, ?hook: AttributeSets::NftHookAttrs) -> void
@@ -4308,7 +4404,7 @@ class Nftables < ::Nl::Family
4308
4404
  end
4309
4405
  # Create a new rule.
4310
4406
  #--
4311
- # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?chain: ::String, ?handle: ::Integer, ?expressions: AttributeSets::ExprListAttrs, ?compat: AttributeSets::RuleCompatAttrs, ?position: ::Integer, ?userdata: untyped, ?position_id: ::Integer, ?chain_id: ::Integer) -> void
4407
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?chain: ::String, ?handle: ::Integer, ?expressions: AttributeSets::ExprListAttrs, ?compat: AttributeSets::RuleCompatAttrs, ?position: ::Integer, ?userdata: ::String, ?position_id: ::Integer, ?chain_id: ::Integer) -> void
4312
4408
  def do_newrule(**args)
4313
4409
  exchange_message(:"do", Messages::DoNewruleRequest, nil, args)
4314
4410
  end
@@ -4352,7 +4448,7 @@ class Nftables < ::Nl::Family
4352
4448
  end
4353
4449
  # Create a new set.
4354
4450
  #--
4355
- # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?flags: ::Integer, ?key_type: ::Integer, ?key_len: ::Integer, ?data_type: ::Integer, ?data_len: ::Integer, ?policy: ::Integer, ?desc: AttributeSets::SetDescAttrs, ?id: ::Integer, ?timeout: ::Integer, ?gc_interval: ::Integer, ?userdata: untyped, ?obj_type: ::Integer) -> void
4451
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?flags: ::Integer, ?key_type: ::Integer, ?key_len: ::Integer, ?data_type: ::Integer, ?data_len: ::Integer, ?policy: ::Integer, ?desc: AttributeSets::SetDescAttrs, ?id: ::Integer, ?timeout: ::Integer, ?gc_interval: ::Integer, ?userdata: ::String, ?obj_type: ::Integer) -> void
4356
4452
  def do_newset(**args)
4357
4453
  exchange_message(:"do", Messages::DoNewsetRequest, nil, args)
4358
4454
  end
@@ -4431,9 +4527,16 @@ class Nftables < ::Nl::Family
4431
4527
  def do_getgen(**args)
4432
4528
  exchange_message(:"do", Messages::DoGetgenRequest, Messages::DoGetgenReply, args)
4433
4529
  end
4530
+ # Get / dump rule-set generation.
4531
+ #--
4532
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) -> Enumerable[Messages::DumpGetgenReply]
4533
+ # | (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) { (Messages::DumpGetgenReply) -> void } -> void
4534
+ def dump_getgen(**args, &block)
4535
+ exchange_message(:"dump", Messages::DumpGetgenRequest, Messages::DumpGetgenReply, args, &block)
4536
+ end
4434
4537
  # Create a new stateful object.
4435
4538
  #--
4436
- # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?type: ::Integer, ?data: untyped, ?userdata: untyped) -> void
4539
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?type: ::Integer, ?data: ::String, ?userdata: ::String) -> void
4437
4540
  def do_newobj(**args)
4438
4541
  exchange_message(:"do", Messages::DoNewobjRequest, nil, args)
4439
4542
  end
@@ -4474,6 +4577,13 @@ class Nftables < ::Nl::Family
4474
4577
  def do_getflowtable(**args)
4475
4578
  exchange_message(:"do", Messages::DoGetflowtableRequest, Messages::DoGetflowtableReply, args)
4476
4579
  end
4580
+ # Get / dump flow tables.
4581
+ #--
4582
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) -> Enumerable[Messages::DumpGetflowtableReply]
4583
+ # | (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) { (Messages::DumpGetflowtableReply) -> void } -> void
4584
+ def dump_getflowtable(**args, &block)
4585
+ exchange_message(:"dump", Messages::DumpGetflowtableRequest, Messages::DumpGetflowtableReply, args, &block)
4586
+ end
4477
4587
  # Delete an existing flow table.
4478
4588
  #--
4479
4589
  # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?hook: AttributeSets::FlowtableHookAttrs, ?handle: ::Integer) -> void
@@ -4486,5 +4596,284 @@ class Nftables < ::Nl::Family
4486
4596
  def do_destroyflowtable(**args)
4487
4597
  exchange_message(:"do", Messages::DoDestroyflowtableRequest, nil, args)
4488
4598
  end
4599
+ class AsyncOperations
4600
+ # :nodoc:
4601
+ def initialize(&exchange)
4602
+ @exchange = exchange
4603
+ end
4604
+ # Start a batch of operations
4605
+ #--
4606
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?genid: ::Integer) -> ::Nl::Async::Future[Messages::DoBatchBeginReply]
4607
+ def do_batch_begin(**args)
4608
+ @exchange.call(:"do", Messages::DoBatchBeginRequest, Messages::DoBatchBeginReply, args)
4609
+ end
4610
+ # Finish a batch of operations
4611
+ #--
4612
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?genid: ::Integer) -> ::Nl::Async::Future[void]
4613
+ def do_batch_end(**args)
4614
+ @exchange.call(:"do", Messages::DoBatchEndRequest, nil, args)
4615
+ end
4616
+ # Create a new table.
4617
+ #--
4618
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?name: ::String, ?flags: ::Integer, ?userdata: ::String) -> ::Nl::Async::Future[void]
4619
+ def do_newtable(**args)
4620
+ @exchange.call(:"do", Messages::DoNewtableRequest, nil, args)
4621
+ end
4622
+ # Get / dump tables.
4623
+ #--
4624
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?name: ::String) -> ::Nl::Async::Future[Messages::DoGettableReply]
4625
+ def do_gettable(**args)
4626
+ @exchange.call(:"do", Messages::DoGettableRequest, Messages::DoGettableReply, args)
4627
+ end
4628
+ # Get / dump tables.
4629
+ #--
4630
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGettableReply]
4631
+ def dump_gettable(**args)
4632
+ @exchange.call(:"dump", Messages::DumpGettableRequest, Messages::DumpGettableReply, args)
4633
+ end
4634
+ # Delete an existing table.
4635
+ #--
4636
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?name: ::String, ?handle: ::Integer) -> ::Nl::Async::Future[void]
4637
+ def do_deltable(**args)
4638
+ @exchange.call(:"do", Messages::DoDeltableRequest, nil, args)
4639
+ end
4640
+ # Delete an existing table with destroy semantics (ignoring ENOENT
4641
+ # errors).
4642
+ #--
4643
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?name: ::String, ?handle: ::Integer) -> ::Nl::Async::Future[void]
4644
+ def do_destroytable(**args)
4645
+ @exchange.call(:"do", Messages::DoDestroytableRequest, nil, args)
4646
+ end
4647
+ # Create a new chain.
4648
+ #--
4649
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?handle: ::Integer, ?name: ::String, ?hook: AttributeSets::NftHookAttrs, ?policy: ::Integer, ?type: ::String, ?counters: AttributeSets::NftCounterAttrs, ?flags: ::Integer, ?userdata: ::String) -> ::Nl::Async::Future[void]
4650
+ def do_newchain(**args)
4651
+ @exchange.call(:"do", Messages::DoNewchainRequest, nil, args)
4652
+ end
4653
+ # Get / dump chains.
4654
+ #--
4655
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String) -> ::Nl::Async::Future[Messages::DoGetchainReply]
4656
+ def do_getchain(**args)
4657
+ @exchange.call(:"do", Messages::DoGetchainRequest, Messages::DoGetchainReply, args)
4658
+ end
4659
+ # Get / dump chains.
4660
+ #--
4661
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetchainReply]
4662
+ def dump_getchain(**args)
4663
+ @exchange.call(:"dump", Messages::DumpGetchainRequest, Messages::DumpGetchainReply, args)
4664
+ end
4665
+ # Delete an existing chain.
4666
+ #--
4667
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?handle: ::Integer, ?name: ::String, ?hook: AttributeSets::NftHookAttrs) -> ::Nl::Async::Future[void]
4668
+ def do_delchain(**args)
4669
+ @exchange.call(:"do", Messages::DoDelchainRequest, nil, args)
4670
+ end
4671
+ # Delete an existing chain with destroy semantics (ignoring ENOENT
4672
+ # errors).
4673
+ #--
4674
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?handle: ::Integer, ?name: ::String, ?hook: AttributeSets::NftHookAttrs) -> ::Nl::Async::Future[void]
4675
+ def do_destroychain(**args)
4676
+ @exchange.call(:"do", Messages::DoDestroychainRequest, nil, args)
4677
+ end
4678
+ # Create a new rule.
4679
+ #--
4680
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?chain: ::String, ?handle: ::Integer, ?expressions: AttributeSets::ExprListAttrs, ?compat: AttributeSets::RuleCompatAttrs, ?position: ::Integer, ?userdata: ::String, ?position_id: ::Integer, ?chain_id: ::Integer) -> ::Nl::Async::Future[void]
4681
+ def do_newrule(**args)
4682
+ @exchange.call(:"do", Messages::DoNewruleRequest, nil, args)
4683
+ end
4684
+ # Get / dump rules.
4685
+ #--
4686
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?chain: ::String, ?handle: ::Integer) -> ::Nl::Async::Future[Messages::DoGetruleReply]
4687
+ def do_getrule(**args)
4688
+ @exchange.call(:"do", Messages::DoGetruleRequest, Messages::DoGetruleReply, args)
4689
+ end
4690
+ # Get / dump rules.
4691
+ #--
4692
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?chain: ::String) -> ::Nl::Async::Stream[Messages::DumpGetruleReply]
4693
+ def dump_getrule(**args)
4694
+ @exchange.call(:"dump", Messages::DumpGetruleRequest, Messages::DumpGetruleReply, args)
4695
+ end
4696
+ # Get / dump rules and reset stateful expressions.
4697
+ #--
4698
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?chain: ::String, ?handle: ::Integer) -> ::Nl::Async::Future[Messages::DoGetruleResetReply]
4699
+ def do_getrule_reset(**args)
4700
+ @exchange.call(:"do", Messages::DoGetruleResetRequest, Messages::DoGetruleResetReply, args)
4701
+ end
4702
+ # Get / dump rules and reset stateful expressions.
4703
+ #--
4704
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?chain: ::String, ?handle: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetruleResetReply]
4705
+ def dump_getrule_reset(**args)
4706
+ @exchange.call(:"dump", Messages::DumpGetruleResetRequest, Messages::DumpGetruleResetReply, args)
4707
+ end
4708
+ # Delete an existing rule.
4709
+ #--
4710
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?chain: ::String, ?handle: ::Integer, ?id: ::Integer) -> ::Nl::Async::Future[void]
4711
+ def do_delrule(**args)
4712
+ @exchange.call(:"do", Messages::DoDelruleRequest, nil, args)
4713
+ end
4714
+ # Delete an existing rule with destroy semantics (ignoring ENOENT errors).
4715
+ #--
4716
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?chain: ::String, ?handle: ::Integer, ?id: ::Integer) -> ::Nl::Async::Future[void]
4717
+ def do_destroyrule(**args)
4718
+ @exchange.call(:"do", Messages::DoDestroyruleRequest, nil, args)
4719
+ end
4720
+ # Create a new set.
4721
+ #--
4722
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?flags: ::Integer, ?key_type: ::Integer, ?key_len: ::Integer, ?data_type: ::Integer, ?data_len: ::Integer, ?policy: ::Integer, ?desc: AttributeSets::SetDescAttrs, ?id: ::Integer, ?timeout: ::Integer, ?gc_interval: ::Integer, ?userdata: ::String, ?obj_type: ::Integer) -> ::Nl::Async::Future[void]
4723
+ def do_newset(**args)
4724
+ @exchange.call(:"do", Messages::DoNewsetRequest, nil, args)
4725
+ end
4726
+ # Get / dump sets.
4727
+ #--
4728
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String) -> ::Nl::Async::Future[Messages::DoGetsetReply]
4729
+ def do_getset(**args)
4730
+ @exchange.call(:"do", Messages::DoGetsetRequest, Messages::DoGetsetReply, args)
4731
+ end
4732
+ # Get / dump sets.
4733
+ #--
4734
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String) -> ::Nl::Async::Stream[Messages::DumpGetsetReply]
4735
+ def dump_getset(**args)
4736
+ @exchange.call(:"dump", Messages::DumpGetsetRequest, Messages::DumpGetsetReply, args)
4737
+ end
4738
+ # Delete an existing set.
4739
+ #--
4740
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?handle: ::Integer) -> ::Nl::Async::Future[void]
4741
+ def do_delset(**args)
4742
+ @exchange.call(:"do", Messages::DoDelsetRequest, nil, args)
4743
+ end
4744
+ # Delete an existing set with destroy semantics (ignoring ENOENT errors).
4745
+ #--
4746
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?handle: ::Integer) -> ::Nl::Async::Future[void]
4747
+ def do_destroyset(**args)
4748
+ @exchange.call(:"do", Messages::DoDestroysetRequest, nil, args)
4749
+ end
4750
+ # Create a new set element.
4751
+ #--
4752
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?set: ::String, ?elements: AttributeSets::SetelemListElemAttrs, ?set_id: ::Integer) -> ::Nl::Async::Future[void]
4753
+ def do_newsetelem(**args)
4754
+ @exchange.call(:"do", Messages::DoNewsetelemRequest, nil, args)
4755
+ end
4756
+ # Get / dump set elements.
4757
+ #--
4758
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?set: ::String, ?elements: AttributeSets::SetelemListElemAttrs) -> ::Nl::Async::Future[Messages::DoGetsetelemReply]
4759
+ def do_getsetelem(**args)
4760
+ @exchange.call(:"do", Messages::DoGetsetelemRequest, Messages::DoGetsetelemReply, args)
4761
+ end
4762
+ # Get / dump set elements.
4763
+ #--
4764
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?set: ::String) -> ::Nl::Async::Stream[Messages::DumpGetsetelemReply]
4765
+ def dump_getsetelem(**args)
4766
+ @exchange.call(:"dump", Messages::DumpGetsetelemRequest, Messages::DumpGetsetelemReply, args)
4767
+ end
4768
+ # Get / dump set elements and reset stateful expressions.
4769
+ #--
4770
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?elements: AttributeSets::SetelemListElemAttrs) -> ::Nl::Async::Future[Messages::DoGetsetelemResetReply]
4771
+ def do_getsetelem_reset(**args)
4772
+ @exchange.call(:"do", Messages::DoGetsetelemResetRequest, Messages::DoGetsetelemResetReply, args)
4773
+ end
4774
+ # Get / dump set elements and reset stateful expressions.
4775
+ #--
4776
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?set: ::String) -> ::Nl::Async::Stream[Messages::DumpGetsetelemResetReply]
4777
+ def dump_getsetelem_reset(**args)
4778
+ @exchange.call(:"dump", Messages::DumpGetsetelemResetRequest, Messages::DumpGetsetelemResetReply, args)
4779
+ end
4780
+ # Delete an existing set element.
4781
+ #--
4782
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?set: ::String, ?elements: AttributeSets::SetelemListElemAttrs) -> ::Nl::Async::Future[void]
4783
+ def do_delsetelem(**args)
4784
+ @exchange.call(:"do", Messages::DoDelsetelemRequest, nil, args)
4785
+ end
4786
+ # Delete an existing set element with destroy semantics.
4787
+ #--
4788
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?set: ::String, ?elements: AttributeSets::SetelemListElemAttrs) -> ::Nl::Async::Future[void]
4789
+ def do_destroysetelem(**args)
4790
+ @exchange.call(:"do", Messages::DoDestroysetelemRequest, nil, args)
4791
+ end
4792
+ # Get / dump rule-set generation.
4793
+ #--
4794
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) -> ::Nl::Async::Future[Messages::DoGetgenReply]
4795
+ def do_getgen(**args)
4796
+ @exchange.call(:"do", Messages::DoGetgenRequest, Messages::DoGetgenReply, args)
4797
+ end
4798
+ # Get / dump rule-set generation.
4799
+ #--
4800
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetgenReply]
4801
+ def dump_getgen(**args)
4802
+ @exchange.call(:"dump", Messages::DumpGetgenRequest, Messages::DumpGetgenReply, args)
4803
+ end
4804
+ # Create a new stateful object.
4805
+ #--
4806
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?type: ::Integer, ?data: ::String, ?userdata: ::String) -> ::Nl::Async::Future[void]
4807
+ def do_newobj(**args)
4808
+ @exchange.call(:"do", Messages::DoNewobjRequest, nil, args)
4809
+ end
4810
+ # Get / dump stateful objects.
4811
+ #--
4812
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?type: ::Integer) -> ::Nl::Async::Future[Messages::DoGetobjReply]
4813
+ def do_getobj(**args)
4814
+ @exchange.call(:"do", Messages::DoGetobjRequest, Messages::DoGetobjReply, args)
4815
+ end
4816
+ # Get / dump stateful objects.
4817
+ #--
4818
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?type: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetobjReply]
4819
+ def dump_getobj(**args)
4820
+ @exchange.call(:"dump", Messages::DumpGetobjRequest, Messages::DumpGetobjReply, args)
4821
+ end
4822
+ # Delete an existing stateful object.
4823
+ #--
4824
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?type: ::Integer, ?handle: ::Integer) -> ::Nl::Async::Future[void]
4825
+ def do_delobj(**args)
4826
+ @exchange.call(:"do", Messages::DoDelobjRequest, nil, args)
4827
+ end
4828
+ # Delete an existing stateful object with destroy semantics.
4829
+ #--
4830
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?type: ::Integer, ?handle: ::Integer) -> ::Nl::Async::Future[void]
4831
+ def do_destroyobj(**args)
4832
+ @exchange.call(:"do", Messages::DoDestroyobjRequest, nil, args)
4833
+ end
4834
+ # Create a new flow table.
4835
+ #--
4836
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?hook: AttributeSets::FlowtableHookAttrs, ?flags: ::Integer) -> ::Nl::Async::Future[void]
4837
+ def do_newflowtable(**args)
4838
+ @exchange.call(:"do", Messages::DoNewflowtableRequest, nil, args)
4839
+ end
4840
+ # Get / dump flow tables.
4841
+ #--
4842
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String) -> ::Nl::Async::Future[Messages::DoGetflowtableReply]
4843
+ def do_getflowtable(**args)
4844
+ @exchange.call(:"do", Messages::DoGetflowtableRequest, Messages::DoGetflowtableReply, args)
4845
+ end
4846
+ # Get / dump flow tables.
4847
+ #--
4848
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetflowtableReply]
4849
+ def dump_getflowtable(**args)
4850
+ @exchange.call(:"dump", Messages::DumpGetflowtableRequest, Messages::DumpGetflowtableReply, args)
4851
+ end
4852
+ # Delete an existing flow table.
4853
+ #--
4854
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?hook: AttributeSets::FlowtableHookAttrs, ?handle: ::Integer) -> ::Nl::Async::Future[void]
4855
+ def do_delflowtable(**args)
4856
+ @exchange.call(:"do", Messages::DoDelflowtableRequest, nil, args)
4857
+ end
4858
+ # Delete an existing flow table with destroy semantics.
4859
+ #--
4860
+ # @rbs (?nfgen_family: ::Integer, ?version: ::Integer, ?res_id: ::Integer, ?table: ::String, ?name: ::String, ?hook: AttributeSets::FlowtableHookAttrs, ?handle: ::Integer) -> ::Nl::Async::Future[void]
4861
+ def do_destroyflowtable(**args)
4862
+ @exchange.call(:"do", Messages::DoDestroyflowtableRequest, nil, args)
4863
+ end
4864
+ end
4865
+ # Returns the asynchronous operation facade for this family.
4866
+ #--
4867
+ # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
4868
+ def async(stream_capacity: nil)
4869
+ return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
4870
+ build_async_facade(AsyncOperations, stream_capacity:)
4871
+ end
4872
+ #--
4873
+ # @rbs (*(:mgmt) groups) -> self
4874
+ def subscribe(*groups) = super
4875
+ #--
4876
+ # @rbs (*(:mgmt) groups) -> self
4877
+ def unsubscribe(*groups) = super
4489
4878
  end
4490
4879
  end; end