nl-linux 0.2.3 → 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.
- checksums.yaml +4 -4
- data/.rspec +3 -0
- data/CHANGELOG.md +8 -0
- data/NLSPEC_VERSION +1 -1
- data/Rakefile +13 -3
- data/generated/nl/linux/binder.rb +80 -0
- data/generated/nl/linux/conntrack.rb +39 -2
- data/generated/nl/linux/dev_energymodel.rb +106 -0
- data/generated/nl/linux/devlink.rb +1478 -200
- data/generated/nl/linux/dpll.rb +790 -66
- data/generated/nl/linux/drm_ras.rb +309 -0
- data/generated/nl/linux/ethtool.rb +1597 -248
- data/generated/nl/linux/fou.rb +82 -13
- data/generated/nl/linux/handshake.rb +93 -1
- data/generated/nl/linux/lockd.rb +50 -0
- data/generated/nl/linux/mptcp_pm.rb +159 -0
- data/generated/nl/linux/net_shaper.rb +124 -1
- data/generated/nl/linux/netdev.rb +515 -6
- data/generated/nl/linux/nfsd.rb +878 -10
- data/generated/nl/linux/nftables.rb +2134 -179
- data/generated/nl/linux/nl80211.rb +81 -22
- data/generated/nl/linux/nlctrl.rb +59 -8
- data/generated/nl/linux/ovpn.rb +207 -12
- data/generated/nl/linux/ovs_datapath.rb +59 -10
- data/generated/nl/linux/ovs_flow.rb +63 -20
- data/generated/nl/linux/ovs_packet.rb +277 -0
- data/generated/nl/linux/ovs_vport.rb +59 -10
- data/generated/nl/linux/psp.rb +453 -6
- data/generated/nl/linux/rt_addr.rb +69 -14
- data/generated/nl/linux/rt_link.rb +452 -112
- data/generated/nl/linux/rt_neigh.rb +227 -16
- data/generated/nl/linux/rt_route.rb +92 -49
- data/generated/nl/linux/rt_rule.rb +300 -11
- data/generated/nl/linux/sunrpc_cache.rb +423 -0
- data/generated/nl/linux/tc.rb +168 -54
- data/generated/nl/linux/tcp_metrics.rb +69 -12
- data/generated/nl/linux/team.rb +80 -0
- data/generated/nl/linux/wireguard.rb +99 -7
- data/generated/nl/linux.rb +3 -0
- data/lib/nl/linux/version.rb +1 -1
- data/linux/devlink.yaml +92 -2
- data/linux/dpll.yaml +94 -5
- data/linux/drm_ras.yaml +126 -0
- data/linux/ethtool.yaml +21 -4
- data/linux/handshake.yaml +9 -0
- data/linux/mptcp_pm.yaml +1 -0
- data/linux/net_shaper.yaml +13 -6
- data/linux/netdev.yaml +61 -2
- data/linux/nfsd.yaml +303 -2
- data/linux/nftables.yaml +640 -49
- data/linux/ovpn.yaml +26 -1
- data/linux/ovs_packet.yaml +130 -0
- data/linux/psp.yaml +80 -3
- data/linux/rt-link.yaml +70 -24
- data/linux/sunrpc_cache.yaml +149 -0
- data/linux/tc.yaml +3 -0
- metadata +17 -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/netdev.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 Netdev < ::Nl::Family
|
|
10
12
|
NAME = "netdev"
|
|
11
13
|
PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Genl.new("netdev"))
|
|
14
|
+
MCAST_GROUPS = Ractor.make_shareable({:"mgmt" => ::Nl::McastGroup.new("mgmt", nil), :"page_pool" => ::Nl::McastGroup.new("page-pool", nil)}) #: Hash[::Symbol, ::Nl::McastGroup]
|
|
12
15
|
module Structs
|
|
13
16
|
end
|
|
14
17
|
module AttributeSets
|
|
@@ -67,10 +70,15 @@ class Netdev < ::Nl::Family
|
|
|
67
70
|
# Abstract class
|
|
68
71
|
class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
|
|
69
72
|
end
|
|
73
|
+
class RxBufLen < Attribute
|
|
74
|
+
TYPE = 1
|
|
75
|
+
NAME = :"rx_buf_len"
|
|
76
|
+
DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::UINT, check: nil)
|
|
77
|
+
end
|
|
70
78
|
# :nodoc:
|
|
71
|
-
BY_NAME = Ractor.make_shareable({}) #: Hash[::Symbol, Attribute]
|
|
79
|
+
BY_NAME = Ractor.make_shareable({:"rx_buf_len" => RxBufLen}) #: Hash[::Symbol, Attribute]
|
|
72
80
|
# :nodoc:
|
|
73
|
-
BY_TYPE = Ractor.make_shareable({}) #: Hash[::Integer, Attribute]
|
|
81
|
+
BY_TYPE = Ractor.make_shareable({1 => RxBufLen}) #: Hash[::Integer, Attribute]
|
|
74
82
|
class << self
|
|
75
83
|
# Looks up Attribute class by name.
|
|
76
84
|
#--
|
|
@@ -376,10 +384,14 @@ class Netdev < ::Nl::Family
|
|
|
376
384
|
TYPE = 7
|
|
377
385
|
NAME = :"xsk"
|
|
378
386
|
end
|
|
387
|
+
class Lease < Attribute
|
|
388
|
+
TYPE = 8
|
|
389
|
+
NAME = :"lease"
|
|
390
|
+
end
|
|
379
391
|
# :nodoc:
|
|
380
|
-
BY_NAME = Ractor.make_shareable({:"id" => Id, :"ifindex" => Ifindex, :"type" => Type, :"napi_id" => NapiId, :"dmabuf" => Dmabuf, :"io_uring" => IoUring, :"xsk" => Xsk}) #: Hash[::Symbol, Attribute]
|
|
392
|
+
BY_NAME = Ractor.make_shareable({:"id" => Id, :"ifindex" => Ifindex, :"type" => Type, :"napi_id" => NapiId, :"dmabuf" => Dmabuf, :"io_uring" => IoUring, :"xsk" => Xsk, :"lease" => Lease}) #: Hash[::Symbol, Attribute]
|
|
381
393
|
# :nodoc:
|
|
382
|
-
BY_TYPE = Ractor.make_shareable({1 => Id, 2 => Ifindex, 3 => Type, 4 => NapiId, 5 => Dmabuf, 6 => IoUring, 7 => Xsk}) #: Hash[::Integer, Attribute]
|
|
394
|
+
BY_TYPE = Ractor.make_shareable({1 => Id, 2 => Ifindex, 3 => Type, 4 => NapiId, 5 => Dmabuf, 6 => IoUring, 7 => Xsk, 8 => Lease}) #: Hash[::Integer, Attribute]
|
|
383
395
|
class << self
|
|
384
396
|
# Looks up Attribute class by name.
|
|
385
397
|
#--
|
|
@@ -611,6 +623,41 @@ class Netdev < ::Nl::Family
|
|
|
611
623
|
def by_type(type); BY_TYPE.fetch(type); end
|
|
612
624
|
end
|
|
613
625
|
end
|
|
626
|
+
class Lease < ::Nl::Protocols::Genl::AttributeSet
|
|
627
|
+
# Abstract class
|
|
628
|
+
class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
|
|
629
|
+
end
|
|
630
|
+
class Ifindex < Attribute
|
|
631
|
+
TYPE = 1
|
|
632
|
+
NAME = :"ifindex"
|
|
633
|
+
DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 1" unless it >= 1 })
|
|
634
|
+
end
|
|
635
|
+
class Queue < Attribute
|
|
636
|
+
TYPE = 2
|
|
637
|
+
NAME = :"queue"
|
|
638
|
+
end
|
|
639
|
+
class NetnsId < Attribute
|
|
640
|
+
TYPE = 3
|
|
641
|
+
NAME = :"netns_id"
|
|
642
|
+
DATATYPE = ::Nl::Protocols::Genl::DataTypes::Scalar.new(::Nl::Endian::Host::S32, check: -> { raise ArgumentError, "Value #{it.inspect} is less than minimum 0" unless it >= 0 })
|
|
643
|
+
end
|
|
644
|
+
# :nodoc:
|
|
645
|
+
BY_NAME = Ractor.make_shareable({:"ifindex" => Ifindex, :"queue" => Queue, :"netns_id" => NetnsId}) #: Hash[::Symbol, Attribute]
|
|
646
|
+
# :nodoc:
|
|
647
|
+
BY_TYPE = Ractor.make_shareable({1 => Ifindex, 2 => Queue, 3 => NetnsId}) #: Hash[::Integer, Attribute]
|
|
648
|
+
class << self
|
|
649
|
+
# Looks up Attribute class by name.
|
|
650
|
+
#--
|
|
651
|
+
# @rbs name: Symbol
|
|
652
|
+
# @rbs return: Attribute
|
|
653
|
+
def by_name(name); BY_NAME.fetch(name); end
|
|
654
|
+
# Looks up Attribute class by type value.
|
|
655
|
+
#--
|
|
656
|
+
# @rbs type: Integer
|
|
657
|
+
# @rbs return: Attribute
|
|
658
|
+
def by_type(type); BY_TYPE.fetch(type); end
|
|
659
|
+
end
|
|
660
|
+
end
|
|
614
661
|
class Dmabuf < ::Nl::Protocols::Genl::AttributeSet
|
|
615
662
|
# Abstract class
|
|
616
663
|
class Attribute < ::Nl::Protocols::Genl::AttributeSet::Attribute
|
|
@@ -655,6 +702,8 @@ class Netdev < ::Nl::Family
|
|
|
655
702
|
PagePoolStats::Info::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(PagePoolInfo)
|
|
656
703
|
Queue::IoUring::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(IoUringProviderInfo)
|
|
657
704
|
Queue::Xsk::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(XskInfo)
|
|
705
|
+
Queue::Lease::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(Lease)
|
|
706
|
+
Lease::Queue::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(QueueId)
|
|
658
707
|
Dmabuf::Queues::DATATYPE = ::Nl::Protocols::Genl::DataTypes::NestedAttributes.new(QueueId)
|
|
659
708
|
end
|
|
660
709
|
module Messages
|
|
@@ -697,6 +746,13 @@ class Netdev < ::Nl::Family
|
|
|
697
746
|
def xsk_features; attributes[:"xsk_features"]&.value; end
|
|
698
747
|
end
|
|
699
748
|
# Get / dump information about a netdev.
|
|
749
|
+
class DumpDevGetRequest < ::Nl::Protocols::Genl::Message
|
|
750
|
+
TYPE = 1
|
|
751
|
+
FIXED_HEADER = nil
|
|
752
|
+
ATTRIBUTE_SET = AttributeSets::Dev
|
|
753
|
+
ATTRIBUTES = Ractor.make_shareable(%i[])
|
|
754
|
+
end
|
|
755
|
+
# Get / dump information about a netdev.
|
|
700
756
|
class DumpDevGetReply < ::Nl::Protocols::Genl::Message
|
|
701
757
|
TYPE = 1
|
|
702
758
|
FIXED_HEADER = nil
|
|
@@ -783,6 +839,20 @@ class Netdev < ::Nl::Family
|
|
|
783
839
|
# Only Page Pools associated by the driver with a net_device
|
|
784
840
|
# can be listed. ifindex will not be reported if the net_device
|
|
785
841
|
# no longer exists.
|
|
842
|
+
class DumpPagePoolGetRequest < ::Nl::Protocols::Genl::Message
|
|
843
|
+
TYPE = 5
|
|
844
|
+
FIXED_HEADER = nil
|
|
845
|
+
ATTRIBUTE_SET = AttributeSets::PagePool
|
|
846
|
+
ATTRIBUTES = Ractor.make_shareable(%i[ifindex])
|
|
847
|
+
# Gets the value of `ifindex` attribute in the message.
|
|
848
|
+
#--
|
|
849
|
+
# @rbs return: ::Integer
|
|
850
|
+
def ifindex; attributes[:"ifindex"]&.value; end
|
|
851
|
+
end
|
|
852
|
+
# Get / dump information about Page Pools.
|
|
853
|
+
# Only Page Pools associated by the driver with a net_device
|
|
854
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
855
|
+
# no longer exists.
|
|
786
856
|
class DumpPagePoolGetReply < ::Nl::Protocols::Genl::Message
|
|
787
857
|
TYPE = 5
|
|
788
858
|
FIXED_HEADER = nil
|
|
@@ -888,6 +958,17 @@ class Netdev < ::Nl::Family
|
|
|
888
958
|
def recycle_released_refcnt; attributes[:"recycle_released_refcnt"]&.value; end
|
|
889
959
|
end
|
|
890
960
|
# Get page pool statistics.
|
|
961
|
+
class DumpPagePoolStatsGetRequest < ::Nl::Protocols::Genl::Message
|
|
962
|
+
TYPE = 9
|
|
963
|
+
FIXED_HEADER = nil
|
|
964
|
+
ATTRIBUTE_SET = AttributeSets::PagePoolStats
|
|
965
|
+
ATTRIBUTES = Ractor.make_shareable(%i[info])
|
|
966
|
+
# Gets the value of `info` attribute in the message.
|
|
967
|
+
#--
|
|
968
|
+
# @rbs return: AttributeSets::PagePoolInfo
|
|
969
|
+
def info; attributes[:"info"]&.value; end
|
|
970
|
+
end
|
|
971
|
+
# Get page pool statistics.
|
|
891
972
|
class DumpPagePoolStatsGetReply < ::Nl::Protocols::Genl::Message
|
|
892
973
|
TYPE = 9
|
|
893
974
|
FIXED_HEADER = nil
|
|
@@ -966,7 +1047,7 @@ class Netdev < ::Nl::Family
|
|
|
966
1047
|
TYPE = 10
|
|
967
1048
|
FIXED_HEADER = nil
|
|
968
1049
|
ATTRIBUTE_SET = AttributeSets::Queue
|
|
969
|
-
ATTRIBUTES = Ractor.make_shareable(%i[id ifindex type napi_id dmabuf io_uring xsk])
|
|
1050
|
+
ATTRIBUTES = Ractor.make_shareable(%i[id ifindex type napi_id dmabuf io_uring xsk lease])
|
|
970
1051
|
# Gets the value of `id` attribute in the message.
|
|
971
1052
|
#--
|
|
972
1053
|
# @rbs return: ::Integer
|
|
@@ -995,6 +1076,10 @@ class Netdev < ::Nl::Family
|
|
|
995
1076
|
#--
|
|
996
1077
|
# @rbs return: AttributeSets::XskInfo
|
|
997
1078
|
def xsk; attributes[:"xsk"]&.value; end
|
|
1079
|
+
# Gets the value of `lease` attribute in the message.
|
|
1080
|
+
#--
|
|
1081
|
+
# @rbs return: AttributeSets::Lease
|
|
1082
|
+
def lease; attributes[:"lease"]&.value; end
|
|
998
1083
|
end
|
|
999
1084
|
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
1000
1085
|
class DumpQueueGetRequest < ::Nl::Protocols::Genl::Message
|
|
@@ -1012,7 +1097,7 @@ class Netdev < ::Nl::Family
|
|
|
1012
1097
|
TYPE = 10
|
|
1013
1098
|
FIXED_HEADER = nil
|
|
1014
1099
|
ATTRIBUTE_SET = AttributeSets::Queue
|
|
1015
|
-
ATTRIBUTES = Ractor.make_shareable(%i[id ifindex type napi_id dmabuf io_uring xsk])
|
|
1100
|
+
ATTRIBUTES = Ractor.make_shareable(%i[id ifindex type napi_id dmabuf io_uring xsk lease])
|
|
1016
1101
|
# Gets the value of `id` attribute in the message.
|
|
1017
1102
|
#--
|
|
1018
1103
|
# @rbs return: ::Integer
|
|
@@ -1041,6 +1126,10 @@ class Netdev < ::Nl::Family
|
|
|
1041
1126
|
#--
|
|
1042
1127
|
# @rbs return: AttributeSets::XskInfo
|
|
1043
1128
|
def xsk; attributes[:"xsk"]&.value; end
|
|
1129
|
+
# Gets the value of `lease` attribute in the message.
|
|
1130
|
+
#--
|
|
1131
|
+
# @rbs return: AttributeSets::Lease
|
|
1132
|
+
def lease; attributes[:"lease"]&.value; end
|
|
1044
1133
|
end
|
|
1045
1134
|
# Get information about NAPI instances configured on the system.
|
|
1046
1135
|
class DoNapiGetRequest < ::Nl::Protocols::Genl::Message
|
|
@@ -1289,6 +1378,8 @@ class Netdev < ::Nl::Family
|
|
|
1289
1378
|
def tx_wake; attributes[:"tx_wake"]&.value; end
|
|
1290
1379
|
end
|
|
1291
1380
|
# Bind dmabuf to netdev
|
|
1381
|
+
#
|
|
1382
|
+
# Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
|
|
1292
1383
|
class DoBindRxRequest < ::Nl::Protocols::Genl::Message
|
|
1293
1384
|
TYPE = 13
|
|
1294
1385
|
FIXED_HEADER = nil
|
|
@@ -1308,6 +1399,8 @@ class Netdev < ::Nl::Family
|
|
|
1308
1399
|
def fd; attributes[:"fd"]&.value; end
|
|
1309
1400
|
end
|
|
1310
1401
|
# Bind dmabuf to netdev
|
|
1402
|
+
#
|
|
1403
|
+
# Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
|
|
1311
1404
|
class DoBindRxReply < ::Nl::Protocols::Genl::Message
|
|
1312
1405
|
TYPE = 13
|
|
1313
1406
|
FIXED_HEADER = nil
|
|
@@ -1319,6 +1412,8 @@ class Netdev < ::Nl::Family
|
|
|
1319
1412
|
def id; attributes[:"id"]&.value; end
|
|
1320
1413
|
end
|
|
1321
1414
|
# Set configurable NAPI instance settings.
|
|
1415
|
+
#
|
|
1416
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
1322
1417
|
class DoNapiSetRequest < ::Nl::Protocols::Genl::Message
|
|
1323
1418
|
TYPE = 14
|
|
1324
1419
|
FIXED_HEADER = nil
|
|
@@ -1371,13 +1466,271 @@ class Netdev < ::Nl::Family
|
|
|
1371
1466
|
# @rbs return: ::Integer
|
|
1372
1467
|
def id; attributes[:"id"]&.value; end
|
|
1373
1468
|
end
|
|
1469
|
+
# Create a new queue for the given netdevice. Whether this operation
|
|
1470
|
+
# is supported depends on the device and the driver.
|
|
1471
|
+
#
|
|
1472
|
+
#
|
|
1473
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
1474
|
+
class DoQueueCreateRequest < ::Nl::Protocols::Genl::Message
|
|
1475
|
+
TYPE = 16
|
|
1476
|
+
FIXED_HEADER = nil
|
|
1477
|
+
ATTRIBUTE_SET = AttributeSets::Queue
|
|
1478
|
+
ATTRIBUTES = Ractor.make_shareable(%i[ifindex type lease])
|
|
1479
|
+
# Gets the value of `ifindex` attribute in the message.
|
|
1480
|
+
#--
|
|
1481
|
+
# @rbs return: ::Integer
|
|
1482
|
+
def ifindex; attributes[:"ifindex"]&.value; end
|
|
1483
|
+
# Gets the value of `type` attribute in the message.
|
|
1484
|
+
#--
|
|
1485
|
+
# @rbs return: ::Integer
|
|
1486
|
+
def type; attributes[:"type"]&.value; end
|
|
1487
|
+
# Gets the value of `lease` attribute in the message.
|
|
1488
|
+
#--
|
|
1489
|
+
# @rbs return: AttributeSets::Lease
|
|
1490
|
+
def lease; attributes[:"lease"]&.value; end
|
|
1491
|
+
end
|
|
1492
|
+
# Create a new queue for the given netdevice. Whether this operation
|
|
1493
|
+
# is supported depends on the device and the driver.
|
|
1494
|
+
#
|
|
1495
|
+
#
|
|
1496
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
1497
|
+
class DoQueueCreateReply < ::Nl::Protocols::Genl::Message
|
|
1498
|
+
TYPE = 16
|
|
1499
|
+
FIXED_HEADER = nil
|
|
1500
|
+
ATTRIBUTE_SET = AttributeSets::Queue
|
|
1501
|
+
ATTRIBUTES = Ractor.make_shareable(%i[id])
|
|
1502
|
+
# Gets the value of `id` attribute in the message.
|
|
1503
|
+
#--
|
|
1504
|
+
# @rbs return: ::Integer
|
|
1505
|
+
def id; attributes[:"id"]&.value; end
|
|
1506
|
+
end
|
|
1507
|
+
end
|
|
1508
|
+
module Notifications
|
|
1509
|
+
# Notification about device appearing.
|
|
1510
|
+
#
|
|
1511
|
+
# Multicast group: `mgmt`.
|
|
1512
|
+
class DevAddNtf < ::Nl::Protocols::Genl::Message
|
|
1513
|
+
TYPE = 2
|
|
1514
|
+
FIXED_HEADER = nil
|
|
1515
|
+
ATTRIBUTE_SET = AttributeSets::Dev
|
|
1516
|
+
ATTRIBUTES = Ractor.make_shareable(%i[ifindex xdp_features xdp_zc_max_segs xdp_rx_metadata_features xsk_features])
|
|
1517
|
+
# Gets the value of `ifindex` attribute in the message.
|
|
1518
|
+
#--
|
|
1519
|
+
# @rbs return: ::Integer
|
|
1520
|
+
def ifindex; attributes[:"ifindex"]&.value; end
|
|
1521
|
+
# Gets the value of `xdp-features` attribute in the message.
|
|
1522
|
+
#--
|
|
1523
|
+
# @rbs return: ::Integer
|
|
1524
|
+
def xdp_features; attributes[:"xdp_features"]&.value; end
|
|
1525
|
+
# Gets the value of `xdp-zc-max-segs` attribute in the message.
|
|
1526
|
+
#--
|
|
1527
|
+
# @rbs return: ::Integer
|
|
1528
|
+
def xdp_zc_max_segs; attributes[:"xdp_zc_max_segs"]&.value; end
|
|
1529
|
+
# Gets the value of `xdp-rx-metadata-features` attribute in the message.
|
|
1530
|
+
#--
|
|
1531
|
+
# @rbs return: ::Integer
|
|
1532
|
+
def xdp_rx_metadata_features; attributes[:"xdp_rx_metadata_features"]&.value; end
|
|
1533
|
+
# Gets the value of `xsk-features` attribute in the message.
|
|
1534
|
+
#--
|
|
1535
|
+
# @rbs return: ::Integer
|
|
1536
|
+
def xsk_features; attributes[:"xsk_features"]&.value; end
|
|
1537
|
+
end
|
|
1538
|
+
# Notification about device disappearing.
|
|
1539
|
+
#
|
|
1540
|
+
# Multicast group: `mgmt`.
|
|
1541
|
+
class DevDelNtf < ::Nl::Protocols::Genl::Message
|
|
1542
|
+
TYPE = 3
|
|
1543
|
+
FIXED_HEADER = nil
|
|
1544
|
+
ATTRIBUTE_SET = AttributeSets::Dev
|
|
1545
|
+
ATTRIBUTES = Ractor.make_shareable(%i[ifindex xdp_features xdp_zc_max_segs xdp_rx_metadata_features xsk_features])
|
|
1546
|
+
# Gets the value of `ifindex` attribute in the message.
|
|
1547
|
+
#--
|
|
1548
|
+
# @rbs return: ::Integer
|
|
1549
|
+
def ifindex; attributes[:"ifindex"]&.value; end
|
|
1550
|
+
# Gets the value of `xdp-features` attribute in the message.
|
|
1551
|
+
#--
|
|
1552
|
+
# @rbs return: ::Integer
|
|
1553
|
+
def xdp_features; attributes[:"xdp_features"]&.value; end
|
|
1554
|
+
# Gets the value of `xdp-zc-max-segs` attribute in the message.
|
|
1555
|
+
#--
|
|
1556
|
+
# @rbs return: ::Integer
|
|
1557
|
+
def xdp_zc_max_segs; attributes[:"xdp_zc_max_segs"]&.value; end
|
|
1558
|
+
# Gets the value of `xdp-rx-metadata-features` attribute in the message.
|
|
1559
|
+
#--
|
|
1560
|
+
# @rbs return: ::Integer
|
|
1561
|
+
def xdp_rx_metadata_features; attributes[:"xdp_rx_metadata_features"]&.value; end
|
|
1562
|
+
# Gets the value of `xsk-features` attribute in the message.
|
|
1563
|
+
#--
|
|
1564
|
+
# @rbs return: ::Integer
|
|
1565
|
+
def xsk_features; attributes[:"xsk_features"]&.value; end
|
|
1566
|
+
end
|
|
1567
|
+
# Notification about device configuration being changed.
|
|
1568
|
+
#
|
|
1569
|
+
# Multicast group: `mgmt`.
|
|
1570
|
+
class DevChangeNtf < ::Nl::Protocols::Genl::Message
|
|
1571
|
+
TYPE = 4
|
|
1572
|
+
FIXED_HEADER = nil
|
|
1573
|
+
ATTRIBUTE_SET = AttributeSets::Dev
|
|
1574
|
+
ATTRIBUTES = Ractor.make_shareable(%i[ifindex xdp_features xdp_zc_max_segs xdp_rx_metadata_features xsk_features])
|
|
1575
|
+
# Gets the value of `ifindex` attribute in the message.
|
|
1576
|
+
#--
|
|
1577
|
+
# @rbs return: ::Integer
|
|
1578
|
+
def ifindex; attributes[:"ifindex"]&.value; end
|
|
1579
|
+
# Gets the value of `xdp-features` attribute in the message.
|
|
1580
|
+
#--
|
|
1581
|
+
# @rbs return: ::Integer
|
|
1582
|
+
def xdp_features; attributes[:"xdp_features"]&.value; end
|
|
1583
|
+
# Gets the value of `xdp-zc-max-segs` attribute in the message.
|
|
1584
|
+
#--
|
|
1585
|
+
# @rbs return: ::Integer
|
|
1586
|
+
def xdp_zc_max_segs; attributes[:"xdp_zc_max_segs"]&.value; end
|
|
1587
|
+
# Gets the value of `xdp-rx-metadata-features` attribute in the message.
|
|
1588
|
+
#--
|
|
1589
|
+
# @rbs return: ::Integer
|
|
1590
|
+
def xdp_rx_metadata_features; attributes[:"xdp_rx_metadata_features"]&.value; end
|
|
1591
|
+
# Gets the value of `xsk-features` attribute in the message.
|
|
1592
|
+
#--
|
|
1593
|
+
# @rbs return: ::Integer
|
|
1594
|
+
def xsk_features; attributes[:"xsk_features"]&.value; end
|
|
1595
|
+
end
|
|
1596
|
+
# Notification about page pool appearing.
|
|
1597
|
+
#
|
|
1598
|
+
# Multicast group: `page-pool`.
|
|
1599
|
+
class PagePoolAddNtf < ::Nl::Protocols::Genl::Message
|
|
1600
|
+
TYPE = 6
|
|
1601
|
+
FIXED_HEADER = nil
|
|
1602
|
+
ATTRIBUTE_SET = AttributeSets::PagePool
|
|
1603
|
+
ATTRIBUTES = Ractor.make_shareable(%i[id ifindex napi_id inflight inflight_mem detach_time dmabuf io_uring])
|
|
1604
|
+
# Gets the value of `id` attribute in the message.
|
|
1605
|
+
#--
|
|
1606
|
+
# @rbs return: ::Integer
|
|
1607
|
+
def id; attributes[:"id"]&.value; end
|
|
1608
|
+
# Gets the value of `ifindex` attribute in the message.
|
|
1609
|
+
#--
|
|
1610
|
+
# @rbs return: ::Integer
|
|
1611
|
+
def ifindex; attributes[:"ifindex"]&.value; end
|
|
1612
|
+
# Gets the value of `napi-id` attribute in the message.
|
|
1613
|
+
#--
|
|
1614
|
+
# @rbs return: ::Integer
|
|
1615
|
+
def napi_id; attributes[:"napi_id"]&.value; end
|
|
1616
|
+
# Gets the value of `inflight` attribute in the message.
|
|
1617
|
+
#--
|
|
1618
|
+
# @rbs return: ::Integer
|
|
1619
|
+
def inflight; attributes[:"inflight"]&.value; end
|
|
1620
|
+
# Gets the value of `inflight-mem` attribute in the message.
|
|
1621
|
+
#--
|
|
1622
|
+
# @rbs return: ::Integer
|
|
1623
|
+
def inflight_mem; attributes[:"inflight_mem"]&.value; end
|
|
1624
|
+
# Gets the value of `detach-time` attribute in the message.
|
|
1625
|
+
#--
|
|
1626
|
+
# @rbs return: ::Integer
|
|
1627
|
+
def detach_time; attributes[:"detach_time"]&.value; end
|
|
1628
|
+
# Gets the value of `dmabuf` attribute in the message.
|
|
1629
|
+
#--
|
|
1630
|
+
# @rbs return: ::Integer
|
|
1631
|
+
def dmabuf; attributes[:"dmabuf"]&.value; end
|
|
1632
|
+
# Gets the value of `io-uring` attribute in the message.
|
|
1633
|
+
#--
|
|
1634
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
1635
|
+
def io_uring; attributes[:"io_uring"]&.value; end
|
|
1636
|
+
end
|
|
1637
|
+
# Notification about page pool disappearing.
|
|
1638
|
+
#
|
|
1639
|
+
# Multicast group: `page-pool`.
|
|
1640
|
+
class PagePoolDelNtf < ::Nl::Protocols::Genl::Message
|
|
1641
|
+
TYPE = 7
|
|
1642
|
+
FIXED_HEADER = nil
|
|
1643
|
+
ATTRIBUTE_SET = AttributeSets::PagePool
|
|
1644
|
+
ATTRIBUTES = Ractor.make_shareable(%i[id ifindex napi_id inflight inflight_mem detach_time dmabuf io_uring])
|
|
1645
|
+
# Gets the value of `id` attribute in the message.
|
|
1646
|
+
#--
|
|
1647
|
+
# @rbs return: ::Integer
|
|
1648
|
+
def id; attributes[:"id"]&.value; end
|
|
1649
|
+
# Gets the value of `ifindex` attribute in the message.
|
|
1650
|
+
#--
|
|
1651
|
+
# @rbs return: ::Integer
|
|
1652
|
+
def ifindex; attributes[:"ifindex"]&.value; end
|
|
1653
|
+
# Gets the value of `napi-id` attribute in the message.
|
|
1654
|
+
#--
|
|
1655
|
+
# @rbs return: ::Integer
|
|
1656
|
+
def napi_id; attributes[:"napi_id"]&.value; end
|
|
1657
|
+
# Gets the value of `inflight` attribute in the message.
|
|
1658
|
+
#--
|
|
1659
|
+
# @rbs return: ::Integer
|
|
1660
|
+
def inflight; attributes[:"inflight"]&.value; end
|
|
1661
|
+
# Gets the value of `inflight-mem` attribute in the message.
|
|
1662
|
+
#--
|
|
1663
|
+
# @rbs return: ::Integer
|
|
1664
|
+
def inflight_mem; attributes[:"inflight_mem"]&.value; end
|
|
1665
|
+
# Gets the value of `detach-time` attribute in the message.
|
|
1666
|
+
#--
|
|
1667
|
+
# @rbs return: ::Integer
|
|
1668
|
+
def detach_time; attributes[:"detach_time"]&.value; end
|
|
1669
|
+
# Gets the value of `dmabuf` attribute in the message.
|
|
1670
|
+
#--
|
|
1671
|
+
# @rbs return: ::Integer
|
|
1672
|
+
def dmabuf; attributes[:"dmabuf"]&.value; end
|
|
1673
|
+
# Gets the value of `io-uring` attribute in the message.
|
|
1674
|
+
#--
|
|
1675
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
1676
|
+
def io_uring; attributes[:"io_uring"]&.value; end
|
|
1677
|
+
end
|
|
1678
|
+
# Notification about page pool configuration being changed.
|
|
1679
|
+
#
|
|
1680
|
+
# Multicast group: `page-pool`.
|
|
1681
|
+
class PagePoolChangeNtf < ::Nl::Protocols::Genl::Message
|
|
1682
|
+
TYPE = 8
|
|
1683
|
+
FIXED_HEADER = nil
|
|
1684
|
+
ATTRIBUTE_SET = AttributeSets::PagePool
|
|
1685
|
+
ATTRIBUTES = Ractor.make_shareable(%i[id ifindex napi_id inflight inflight_mem detach_time dmabuf io_uring])
|
|
1686
|
+
# Gets the value of `id` attribute in the message.
|
|
1687
|
+
#--
|
|
1688
|
+
# @rbs return: ::Integer
|
|
1689
|
+
def id; attributes[:"id"]&.value; end
|
|
1690
|
+
# Gets the value of `ifindex` attribute in the message.
|
|
1691
|
+
#--
|
|
1692
|
+
# @rbs return: ::Integer
|
|
1693
|
+
def ifindex; attributes[:"ifindex"]&.value; end
|
|
1694
|
+
# Gets the value of `napi-id` attribute in the message.
|
|
1695
|
+
#--
|
|
1696
|
+
# @rbs return: ::Integer
|
|
1697
|
+
def napi_id; attributes[:"napi_id"]&.value; end
|
|
1698
|
+
# Gets the value of `inflight` attribute in the message.
|
|
1699
|
+
#--
|
|
1700
|
+
# @rbs return: ::Integer
|
|
1701
|
+
def inflight; attributes[:"inflight"]&.value; end
|
|
1702
|
+
# Gets the value of `inflight-mem` attribute in the message.
|
|
1703
|
+
#--
|
|
1704
|
+
# @rbs return: ::Integer
|
|
1705
|
+
def inflight_mem; attributes[:"inflight_mem"]&.value; end
|
|
1706
|
+
# Gets the value of `detach-time` attribute in the message.
|
|
1707
|
+
#--
|
|
1708
|
+
# @rbs return: ::Integer
|
|
1709
|
+
def detach_time; attributes[:"detach_time"]&.value; end
|
|
1710
|
+
# Gets the value of `dmabuf` attribute in the message.
|
|
1711
|
+
#--
|
|
1712
|
+
# @rbs return: ::Integer
|
|
1713
|
+
def dmabuf; attributes[:"dmabuf"]&.value; end
|
|
1714
|
+
# Gets the value of `io-uring` attribute in the message.
|
|
1715
|
+
#--
|
|
1716
|
+
# @rbs return: AttributeSets::IoUringProviderInfo
|
|
1717
|
+
def io_uring; attributes[:"io_uring"]&.value; end
|
|
1718
|
+
end
|
|
1374
1719
|
end
|
|
1720
|
+
NOTIFICATIONS = Ractor.make_shareable({2 => Notifications::DevAddNtf, 3 => Notifications::DevDelNtf, 4 => Notifications::DevChangeNtf, 6 => Notifications::PagePoolAddNtf, 7 => Notifications::PagePoolDelNtf, 8 => Notifications::PagePoolChangeNtf}) #: Hash[::Integer, ::Class]
|
|
1375
1721
|
# Get / dump information about a netdev.
|
|
1376
1722
|
#--
|
|
1377
1723
|
# @rbs (?ifindex: ::Integer) -> Messages::DoDevGetReply
|
|
1378
1724
|
def do_dev_get(**args)
|
|
1379
1725
|
exchange_message(:"do", Messages::DoDevGetRequest, Messages::DoDevGetReply, args)
|
|
1380
1726
|
end
|
|
1727
|
+
# Get / dump information about a netdev.
|
|
1728
|
+
#--
|
|
1729
|
+
# @rbs () -> Enumerable[Messages::DumpDevGetReply]
|
|
1730
|
+
# | () { (Messages::DumpDevGetReply) -> void } -> void
|
|
1731
|
+
def dump_dev_get(**args, &block)
|
|
1732
|
+
exchange_message(:"dump", Messages::DumpDevGetRequest, Messages::DumpDevGetReply, args, &block)
|
|
1733
|
+
end
|
|
1381
1734
|
# Get / dump information about Page Pools.
|
|
1382
1735
|
# Only Page Pools associated by the driver with a net_device
|
|
1383
1736
|
# can be listed. ifindex will not be reported if the net_device
|
|
@@ -1387,12 +1740,29 @@ class Netdev < ::Nl::Family
|
|
|
1387
1740
|
def do_page_pool_get(**args)
|
|
1388
1741
|
exchange_message(:"do", Messages::DoPagePoolGetRequest, Messages::DoPagePoolGetReply, args)
|
|
1389
1742
|
end
|
|
1743
|
+
# Get / dump information about Page Pools.
|
|
1744
|
+
# Only Page Pools associated by the driver with a net_device
|
|
1745
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
1746
|
+
# no longer exists.
|
|
1747
|
+
#--
|
|
1748
|
+
# @rbs (?ifindex: ::Integer) -> Enumerable[Messages::DumpPagePoolGetReply]
|
|
1749
|
+
# | (?ifindex: ::Integer) { (Messages::DumpPagePoolGetReply) -> void } -> void
|
|
1750
|
+
def dump_page_pool_get(**args, &block)
|
|
1751
|
+
exchange_message(:"dump", Messages::DumpPagePoolGetRequest, Messages::DumpPagePoolGetReply, args, &block)
|
|
1752
|
+
end
|
|
1390
1753
|
# Get page pool statistics.
|
|
1391
1754
|
#--
|
|
1392
1755
|
# @rbs (?info: AttributeSets::PagePoolInfo) -> Messages::DoPagePoolStatsGetReply
|
|
1393
1756
|
def do_page_pool_stats_get(**args)
|
|
1394
1757
|
exchange_message(:"do", Messages::DoPagePoolStatsGetRequest, Messages::DoPagePoolStatsGetReply, args)
|
|
1395
1758
|
end
|
|
1759
|
+
# Get page pool statistics.
|
|
1760
|
+
#--
|
|
1761
|
+
# @rbs (?info: AttributeSets::PagePoolInfo) -> Enumerable[Messages::DumpPagePoolStatsGetReply]
|
|
1762
|
+
# | (?info: AttributeSets::PagePoolInfo) { (Messages::DumpPagePoolStatsGetReply) -> void } -> void
|
|
1763
|
+
def dump_page_pool_stats_get(**args, &block)
|
|
1764
|
+
exchange_message(:"dump", Messages::DumpPagePoolStatsGetRequest, Messages::DumpPagePoolStatsGetReply, args, &block)
|
|
1765
|
+
end
|
|
1396
1766
|
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
1397
1767
|
#--
|
|
1398
1768
|
# @rbs (?id: ::Integer, ?ifindex: ::Integer, ?type: ::Integer) -> Messages::DoQueueGetReply
|
|
@@ -1429,12 +1799,16 @@ class Netdev < ::Nl::Family
|
|
|
1429
1799
|
exchange_message(:"dump", Messages::DumpQstatsGetRequest, Messages::DumpQstatsGetReply, args, &block)
|
|
1430
1800
|
end
|
|
1431
1801
|
# Bind dmabuf to netdev
|
|
1802
|
+
#
|
|
1803
|
+
# Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
|
|
1432
1804
|
#--
|
|
1433
1805
|
# @rbs (?ifindex: ::Integer, ?queues: AttributeSets::QueueId, ?fd: ::Integer) -> Messages::DoBindRxReply
|
|
1434
1806
|
def do_bind_rx(**args)
|
|
1435
1807
|
exchange_message(:"do", Messages::DoBindRxRequest, Messages::DoBindRxReply, args)
|
|
1436
1808
|
end
|
|
1437
1809
|
# Set configurable NAPI instance settings.
|
|
1810
|
+
#
|
|
1811
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
1438
1812
|
#--
|
|
1439
1813
|
# @rbs (?id: ::Integer, ?defer_hard_irqs: ::Integer, ?gro_flush_timeout: ::Integer, ?irq_suspend_timeout: ::Integer, ?threaded: ::Integer) -> void
|
|
1440
1814
|
def do_napi_set(**args)
|
|
@@ -1446,5 +1820,140 @@ class Netdev < ::Nl::Family
|
|
|
1446
1820
|
def do_bind_tx(**args)
|
|
1447
1821
|
exchange_message(:"do", Messages::DoBindTxRequest, Messages::DoBindTxReply, args)
|
|
1448
1822
|
end
|
|
1823
|
+
# Create a new queue for the given netdevice. Whether this operation
|
|
1824
|
+
# is supported depends on the device and the driver.
|
|
1825
|
+
#
|
|
1826
|
+
#
|
|
1827
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
1828
|
+
#--
|
|
1829
|
+
# @rbs (?ifindex: ::Integer, ?type: ::Integer, ?lease: AttributeSets::Lease) -> Messages::DoQueueCreateReply
|
|
1830
|
+
def do_queue_create(**args)
|
|
1831
|
+
exchange_message(:"do", Messages::DoQueueCreateRequest, Messages::DoQueueCreateReply, args)
|
|
1832
|
+
end
|
|
1833
|
+
class AsyncOperations
|
|
1834
|
+
# :nodoc:
|
|
1835
|
+
def initialize(&exchange)
|
|
1836
|
+
@exchange = exchange
|
|
1837
|
+
end
|
|
1838
|
+
# Get / dump information about a netdev.
|
|
1839
|
+
#--
|
|
1840
|
+
# @rbs (?ifindex: ::Integer) -> ::Nl::Async::Future[Messages::DoDevGetReply]
|
|
1841
|
+
def do_dev_get(**args)
|
|
1842
|
+
@exchange.call(:"do", Messages::DoDevGetRequest, Messages::DoDevGetReply, args)
|
|
1843
|
+
end
|
|
1844
|
+
# Get / dump information about a netdev.
|
|
1845
|
+
#--
|
|
1846
|
+
# @rbs () -> ::Nl::Async::Stream[Messages::DumpDevGetReply]
|
|
1847
|
+
def dump_dev_get(**args)
|
|
1848
|
+
@exchange.call(:"dump", Messages::DumpDevGetRequest, Messages::DumpDevGetReply, args)
|
|
1849
|
+
end
|
|
1850
|
+
# Get / dump information about Page Pools.
|
|
1851
|
+
# Only Page Pools associated by the driver with a net_device
|
|
1852
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
1853
|
+
# no longer exists.
|
|
1854
|
+
#--
|
|
1855
|
+
# @rbs (?id: ::Integer) -> ::Nl::Async::Future[Messages::DoPagePoolGetReply]
|
|
1856
|
+
def do_page_pool_get(**args)
|
|
1857
|
+
@exchange.call(:"do", Messages::DoPagePoolGetRequest, Messages::DoPagePoolGetReply, args)
|
|
1858
|
+
end
|
|
1859
|
+
# Get / dump information about Page Pools.
|
|
1860
|
+
# Only Page Pools associated by the driver with a net_device
|
|
1861
|
+
# can be listed. ifindex will not be reported if the net_device
|
|
1862
|
+
# no longer exists.
|
|
1863
|
+
#--
|
|
1864
|
+
# @rbs (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpPagePoolGetReply]
|
|
1865
|
+
def dump_page_pool_get(**args)
|
|
1866
|
+
@exchange.call(:"dump", Messages::DumpPagePoolGetRequest, Messages::DumpPagePoolGetReply, args)
|
|
1867
|
+
end
|
|
1868
|
+
# Get page pool statistics.
|
|
1869
|
+
#--
|
|
1870
|
+
# @rbs (?info: AttributeSets::PagePoolInfo) -> ::Nl::Async::Future[Messages::DoPagePoolStatsGetReply]
|
|
1871
|
+
def do_page_pool_stats_get(**args)
|
|
1872
|
+
@exchange.call(:"do", Messages::DoPagePoolStatsGetRequest, Messages::DoPagePoolStatsGetReply, args)
|
|
1873
|
+
end
|
|
1874
|
+
# Get page pool statistics.
|
|
1875
|
+
#--
|
|
1876
|
+
# @rbs (?info: AttributeSets::PagePoolInfo) -> ::Nl::Async::Stream[Messages::DumpPagePoolStatsGetReply]
|
|
1877
|
+
def dump_page_pool_stats_get(**args)
|
|
1878
|
+
@exchange.call(:"dump", Messages::DumpPagePoolStatsGetRequest, Messages::DumpPagePoolStatsGetReply, args)
|
|
1879
|
+
end
|
|
1880
|
+
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
1881
|
+
#--
|
|
1882
|
+
# @rbs (?id: ::Integer, ?ifindex: ::Integer, ?type: ::Integer) -> ::Nl::Async::Future[Messages::DoQueueGetReply]
|
|
1883
|
+
def do_queue_get(**args)
|
|
1884
|
+
@exchange.call(:"do", Messages::DoQueueGetRequest, Messages::DoQueueGetReply, args)
|
|
1885
|
+
end
|
|
1886
|
+
# Get queue information from the kernel. Only configured queues will be reported (as opposed to all available hardware queues).
|
|
1887
|
+
#--
|
|
1888
|
+
# @rbs (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpQueueGetReply]
|
|
1889
|
+
def dump_queue_get(**args)
|
|
1890
|
+
@exchange.call(:"dump", Messages::DumpQueueGetRequest, Messages::DumpQueueGetReply, args)
|
|
1891
|
+
end
|
|
1892
|
+
# Get information about NAPI instances configured on the system.
|
|
1893
|
+
#--
|
|
1894
|
+
# @rbs (?id: ::Integer) -> ::Nl::Async::Future[Messages::DoNapiGetReply]
|
|
1895
|
+
def do_napi_get(**args)
|
|
1896
|
+
@exchange.call(:"do", Messages::DoNapiGetRequest, Messages::DoNapiGetReply, args)
|
|
1897
|
+
end
|
|
1898
|
+
# Get information about NAPI instances configured on the system.
|
|
1899
|
+
#--
|
|
1900
|
+
# @rbs (?ifindex: ::Integer) -> ::Nl::Async::Stream[Messages::DumpNapiGetReply]
|
|
1901
|
+
def dump_napi_get(**args)
|
|
1902
|
+
@exchange.call(:"dump", Messages::DumpNapiGetRequest, Messages::DumpNapiGetReply, args)
|
|
1903
|
+
end
|
|
1904
|
+
# Get / dump fine grained statistics. Which statistics are reported
|
|
1905
|
+
# depends on the device and the driver, and whether the driver stores
|
|
1906
|
+
# software counters per-queue.
|
|
1907
|
+
#--
|
|
1908
|
+
# @rbs (?ifindex: ::Integer, ?scope: ::Integer) -> ::Nl::Async::Stream[Messages::DumpQstatsGetReply]
|
|
1909
|
+
def dump_qstats_get(**args)
|
|
1910
|
+
@exchange.call(:"dump", Messages::DumpQstatsGetRequest, Messages::DumpQstatsGetReply, args)
|
|
1911
|
+
end
|
|
1912
|
+
# Bind dmabuf to netdev
|
|
1913
|
+
#
|
|
1914
|
+
# Requires CAP_NET_ADMIN in the user namespace owning the network namespace.
|
|
1915
|
+
#--
|
|
1916
|
+
# @rbs (?ifindex: ::Integer, ?queues: AttributeSets::QueueId, ?fd: ::Integer) -> ::Nl::Async::Future[Messages::DoBindRxReply]
|
|
1917
|
+
def do_bind_rx(**args)
|
|
1918
|
+
@exchange.call(:"do", Messages::DoBindRxRequest, Messages::DoBindRxReply, args)
|
|
1919
|
+
end
|
|
1920
|
+
# Set configurable NAPI instance settings.
|
|
1921
|
+
#
|
|
1922
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
1923
|
+
#--
|
|
1924
|
+
# @rbs (?id: ::Integer, ?defer_hard_irqs: ::Integer, ?gro_flush_timeout: ::Integer, ?irq_suspend_timeout: ::Integer, ?threaded: ::Integer) -> ::Nl::Async::Future[void]
|
|
1925
|
+
def do_napi_set(**args)
|
|
1926
|
+
@exchange.call(:"do", Messages::DoNapiSetRequest, nil, args)
|
|
1927
|
+
end
|
|
1928
|
+
# Bind dmabuf to netdev for TX
|
|
1929
|
+
#--
|
|
1930
|
+
# @rbs (?ifindex: ::Integer, ?fd: ::Integer) -> ::Nl::Async::Future[Messages::DoBindTxReply]
|
|
1931
|
+
def do_bind_tx(**args)
|
|
1932
|
+
@exchange.call(:"do", Messages::DoBindTxRequest, Messages::DoBindTxReply, args)
|
|
1933
|
+
end
|
|
1934
|
+
# Create a new queue for the given netdevice. Whether this operation
|
|
1935
|
+
# is supported depends on the device and the driver.
|
|
1936
|
+
#
|
|
1937
|
+
#
|
|
1938
|
+
# Requires CAP_NET_ADMIN in the initial user namespace.
|
|
1939
|
+
#--
|
|
1940
|
+
# @rbs (?ifindex: ::Integer, ?type: ::Integer, ?lease: AttributeSets::Lease) -> ::Nl::Async::Future[Messages::DoQueueCreateReply]
|
|
1941
|
+
def do_queue_create(**args)
|
|
1942
|
+
@exchange.call(:"do", Messages::DoQueueCreateRequest, Messages::DoQueueCreateReply, args)
|
|
1943
|
+
end
|
|
1944
|
+
end
|
|
1945
|
+
# Returns the asynchronous operation facade for this family.
|
|
1946
|
+
#--
|
|
1947
|
+
# @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
|
|
1948
|
+
def async(stream_capacity: nil)
|
|
1949
|
+
return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
|
|
1950
|
+
build_async_facade(AsyncOperations, stream_capacity:)
|
|
1951
|
+
end
|
|
1952
|
+
#--
|
|
1953
|
+
# @rbs (*(:mgmt | :page_pool) groups) -> self
|
|
1954
|
+
def subscribe(*groups) = super
|
|
1955
|
+
#--
|
|
1956
|
+
# @rbs (*(:mgmt | :page_pool) groups) -> self
|
|
1957
|
+
def unsubscribe(*groups) = super
|
|
1449
1958
|
end
|
|
1450
1959
|
end; end
|