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.
Files changed (57) hide show
  1. checksums.yaml +4 -4
  2. data/.rspec +3 -0
  3. data/CHANGELOG.md +8 -0
  4. data/NLSPEC_VERSION +1 -1
  5. data/Rakefile +13 -3
  6. data/generated/nl/linux/binder.rb +80 -0
  7. data/generated/nl/linux/conntrack.rb +39 -2
  8. data/generated/nl/linux/dev_energymodel.rb +106 -0
  9. data/generated/nl/linux/devlink.rb +1478 -200
  10. data/generated/nl/linux/dpll.rb +790 -66
  11. data/generated/nl/linux/drm_ras.rb +309 -0
  12. data/generated/nl/linux/ethtool.rb +1597 -248
  13. data/generated/nl/linux/fou.rb +82 -13
  14. data/generated/nl/linux/handshake.rb +93 -1
  15. data/generated/nl/linux/lockd.rb +50 -0
  16. data/generated/nl/linux/mptcp_pm.rb +159 -0
  17. data/generated/nl/linux/net_shaper.rb +124 -1
  18. data/generated/nl/linux/netdev.rb +515 -6
  19. data/generated/nl/linux/nfsd.rb +878 -10
  20. data/generated/nl/linux/nftables.rb +2134 -179
  21. data/generated/nl/linux/nl80211.rb +81 -22
  22. data/generated/nl/linux/nlctrl.rb +59 -8
  23. data/generated/nl/linux/ovpn.rb +207 -12
  24. data/generated/nl/linux/ovs_datapath.rb +59 -10
  25. data/generated/nl/linux/ovs_flow.rb +63 -20
  26. data/generated/nl/linux/ovs_packet.rb +277 -0
  27. data/generated/nl/linux/ovs_vport.rb +59 -10
  28. data/generated/nl/linux/psp.rb +453 -6
  29. data/generated/nl/linux/rt_addr.rb +69 -14
  30. data/generated/nl/linux/rt_link.rb +452 -112
  31. data/generated/nl/linux/rt_neigh.rb +227 -16
  32. data/generated/nl/linux/rt_route.rb +92 -49
  33. data/generated/nl/linux/rt_rule.rb +300 -11
  34. data/generated/nl/linux/sunrpc_cache.rb +423 -0
  35. data/generated/nl/linux/tc.rb +168 -54
  36. data/generated/nl/linux/tcp_metrics.rb +69 -12
  37. data/generated/nl/linux/team.rb +80 -0
  38. data/generated/nl/linux/wireguard.rb +99 -7
  39. data/generated/nl/linux.rb +3 -0
  40. data/lib/nl/linux/version.rb +1 -1
  41. data/linux/devlink.yaml +92 -2
  42. data/linux/dpll.yaml +94 -5
  43. data/linux/drm_ras.yaml +126 -0
  44. data/linux/ethtool.yaml +21 -4
  45. data/linux/handshake.yaml +9 -0
  46. data/linux/mptcp_pm.yaml +1 -0
  47. data/linux/net_shaper.yaml +13 -6
  48. data/linux/netdev.yaml +61 -2
  49. data/linux/nfsd.yaml +303 -2
  50. data/linux/nftables.yaml +640 -49
  51. data/linux/ovpn.yaml +26 -1
  52. data/linux/ovs_packet.yaml +130 -0
  53. data/linux/psp.yaml +80 -3
  54. data/linux/rt-link.yaml +70 -24
  55. data/linux/sunrpc_cache.yaml +149 -0
  56. data/linux/tc.yaml +3 -0
  57. 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/rt-link.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 RtLink < ::Nl::Family
10
12
  NAME = "rt-link"
11
13
  PROTOCOL = Ractor.make_shareable(::Nl::Protocols::Raw.new("rt-link", 0))
14
+ MCAST_GROUPS = Ractor.make_shareable({:"rtnlgrp_link" => ::Nl::McastGroup.new("rtnlgrp-link", 1), :"rtnlgrp_stats" => ::Nl::McastGroup.new("rtnlgrp-stats", 36)}) #: Hash[::Symbol, ::Nl::McastGroup]
12
15
  module Structs
13
16
  Rtgenmsg = Struct.new(
14
17
  :"family", #: ::Integer
@@ -59,7 +62,7 @@ class RtLink < ::Nl::Family
59
62
  end
60
63
  IflaBridgeId = Struct.new(
61
64
  :"prio", #: ::Integer
62
- :"addr", #: untyped
65
+ :"addr", #: ::String
63
66
  )
64
67
  class IflaBridgeId
65
68
  # :nodoc:
@@ -332,7 +335,7 @@ class RtLink < ::Nl::Family
332
335
  end
333
336
  IflaVfMac = Struct.new(
334
337
  :"vf", #: ::Integer
335
- :"mac", #: untyped
338
+ :"mac", #: ::String
336
339
  )
337
340
  class IflaVfMac
338
341
  # :nodoc:
@@ -595,16 +598,6 @@ class RtLink < ::Nl::Family
595
598
  NAME = :"stats"
596
599
  DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
597
600
  end
598
- class Cost < Attribute
599
- TYPE = 8
600
- NAME = :"cost"
601
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::String.new(check: nil)
602
- end
603
- class Priority < Attribute
604
- TYPE = 9
605
- NAME = :"priority"
606
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::String.new(check: nil)
607
- end
608
601
  class Master < Attribute
609
602
  TYPE = 10
610
603
  NAME = :"master"
@@ -613,12 +606,12 @@ class RtLink < ::Nl::Family
613
606
  class Wireless < Attribute
614
607
  TYPE = 11
615
608
  NAME = :"wireless"
616
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::String.new(check: nil)
609
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
617
610
  end
618
611
  class Protinfo < Attribute
619
612
  TYPE = 12
620
613
  NAME = :"protinfo"
621
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::String.new(check: nil)
614
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
622
615
  end
623
616
  class Txqlen < Attribute
624
617
  TYPE = 13
@@ -898,9 +891,9 @@ class RtLink < ::Nl::Family
898
891
  DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
899
892
  end
900
893
  # :nodoc:
901
- BY_NAME = Ractor.make_shareable({:"address" => Address, :"broadcast" => Broadcast, :"ifname" => Ifname, :"mtu" => Mtu, :"link" => Link, :"qdisc" => Qdisc, :"stats" => Stats, :"cost" => Cost, :"priority" => Priority, :"master" => Master, :"wireless" => Wireless, :"protinfo" => Protinfo, :"txqlen" => Txqlen, :"map" => Map, :"weight" => Weight, :"operstate" => Operstate, :"linkmode" => Linkmode, :"linkinfo" => Linkinfo, :"net_ns_pid" => NetNsPid, :"ifalias" => Ifalias, :"num_vf" => NumVf, :"vfinfo_list" => VfinfoList, :"stats64" => Stats64, :"vf_ports" => VfPorts, :"port_self" => PortSelf, :"af_spec" => AfSpec, :"group" => Group, :"net_ns_fd" => NetNsFd, :"ext_mask" => ExtMask, :"promiscuity" => Promiscuity, :"num_tx_queues" => NumTxQueues, :"num_rx_queues" => NumRxQueues, :"carrier" => Carrier, :"phys_port_id" => PhysPortId, :"carrier_changes" => CarrierChanges, :"phys_switch_id" => PhysSwitchId, :"link_netnsid" => LinkNetnsid, :"phys_port_name" => PhysPortName, :"proto_down" => ProtoDown, :"gso_max_segs" => GsoMaxSegs, :"gso_max_size" => GsoMaxSize, :"pad" => Pad, :"xdp" => Xdp, :"event" => Event, :"new_netnsid" => NewNetnsid, :"target_netnsid" => TargetNetnsid, :"carrier_up_count" => CarrierUpCount, :"carrier_down_count" => CarrierDownCount, :"new_ifindex" => NewIfindex, :"min_mtu" => MinMtu, :"max_mtu" => MaxMtu, :"prop_list" => PropList, :"alt_ifname" => AltIfname, :"perm_address" => PermAddress, :"proto_down_reason" => ProtoDownReason, :"parent_dev_name" => ParentDevName, :"parent_dev_bus_name" => ParentDevBusName, :"gro_max_size" => GroMaxSize, :"tso_max_size" => TsoMaxSize, :"tso_max_segs" => TsoMaxSegs, :"allmulti" => Allmulti, :"devlink_port" => DevlinkPort, :"gso_ipv4_max_size" => GsoIpv4MaxSize, :"gro_ipv4_max_size" => GroIpv4MaxSize, :"dpll_pin" => DpllPin, :"max_pacing_offload_horizon" => MaxPacingOffloadHorizon, :"netns_immutable" => NetnsImmutable, :"headroom" => Headroom, :"tailroom" => Tailroom}) #: Hash[::Symbol, Attribute]
894
+ BY_NAME = Ractor.make_shareable({:"address" => Address, :"broadcast" => Broadcast, :"ifname" => Ifname, :"mtu" => Mtu, :"link" => Link, :"qdisc" => Qdisc, :"stats" => Stats, :"master" => Master, :"wireless" => Wireless, :"protinfo" => Protinfo, :"txqlen" => Txqlen, :"map" => Map, :"weight" => Weight, :"operstate" => Operstate, :"linkmode" => Linkmode, :"linkinfo" => Linkinfo, :"net_ns_pid" => NetNsPid, :"ifalias" => Ifalias, :"num_vf" => NumVf, :"vfinfo_list" => VfinfoList, :"stats64" => Stats64, :"vf_ports" => VfPorts, :"port_self" => PortSelf, :"af_spec" => AfSpec, :"group" => Group, :"net_ns_fd" => NetNsFd, :"ext_mask" => ExtMask, :"promiscuity" => Promiscuity, :"num_tx_queues" => NumTxQueues, :"num_rx_queues" => NumRxQueues, :"carrier" => Carrier, :"phys_port_id" => PhysPortId, :"carrier_changes" => CarrierChanges, :"phys_switch_id" => PhysSwitchId, :"link_netnsid" => LinkNetnsid, :"phys_port_name" => PhysPortName, :"proto_down" => ProtoDown, :"gso_max_segs" => GsoMaxSegs, :"gso_max_size" => GsoMaxSize, :"pad" => Pad, :"xdp" => Xdp, :"event" => Event, :"new_netnsid" => NewNetnsid, :"target_netnsid" => TargetNetnsid, :"carrier_up_count" => CarrierUpCount, :"carrier_down_count" => CarrierDownCount, :"new_ifindex" => NewIfindex, :"min_mtu" => MinMtu, :"max_mtu" => MaxMtu, :"prop_list" => PropList, :"alt_ifname" => AltIfname, :"perm_address" => PermAddress, :"proto_down_reason" => ProtoDownReason, :"parent_dev_name" => ParentDevName, :"parent_dev_bus_name" => ParentDevBusName, :"gro_max_size" => GroMaxSize, :"tso_max_size" => TsoMaxSize, :"tso_max_segs" => TsoMaxSegs, :"allmulti" => Allmulti, :"devlink_port" => DevlinkPort, :"gso_ipv4_max_size" => GsoIpv4MaxSize, :"gro_ipv4_max_size" => GroIpv4MaxSize, :"dpll_pin" => DpllPin, :"max_pacing_offload_horizon" => MaxPacingOffloadHorizon, :"netns_immutable" => NetnsImmutable, :"headroom" => Headroom, :"tailroom" => Tailroom}) #: Hash[::Symbol, Attribute]
902
895
  # :nodoc:
903
- BY_TYPE = Ractor.make_shareable({1 => Address, 2 => Broadcast, 3 => Ifname, 4 => Mtu, 5 => Link, 6 => Qdisc, 7 => Stats, 8 => Cost, 9 => Priority, 10 => Master, 11 => Wireless, 12 => Protinfo, 13 => Txqlen, 14 => Map, 15 => Weight, 16 => Operstate, 17 => Linkmode, 18 => Linkinfo, 19 => NetNsPid, 20 => Ifalias, 21 => NumVf, 22 => VfinfoList, 23 => Stats64, 24 => VfPorts, 25 => PortSelf, 26 => AfSpec, 27 => Group, 28 => NetNsFd, 29 => ExtMask, 30 => Promiscuity, 31 => NumTxQueues, 32 => NumRxQueues, 33 => Carrier, 34 => PhysPortId, 35 => CarrierChanges, 36 => PhysSwitchId, 37 => LinkNetnsid, 38 => PhysPortName, 39 => ProtoDown, 40 => GsoMaxSegs, 41 => GsoMaxSize, 42 => Pad, 43 => Xdp, 44 => Event, 45 => NewNetnsid, 46 => TargetNetnsid, 47 => CarrierUpCount, 48 => CarrierDownCount, 49 => NewIfindex, 50 => MinMtu, 51 => MaxMtu, 52 => PropList, 53 => AltIfname, 54 => PermAddress, 55 => ProtoDownReason, 56 => ParentDevName, 57 => ParentDevBusName, 58 => GroMaxSize, 59 => TsoMaxSize, 60 => TsoMaxSegs, 61 => Allmulti, 62 => DevlinkPort, 63 => GsoIpv4MaxSize, 64 => GroIpv4MaxSize, 65 => DpllPin, 66 => MaxPacingOffloadHorizon, 67 => NetnsImmutable, 68 => Headroom, 69 => Tailroom}) #: Hash[::Integer, Attribute]
896
+ BY_TYPE = Ractor.make_shareable({1 => Address, 2 => Broadcast, 3 => Ifname, 4 => Mtu, 5 => Link, 6 => Qdisc, 7 => Stats, 10 => Master, 11 => Wireless, 12 => Protinfo, 13 => Txqlen, 14 => Map, 15 => Weight, 16 => Operstate, 17 => Linkmode, 18 => Linkinfo, 19 => NetNsPid, 20 => Ifalias, 21 => NumVf, 22 => VfinfoList, 23 => Stats64, 24 => VfPorts, 25 => PortSelf, 26 => AfSpec, 27 => Group, 28 => NetNsFd, 29 => ExtMask, 30 => Promiscuity, 31 => NumTxQueues, 32 => NumRxQueues, 33 => Carrier, 34 => PhysPortId, 35 => CarrierChanges, 36 => PhysSwitchId, 37 => LinkNetnsid, 38 => PhysPortName, 39 => ProtoDown, 40 => GsoMaxSegs, 41 => GsoMaxSize, 42 => Pad, 43 => Xdp, 44 => Event, 45 => NewNetnsid, 46 => TargetNetnsid, 47 => CarrierUpCount, 48 => CarrierDownCount, 49 => NewIfindex, 50 => MinMtu, 51 => MaxMtu, 52 => PropList, 53 => AltIfname, 54 => PermAddress, 55 => ProtoDownReason, 56 => ParentDevName, 57 => ParentDevBusName, 58 => GroMaxSize, 59 => TsoMaxSize, 60 => TsoMaxSegs, 61 => Allmulti, 62 => DevlinkPort, 63 => GsoIpv4MaxSize, 64 => GroIpv4MaxSize, 65 => DpllPin, 66 => MaxPacingOffloadHorizon, 67 => NetnsImmutable, 68 => Headroom, 69 => Tailroom}) #: Hash[::Integer, Attribute]
904
897
  class << self
905
898
  # Looks up Attribute class by name.
906
899
  #--
@@ -1425,10 +1418,20 @@ class RtLink < ::Nl::Family
1425
1418
  NAME = :"coupled_control"
1426
1419
  DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1427
1420
  end
1421
+ class BroadcastNeigh < Attribute
1422
+ TYPE = 33
1423
+ NAME = :"broadcast_neigh"
1424
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1425
+ end
1426
+ class LacpStrict < Attribute
1427
+ TYPE = 34
1428
+ NAME = :"lacp_strict"
1429
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1430
+ end
1428
1431
  # :nodoc:
1429
- BY_NAME = Ractor.make_shareable({:"mode" => Mode, :"active_slave" => ActiveSlave, :"miimon" => Miimon, :"updelay" => Updelay, :"downdelay" => Downdelay, :"use_carrier" => UseCarrier, :"arp_interval" => ArpInterval, :"arp_ip_target" => ArpIpTarget, :"arp_validate" => ArpValidate, :"arp_all_targets" => ArpAllTargets, :"primary" => Primary, :"primary_reselect" => PrimaryReselect, :"fail_over_mac" => FailOverMac, :"xmit_hash_policy" => XmitHashPolicy, :"resend_igmp" => ResendIgmp, :"num_peer_notif" => NumPeerNotif, :"all_slaves_active" => AllSlavesActive, :"min_links" => MinLinks, :"lp_interval" => LpInterval, :"packets_per_slave" => PacketsPerSlave, :"ad_lacp_rate" => AdLacpRate, :"ad_select" => AdSelect, :"ad_info" => AdInfo, :"ad_actor_sys_prio" => AdActorSysPrio, :"ad_user_port_key" => AdUserPortKey, :"ad_actor_system" => AdActorSystem, :"tlb_dynamic_lb" => TlbDynamicLb, :"peer_notif_delay" => PeerNotifDelay, :"ad_lacp_active" => AdLacpActive, :"missed_max" => MissedMax, :"ns_ip6_target" => NsIp6Target, :"coupled_control" => CoupledControl}) #: Hash[::Symbol, Attribute]
1432
+ BY_NAME = Ractor.make_shareable({:"mode" => Mode, :"active_slave" => ActiveSlave, :"miimon" => Miimon, :"updelay" => Updelay, :"downdelay" => Downdelay, :"use_carrier" => UseCarrier, :"arp_interval" => ArpInterval, :"arp_ip_target" => ArpIpTarget, :"arp_validate" => ArpValidate, :"arp_all_targets" => ArpAllTargets, :"primary" => Primary, :"primary_reselect" => PrimaryReselect, :"fail_over_mac" => FailOverMac, :"xmit_hash_policy" => XmitHashPolicy, :"resend_igmp" => ResendIgmp, :"num_peer_notif" => NumPeerNotif, :"all_slaves_active" => AllSlavesActive, :"min_links" => MinLinks, :"lp_interval" => LpInterval, :"packets_per_slave" => PacketsPerSlave, :"ad_lacp_rate" => AdLacpRate, :"ad_select" => AdSelect, :"ad_info" => AdInfo, :"ad_actor_sys_prio" => AdActorSysPrio, :"ad_user_port_key" => AdUserPortKey, :"ad_actor_system" => AdActorSystem, :"tlb_dynamic_lb" => TlbDynamicLb, :"peer_notif_delay" => PeerNotifDelay, :"ad_lacp_active" => AdLacpActive, :"missed_max" => MissedMax, :"ns_ip6_target" => NsIp6Target, :"coupled_control" => CoupledControl, :"broadcast_neigh" => BroadcastNeigh, :"lacp_strict" => LacpStrict}) #: Hash[::Symbol, Attribute]
1430
1433
  # :nodoc:
1431
- BY_TYPE = Ractor.make_shareable({1 => Mode, 2 => ActiveSlave, 3 => Miimon, 4 => Updelay, 5 => Downdelay, 6 => UseCarrier, 7 => ArpInterval, 8 => ArpIpTarget, 9 => ArpValidate, 10 => ArpAllTargets, 11 => Primary, 12 => PrimaryReselect, 13 => FailOverMac, 14 => XmitHashPolicy, 15 => ResendIgmp, 16 => NumPeerNotif, 17 => AllSlavesActive, 18 => MinLinks, 19 => LpInterval, 20 => PacketsPerSlave, 21 => AdLacpRate, 22 => AdSelect, 23 => AdInfo, 24 => AdActorSysPrio, 25 => AdUserPortKey, 26 => AdActorSystem, 27 => TlbDynamicLb, 28 => PeerNotifDelay, 29 => AdLacpActive, 30 => MissedMax, 31 => NsIp6Target, 32 => CoupledControl}) #: Hash[::Integer, Attribute]
1434
+ BY_TYPE = Ractor.make_shareable({1 => Mode, 2 => ActiveSlave, 3 => Miimon, 4 => Updelay, 5 => Downdelay, 6 => UseCarrier, 7 => ArpInterval, 8 => ArpIpTarget, 9 => ArpValidate, 10 => ArpAllTargets, 11 => Primary, 12 => PrimaryReselect, 13 => FailOverMac, 14 => XmitHashPolicy, 15 => ResendIgmp, 16 => NumPeerNotif, 17 => AllSlavesActive, 18 => MinLinks, 19 => LpInterval, 20 => PacketsPerSlave, 21 => AdLacpRate, 22 => AdSelect, 23 => AdInfo, 24 => AdActorSysPrio, 25 => AdUserPortKey, 26 => AdActorSystem, 27 => TlbDynamicLb, 28 => PeerNotifDelay, 29 => AdLacpActive, 30 => MissedMax, 31 => NsIp6Target, 32 => CoupledControl, 33 => BroadcastNeigh, 34 => LacpStrict}) #: Hash[::Integer, Attribute]
1432
1435
  class << self
1433
1436
  # Looks up Attribute class by name.
1434
1437
  #--
@@ -1803,10 +1806,15 @@ class RtLink < ::Nl::Family
1803
1806
  NAME = :"fdb_max_learned"
1804
1807
  DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
1805
1808
  end
1809
+ class StpMode < Attribute
1810
+ TYPE = 50
1811
+ NAME = :"stp_mode"
1812
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
1813
+ end
1806
1814
  # :nodoc:
1807
- BY_NAME = Ractor.make_shareable({:"forward_delay" => ForwardDelay, :"hello_time" => HelloTime, :"max_age" => MaxAge, :"ageing_time" => AgeingTime, :"stp_state" => StpState, :"priority" => Priority, :"vlan_filtering" => VlanFiltering, :"vlan_protocol" => VlanProtocol, :"group_fwd_mask" => GroupFwdMask, :"root_id" => RootId, :"bridge_id" => BridgeId, :"root_port" => RootPort, :"root_path_cost" => RootPathCost, :"topology_change" => TopologyChange, :"topology_change_detected" => TopologyChangeDetected, :"hello_timer" => HelloTimer, :"tcn_timer" => TcnTimer, :"topology_change_timer" => TopologyChangeTimer, :"gc_timer" => GcTimer, :"group_addr" => GroupAddr, :"fdb_flush" => FdbFlush, :"mcast_router" => McastRouter, :"mcast_snooping" => McastSnooping, :"mcast_query_use_ifaddr" => McastQueryUseIfaddr, :"mcast_querier" => McastQuerier, :"mcast_hash_elasticity" => McastHashElasticity, :"mcast_hash_max" => McastHashMax, :"mcast_last_member_cnt" => McastLastMemberCnt, :"mcast_startup_query_cnt" => McastStartupQueryCnt, :"mcast_last_member_intvl" => McastLastMemberIntvl, :"mcast_membership_intvl" => McastMembershipIntvl, :"mcast_querier_intvl" => McastQuerierIntvl, :"mcast_query_intvl" => McastQueryIntvl, :"mcast_query_response_intvl" => McastQueryResponseIntvl, :"mcast_startup_query_intvl" => McastStartupQueryIntvl, :"nf_call_iptables" => NfCallIptables, :"nf_call_ip6tables" => NfCallIp6tables, :"nf_call_arptables" => NfCallArptables, :"vlan_default_pvid" => VlanDefaultPvid, :"pad" => Pad, :"vlan_stats_enabled" => VlanStatsEnabled, :"mcast_stats_enabled" => McastStatsEnabled, :"mcast_igmp_version" => McastIgmpVersion, :"mcast_mld_version" => McastMldVersion, :"vlan_stats_per_port" => VlanStatsPerPort, :"multi_boolopt" => MultiBoolopt, :"mcast_querier_state" => McastQuerierState, :"fdb_n_learned" => FdbNLearned, :"fdb_max_learned" => FdbMaxLearned}) #: Hash[::Symbol, Attribute]
1815
+ BY_NAME = Ractor.make_shareable({:"forward_delay" => ForwardDelay, :"hello_time" => HelloTime, :"max_age" => MaxAge, :"ageing_time" => AgeingTime, :"stp_state" => StpState, :"priority" => Priority, :"vlan_filtering" => VlanFiltering, :"vlan_protocol" => VlanProtocol, :"group_fwd_mask" => GroupFwdMask, :"root_id" => RootId, :"bridge_id" => BridgeId, :"root_port" => RootPort, :"root_path_cost" => RootPathCost, :"topology_change" => TopologyChange, :"topology_change_detected" => TopologyChangeDetected, :"hello_timer" => HelloTimer, :"tcn_timer" => TcnTimer, :"topology_change_timer" => TopologyChangeTimer, :"gc_timer" => GcTimer, :"group_addr" => GroupAddr, :"fdb_flush" => FdbFlush, :"mcast_router" => McastRouter, :"mcast_snooping" => McastSnooping, :"mcast_query_use_ifaddr" => McastQueryUseIfaddr, :"mcast_querier" => McastQuerier, :"mcast_hash_elasticity" => McastHashElasticity, :"mcast_hash_max" => McastHashMax, :"mcast_last_member_cnt" => McastLastMemberCnt, :"mcast_startup_query_cnt" => McastStartupQueryCnt, :"mcast_last_member_intvl" => McastLastMemberIntvl, :"mcast_membership_intvl" => McastMembershipIntvl, :"mcast_querier_intvl" => McastQuerierIntvl, :"mcast_query_intvl" => McastQueryIntvl, :"mcast_query_response_intvl" => McastQueryResponseIntvl, :"mcast_startup_query_intvl" => McastStartupQueryIntvl, :"nf_call_iptables" => NfCallIptables, :"nf_call_ip6tables" => NfCallIp6tables, :"nf_call_arptables" => NfCallArptables, :"vlan_default_pvid" => VlanDefaultPvid, :"pad" => Pad, :"vlan_stats_enabled" => VlanStatsEnabled, :"mcast_stats_enabled" => McastStatsEnabled, :"mcast_igmp_version" => McastIgmpVersion, :"mcast_mld_version" => McastMldVersion, :"vlan_stats_per_port" => VlanStatsPerPort, :"multi_boolopt" => MultiBoolopt, :"mcast_querier_state" => McastQuerierState, :"fdb_n_learned" => FdbNLearned, :"fdb_max_learned" => FdbMaxLearned, :"stp_mode" => StpMode}) #: Hash[::Symbol, Attribute]
1808
1816
  # :nodoc:
1809
- BY_TYPE = Ractor.make_shareable({1 => ForwardDelay, 2 => HelloTime, 3 => MaxAge, 4 => AgeingTime, 5 => StpState, 6 => Priority, 7 => VlanFiltering, 8 => VlanProtocol, 9 => GroupFwdMask, 10 => RootId, 11 => BridgeId, 12 => RootPort, 13 => RootPathCost, 14 => TopologyChange, 15 => TopologyChangeDetected, 16 => HelloTimer, 17 => TcnTimer, 18 => TopologyChangeTimer, 19 => GcTimer, 20 => GroupAddr, 21 => FdbFlush, 22 => McastRouter, 23 => McastSnooping, 24 => McastQueryUseIfaddr, 25 => McastQuerier, 26 => McastHashElasticity, 27 => McastHashMax, 28 => McastLastMemberCnt, 29 => McastStartupQueryCnt, 30 => McastLastMemberIntvl, 31 => McastMembershipIntvl, 32 => McastQuerierIntvl, 33 => McastQueryIntvl, 34 => McastQueryResponseIntvl, 35 => McastStartupQueryIntvl, 36 => NfCallIptables, 37 => NfCallIp6tables, 38 => NfCallArptables, 39 => VlanDefaultPvid, 40 => Pad, 41 => VlanStatsEnabled, 42 => McastStatsEnabled, 43 => McastIgmpVersion, 44 => McastMldVersion, 45 => VlanStatsPerPort, 46 => MultiBoolopt, 47 => McastQuerierState, 48 => FdbNLearned, 49 => FdbMaxLearned}) #: Hash[::Integer, Attribute]
1817
+ BY_TYPE = Ractor.make_shareable({1 => ForwardDelay, 2 => HelloTime, 3 => MaxAge, 4 => AgeingTime, 5 => StpState, 6 => Priority, 7 => VlanFiltering, 8 => VlanProtocol, 9 => GroupFwdMask, 10 => RootId, 11 => BridgeId, 12 => RootPort, 13 => RootPathCost, 14 => TopologyChange, 15 => TopologyChangeDetected, 16 => HelloTimer, 17 => TcnTimer, 18 => TopologyChangeTimer, 19 => GcTimer, 20 => GroupAddr, 21 => FdbFlush, 22 => McastRouter, 23 => McastSnooping, 24 => McastQueryUseIfaddr, 25 => McastQuerier, 26 => McastHashElasticity, 27 => McastHashMax, 28 => McastLastMemberCnt, 29 => McastStartupQueryCnt, 30 => McastLastMemberIntvl, 31 => McastMembershipIntvl, 32 => McastQuerierIntvl, 33 => McastQueryIntvl, 34 => McastQueryResponseIntvl, 35 => McastStartupQueryIntvl, 36 => NfCallIptables, 37 => NfCallIp6tables, 38 => NfCallArptables, 39 => VlanDefaultPvid, 40 => Pad, 41 => VlanStatsEnabled, 42 => McastStatsEnabled, 43 => McastIgmpVersion, 44 => McastMldVersion, 45 => VlanStatsPerPort, 46 => MultiBoolopt, 47 => McastQuerierState, 48 => FdbNLearned, 49 => FdbMaxLearned, 50 => StpMode}) #: Hash[::Integer, Attribute]
1810
1818
  class << self
1811
1819
  # Looks up Attribute class by name.
1812
1820
  #--
@@ -1842,47 +1850,47 @@ class RtLink < ::Nl::Family
1842
1850
  class Mode < Attribute
1843
1851
  TYPE = 4
1844
1852
  NAME = :"mode"
1845
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1853
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1846
1854
  end
1847
1855
  class Guard < Attribute
1848
1856
  TYPE = 5
1849
1857
  NAME = :"guard"
1850
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1858
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1851
1859
  end
1852
1860
  class Protect < Attribute
1853
1861
  TYPE = 6
1854
1862
  NAME = :"protect"
1855
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1863
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1856
1864
  end
1857
1865
  class FastLeave < Attribute
1858
1866
  TYPE = 7
1859
1867
  NAME = :"fast_leave"
1860
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1868
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1861
1869
  end
1862
1870
  class Learning < Attribute
1863
1871
  TYPE = 8
1864
1872
  NAME = :"learning"
1865
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1873
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1866
1874
  end
1867
1875
  class UnicastFlood < Attribute
1868
1876
  TYPE = 9
1869
1877
  NAME = :"unicast_flood"
1870
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1878
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1871
1879
  end
1872
1880
  class Proxyarp < Attribute
1873
1881
  TYPE = 10
1874
1882
  NAME = :"proxyarp"
1875
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1883
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1876
1884
  end
1877
1885
  class LearningSync < Attribute
1878
1886
  TYPE = 11
1879
1887
  NAME = :"learning_sync"
1880
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1888
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1881
1889
  end
1882
1890
  class ProxyarpWifi < Attribute
1883
1891
  TYPE = 12
1884
1892
  NAME = :"proxyarp_wifi"
1885
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1893
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1886
1894
  end
1887
1895
  class RootId < Attribute
1888
1896
  TYPE = 13
@@ -1957,22 +1965,22 @@ class RtLink < ::Nl::Family
1957
1965
  class McastFlood < Attribute
1958
1966
  TYPE = 27
1959
1967
  NAME = :"mcast_flood"
1960
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1968
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1961
1969
  end
1962
1970
  class McastToUcast < Attribute
1963
1971
  TYPE = 28
1964
1972
  NAME = :"mcast_to_ucast"
1965
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1973
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1966
1974
  end
1967
1975
  class VlanTunnel < Attribute
1968
1976
  TYPE = 29
1969
1977
  NAME = :"vlan_tunnel"
1970
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1978
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1971
1979
  end
1972
1980
  class BcastFlood < Attribute
1973
1981
  TYPE = 30
1974
1982
  NAME = :"bcast_flood"
1975
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1983
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1976
1984
  end
1977
1985
  class GroupFwdMask < Attribute
1978
1986
  TYPE = 31
@@ -1982,12 +1990,12 @@ class RtLink < ::Nl::Family
1982
1990
  class NeighSuppress < Attribute
1983
1991
  TYPE = 32
1984
1992
  NAME = :"neigh_suppress"
1985
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1993
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1986
1994
  end
1987
1995
  class Isolated < Attribute
1988
1996
  TYPE = 33
1989
1997
  NAME = :"isolated"
1990
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
1998
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
1991
1999
  end
1992
2000
  class BackupPort < Attribute
1993
2001
  TYPE = 34
@@ -1997,12 +2005,12 @@ class RtLink < ::Nl::Family
1997
2005
  class MrpRingOpen < Attribute
1998
2006
  TYPE = 35
1999
2007
  NAME = :"mrp_ring_open"
2000
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
2008
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
2001
2009
  end
2002
2010
  class MrpInOpen < Attribute
2003
2011
  TYPE = 36
2004
2012
  NAME = :"mrp_in_open"
2005
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
2013
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
2006
2014
  end
2007
2015
  class McastEhtHostsLimit < Attribute
2008
2016
  TYPE = 37
@@ -2017,12 +2025,12 @@ class RtLink < ::Nl::Family
2017
2025
  class Locked < Attribute
2018
2026
  TYPE = 39
2019
2027
  NAME = :"locked"
2020
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
2028
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
2021
2029
  end
2022
2030
  class Mab < Attribute
2023
2031
  TYPE = 40
2024
2032
  NAME = :"mab"
2025
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
2033
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
2026
2034
  end
2027
2035
  class McastNGroups < Attribute
2028
2036
  TYPE = 41
@@ -2037,17 +2045,22 @@ class RtLink < ::Nl::Family
2037
2045
  class NeighVlanSuppress < Attribute
2038
2046
  TYPE = 43
2039
2047
  NAME = :"neigh_vlan_suppress"
2040
- DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
2048
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
2041
2049
  end
2042
2050
  class BackupNhid < Attribute
2043
2051
  TYPE = 44
2044
2052
  NAME = :"backup_nhid"
2045
2053
  DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
2046
2054
  end
2055
+ class NeighForwardGrat < Attribute
2056
+ TYPE = 45
2057
+ NAME = :"neigh_forward_grat"
2058
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U8, check: nil)
2059
+ end
2047
2060
  # :nodoc:
2048
- BY_NAME = Ractor.make_shareable({:"state" => State, :"priority" => Priority, :"cost" => Cost, :"mode" => Mode, :"guard" => Guard, :"protect" => Protect, :"fast_leave" => FastLeave, :"learning" => Learning, :"unicast_flood" => UnicastFlood, :"proxyarp" => Proxyarp, :"learning_sync" => LearningSync, :"proxyarp_wifi" => ProxyarpWifi, :"root_id" => RootId, :"bridge_id" => BridgeId, :"designated_port" => DesignatedPort, :"designated_cost" => DesignatedCost, :"id" => Id, :"no" => No, :"topology_change_ack" => TopologyChangeAck, :"config_pending" => ConfigPending, :"message_age_timer" => MessageAgeTimer, :"forward_delay_timer" => ForwardDelayTimer, :"hold_timer" => HoldTimer, :"flush" => Flush, :"multicast_router" => MulticastRouter, :"pad" => Pad, :"mcast_flood" => McastFlood, :"mcast_to_ucast" => McastToUcast, :"vlan_tunnel" => VlanTunnel, :"bcast_flood" => BcastFlood, :"group_fwd_mask" => GroupFwdMask, :"neigh_suppress" => NeighSuppress, :"isolated" => Isolated, :"backup_port" => BackupPort, :"mrp_ring_open" => MrpRingOpen, :"mrp_in_open" => MrpInOpen, :"mcast_eht_hosts_limit" => McastEhtHostsLimit, :"mcast_eht_hosts_cnt" => McastEhtHostsCnt, :"locked" => Locked, :"mab" => Mab, :"mcast_n_groups" => McastNGroups, :"mcast_max_groups" => McastMaxGroups, :"neigh_vlan_suppress" => NeighVlanSuppress, :"backup_nhid" => BackupNhid}) #: Hash[::Symbol, Attribute]
2061
+ BY_NAME = Ractor.make_shareable({:"state" => State, :"priority" => Priority, :"cost" => Cost, :"mode" => Mode, :"guard" => Guard, :"protect" => Protect, :"fast_leave" => FastLeave, :"learning" => Learning, :"unicast_flood" => UnicastFlood, :"proxyarp" => Proxyarp, :"learning_sync" => LearningSync, :"proxyarp_wifi" => ProxyarpWifi, :"root_id" => RootId, :"bridge_id" => BridgeId, :"designated_port" => DesignatedPort, :"designated_cost" => DesignatedCost, :"id" => Id, :"no" => No, :"topology_change_ack" => TopologyChangeAck, :"config_pending" => ConfigPending, :"message_age_timer" => MessageAgeTimer, :"forward_delay_timer" => ForwardDelayTimer, :"hold_timer" => HoldTimer, :"flush" => Flush, :"multicast_router" => MulticastRouter, :"pad" => Pad, :"mcast_flood" => McastFlood, :"mcast_to_ucast" => McastToUcast, :"vlan_tunnel" => VlanTunnel, :"bcast_flood" => BcastFlood, :"group_fwd_mask" => GroupFwdMask, :"neigh_suppress" => NeighSuppress, :"isolated" => Isolated, :"backup_port" => BackupPort, :"mrp_ring_open" => MrpRingOpen, :"mrp_in_open" => MrpInOpen, :"mcast_eht_hosts_limit" => McastEhtHostsLimit, :"mcast_eht_hosts_cnt" => McastEhtHostsCnt, :"locked" => Locked, :"mab" => Mab, :"mcast_n_groups" => McastNGroups, :"mcast_max_groups" => McastMaxGroups, :"neigh_vlan_suppress" => NeighVlanSuppress, :"backup_nhid" => BackupNhid, :"neigh_forward_grat" => NeighForwardGrat}) #: Hash[::Symbol, Attribute]
2049
2062
  # :nodoc:
2050
- BY_TYPE = Ractor.make_shareable({1 => State, 2 => Priority, 3 => Cost, 4 => Mode, 5 => Guard, 6 => Protect, 7 => FastLeave, 8 => Learning, 9 => UnicastFlood, 10 => Proxyarp, 11 => LearningSync, 12 => ProxyarpWifi, 13 => RootId, 14 => BridgeId, 15 => DesignatedPort, 16 => DesignatedCost, 17 => Id, 18 => No, 19 => TopologyChangeAck, 20 => ConfigPending, 21 => MessageAgeTimer, 22 => ForwardDelayTimer, 23 => HoldTimer, 24 => Flush, 25 => MulticastRouter, 26 => Pad, 27 => McastFlood, 28 => McastToUcast, 29 => VlanTunnel, 30 => BcastFlood, 31 => GroupFwdMask, 32 => NeighSuppress, 33 => Isolated, 34 => BackupPort, 35 => MrpRingOpen, 36 => MrpInOpen, 37 => McastEhtHostsLimit, 38 => McastEhtHostsCnt, 39 => Locked, 40 => Mab, 41 => McastNGroups, 42 => McastMaxGroups, 43 => NeighVlanSuppress, 44 => BackupNhid}) #: Hash[::Integer, Attribute]
2063
+ BY_TYPE = Ractor.make_shareable({1 => State, 2 => Priority, 3 => Cost, 4 => Mode, 5 => Guard, 6 => Protect, 7 => FastLeave, 8 => Learning, 9 => UnicastFlood, 10 => Proxyarp, 11 => LearningSync, 12 => ProxyarpWifi, 13 => RootId, 14 => BridgeId, 15 => DesignatedPort, 16 => DesignatedCost, 17 => Id, 18 => No, 19 => TopologyChangeAck, 20 => ConfigPending, 21 => MessageAgeTimer, 22 => ForwardDelayTimer, 23 => HoldTimer, 24 => Flush, 25 => MulticastRouter, 26 => Pad, 27 => McastFlood, 28 => McastToUcast, 29 => VlanTunnel, 30 => BcastFlood, 31 => GroupFwdMask, 32 => NeighSuppress, 33 => Isolated, 34 => BackupPort, 35 => MrpRingOpen, 36 => MrpInOpen, 37 => McastEhtHostsLimit, 38 => McastEhtHostsCnt, 39 => Locked, 40 => Mab, 41 => McastNGroups, 42 => McastMaxGroups, 43 => NeighVlanSuppress, 44 => BackupNhid, 45 => NeighForwardGrat}) #: Hash[::Integer, Attribute]
2051
2064
  class << self
2052
2065
  # Looks up Attribute class by name.
2053
2066
  #--
@@ -2509,10 +2522,25 @@ class RtLink < ::Nl::Family
2509
2522
  NAME = :"port_range"
2510
2523
  DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
2511
2524
  end
2525
+ class GroHint < Attribute
2526
+ TYPE = 16
2527
+ NAME = :"gro_hint"
2528
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Flag.new
2529
+ end
2530
+ class Local < Attribute
2531
+ TYPE = 17
2532
+ NAME = :"local"
2533
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Big::U32, check: nil)
2534
+ end
2535
+ class Local6 < Attribute
2536
+ TYPE = 18
2537
+ NAME = :"local6"
2538
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Binary.new(check: nil)
2539
+ end
2512
2540
  # :nodoc:
2513
- BY_NAME = Ractor.make_shareable({:"id" => Id, :"remote" => Remote, :"ttl" => Ttl, :"tos" => Tos, :"port" => Port, :"collect_metadata" => CollectMetadata, :"remote6" => Remote6, :"udp_csum" => UdpCsum, :"udp_zero_csum6_tx" => UdpZeroCsum6Tx, :"udp_zero_csum6_rx" => UdpZeroCsum6Rx, :"label" => Label, :"ttl_inherit" => TtlInherit, :"df" => Df, :"inner_proto_inherit" => InnerProtoInherit, :"port_range" => PortRange}) #: Hash[::Symbol, Attribute]
2541
+ BY_NAME = Ractor.make_shareable({:"id" => Id, :"remote" => Remote, :"ttl" => Ttl, :"tos" => Tos, :"port" => Port, :"collect_metadata" => CollectMetadata, :"remote6" => Remote6, :"udp_csum" => UdpCsum, :"udp_zero_csum6_tx" => UdpZeroCsum6Tx, :"udp_zero_csum6_rx" => UdpZeroCsum6Rx, :"label" => Label, :"ttl_inherit" => TtlInherit, :"df" => Df, :"inner_proto_inherit" => InnerProtoInherit, :"port_range" => PortRange, :"gro_hint" => GroHint, :"local" => Local, :"local6" => Local6}) #: Hash[::Symbol, Attribute]
2514
2542
  # :nodoc:
2515
- BY_TYPE = Ractor.make_shareable({1 => Id, 2 => Remote, 3 => Ttl, 4 => Tos, 5 => Port, 6 => CollectMetadata, 7 => Remote6, 8 => UdpCsum, 9 => UdpZeroCsum6Tx, 10 => UdpZeroCsum6Rx, 11 => Label, 12 => TtlInherit, 13 => Df, 14 => InnerProtoInherit, 15 => PortRange}) #: Hash[::Integer, Attribute]
2543
+ BY_TYPE = Ractor.make_shareable({1 => Id, 2 => Remote, 3 => Ttl, 4 => Tos, 5 => Port, 6 => CollectMetadata, 7 => Remote6, 8 => UdpCsum, 9 => UdpZeroCsum6Tx, 10 => UdpZeroCsum6Rx, 11 => Label, 12 => TtlInherit, 13 => Df, 14 => InnerProtoInherit, 15 => PortRange, 16 => GroHint, 17 => Local, 18 => Local6}) #: Hash[::Integer, Attribute]
2516
2544
  class << self
2517
2545
  # Looks up Attribute class by name.
2518
2546
  #--
@@ -3331,10 +3359,15 @@ class RtLink < ::Nl::Family
3331
3359
  NAME = :"tailroom"
3332
3360
  DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U16, check: nil)
3333
3361
  end
3362
+ class Pairing < Attribute
3363
+ TYPE = 10
3364
+ NAME = :"pairing"
3365
+ DATATYPE = ::Nl::Protocols::Raw::DataTypes::Scalar.new(::Nl::Endian::Host::U32, check: nil)
3366
+ end
3334
3367
  # :nodoc:
3335
- BY_NAME = Ractor.make_shareable({:"peer_info" => PeerInfo, :"primary" => Primary, :"policy" => Policy, :"peer_policy" => PeerPolicy, :"mode" => Mode, :"scrub" => Scrub, :"peer_scrub" => PeerScrub, :"headroom" => Headroom, :"tailroom" => Tailroom}) #: Hash[::Symbol, Attribute]
3368
+ BY_NAME = Ractor.make_shareable({:"peer_info" => PeerInfo, :"primary" => Primary, :"policy" => Policy, :"peer_policy" => PeerPolicy, :"mode" => Mode, :"scrub" => Scrub, :"peer_scrub" => PeerScrub, :"headroom" => Headroom, :"tailroom" => Tailroom, :"pairing" => Pairing}) #: Hash[::Symbol, Attribute]
3336
3369
  # :nodoc:
3337
- BY_TYPE = Ractor.make_shareable({1 => PeerInfo, 2 => Primary, 3 => Policy, 4 => PeerPolicy, 5 => Mode, 6 => Scrub, 7 => PeerScrub, 8 => Headroom, 9 => Tailroom}) #: Hash[::Integer, Attribute]
3370
+ BY_TYPE = Ractor.make_shareable({1 => PeerInfo, 2 => Primary, 3 => Policy, 4 => PeerPolicy, 5 => Mode, 6 => Scrub, 7 => PeerScrub, 8 => Headroom, 9 => Tailroom, 10 => Pairing}) #: Hash[::Integer, Attribute]
3338
3371
  class << self
3339
3372
  # Looks up Attribute class by name.
3340
3373
  #--
@@ -3423,11 +3456,11 @@ class RtLink < ::Nl::Family
3423
3456
  def ifi_change; fixed_header.ifi_change; end
3424
3457
  # Gets the value of `address` attribute in the message.
3425
3458
  #--
3426
- # @rbs return: untyped
3459
+ # @rbs return: ::String
3427
3460
  def address; attributes[:"address"]&.value; end
3428
3461
  # Gets the value of `broadcast` attribute in the message.
3429
3462
  #--
3430
- # @rbs return: untyped
3463
+ # @rbs return: ::String
3431
3464
  def broadcast; attributes[:"broadcast"]&.value; end
3432
3465
  # Gets the value of `ifname` attribute in the message.
3433
3466
  #--
@@ -3585,7 +3618,7 @@ class RtLink < ::Nl::Family
3585
3618
  TYPE = 16
3586
3619
  FIXED_HEADER = Structs::Ifinfomsg
3587
3620
  ATTRIBUTE_SET = AttributeSets::LinkAttrs
3588
- ATTRIBUTES = Ractor.make_shareable(%i[address broadcast ifname mtu link qdisc stats cost priority master wireless protinfo txqlen map weight operstate linkmode linkinfo net_ns_pid ifalias num_vf vfinfo_list stats64 vf_ports port_self af_spec group net_ns_fd ext_mask promiscuity num_tx_queues num_rx_queues carrier phys_port_id carrier_changes phys_switch_id link_netnsid phys_port_name proto_down gso_max_segs gso_max_size pad xdp event new_netnsid target_netnsid carrier_up_count carrier_down_count new_ifindex min_mtu max_mtu prop_list perm_address proto_down_reason parent_dev_name parent_dev_bus_name gro_max_size tso_max_size tso_max_segs allmulti devlink_port gso_ipv4_max_size gro_ipv4_max_size])
3621
+ ATTRIBUTES = Ractor.make_shareable(%i[address broadcast ifname mtu link qdisc stats master wireless protinfo txqlen map weight operstate linkmode linkinfo net_ns_pid ifalias num_vf vfinfo_list stats64 vf_ports port_self af_spec group net_ns_fd ext_mask promiscuity num_tx_queues num_rx_queues carrier phys_port_id carrier_changes phys_switch_id link_netnsid phys_port_name proto_down gso_max_segs gso_max_size pad xdp event new_netnsid target_netnsid carrier_up_count carrier_down_count new_ifindex min_mtu max_mtu prop_list perm_address proto_down_reason parent_dev_name parent_dev_bus_name gro_max_size tso_max_size tso_max_segs allmulti devlink_port gso_ipv4_max_size gro_ipv4_max_size])
3589
3622
  # Gets the value of `ifi-family` field in the message's fixed header.
3590
3623
  #--
3591
3624
  # @rbs return: ::Integer
@@ -3608,11 +3641,11 @@ class RtLink < ::Nl::Family
3608
3641
  def ifi_change; fixed_header.ifi_change; end
3609
3642
  # Gets the value of `address` attribute in the message.
3610
3643
  #--
3611
- # @rbs return: untyped
3644
+ # @rbs return: ::String
3612
3645
  def address; attributes[:"address"]&.value; end
3613
3646
  # Gets the value of `broadcast` attribute in the message.
3614
3647
  #--
3615
- # @rbs return: untyped
3648
+ # @rbs return: ::String
3616
3649
  def broadcast; attributes[:"broadcast"]&.value; end
3617
3650
  # Gets the value of `ifname` attribute in the message.
3618
3651
  #--
@@ -3632,16 +3665,8 @@ class RtLink < ::Nl::Family
3632
3665
  def qdisc; attributes[:"qdisc"]&.value; end
3633
3666
  # Gets the value of `stats` attribute in the message.
3634
3667
  #--
3635
- # @rbs return: untyped
3636
- def stats; attributes[:"stats"]&.value; end
3637
- # Gets the value of `cost` attribute in the message.
3638
- #--
3639
- # @rbs return: ::String
3640
- def cost; attributes[:"cost"]&.value; end
3641
- # Gets the value of `priority` attribute in the message.
3642
- #--
3643
3668
  # @rbs return: ::String
3644
- def priority; attributes[:"priority"]&.value; end
3669
+ def stats; attributes[:"stats"]&.value; end
3645
3670
  # Gets the value of `master` attribute in the message.
3646
3671
  #--
3647
3672
  # @rbs return: ::Integer
@@ -3660,7 +3685,7 @@ class RtLink < ::Nl::Family
3660
3685
  def txqlen; attributes[:"txqlen"]&.value; end
3661
3686
  # Gets the value of `map` attribute in the message.
3662
3687
  #--
3663
- # @rbs return: untyped
3688
+ # @rbs return: ::String
3664
3689
  def map; attributes[:"map"]&.value; end
3665
3690
  # Gets the value of `weight` attribute in the message.
3666
3691
  #--
@@ -3696,7 +3721,7 @@ class RtLink < ::Nl::Family
3696
3721
  def vfinfo_list; attributes[:"vfinfo_list"]&.value; end
3697
3722
  # Gets the value of `stats64` attribute in the message.
3698
3723
  #--
3699
- # @rbs return: untyped
3724
+ # @rbs return: ::String
3700
3725
  def stats64; attributes[:"stats64"]&.value; end
3701
3726
  # Gets the value of `vf-ports` attribute in the message.
3702
3727
  #--
@@ -3740,7 +3765,7 @@ class RtLink < ::Nl::Family
3740
3765
  def carrier; attributes[:"carrier"]&.value; end
3741
3766
  # Gets the value of `phys-port-id` attribute in the message.
3742
3767
  #--
3743
- # @rbs return: untyped
3768
+ # @rbs return: ::String
3744
3769
  def phys_port_id; attributes[:"phys_port_id"]&.value; end
3745
3770
  # Gets the value of `carrier-changes` attribute in the message.
3746
3771
  #--
@@ -3748,7 +3773,7 @@ class RtLink < ::Nl::Family
3748
3773
  def carrier_changes; attributes[:"carrier_changes"]&.value; end
3749
3774
  # Gets the value of `phys-switch-id` attribute in the message.
3750
3775
  #--
3751
- # @rbs return: untyped
3776
+ # @rbs return: ::String
3752
3777
  def phys_switch_id; attributes[:"phys_switch_id"]&.value; end
3753
3778
  # Gets the value of `link-netnsid` attribute in the message.
3754
3779
  #--
@@ -3812,7 +3837,7 @@ class RtLink < ::Nl::Family
3812
3837
  def prop_list; attributes[:"prop_list"]&.value; end
3813
3838
  # Gets the value of `perm-address` attribute in the message.
3814
3839
  #--
3815
- # @rbs return: untyped
3840
+ # @rbs return: ::String
3816
3841
  def perm_address; attributes[:"perm_address"]&.value; end
3817
3842
  # Gets the value of `proto-down-reason` attribute in the message.
3818
3843
  #--
@@ -3844,7 +3869,7 @@ class RtLink < ::Nl::Family
3844
3869
  def allmulti; attributes[:"allmulti"]&.value; end
3845
3870
  # Gets the value of `devlink-port` attribute in the message.
3846
3871
  #--
3847
- # @rbs return: untyped
3872
+ # @rbs return: ::String
3848
3873
  def devlink_port; attributes[:"devlink_port"]&.value; end
3849
3874
  # Gets the value of `gso-ipv4-max-size` attribute in the message.
3850
3875
  #--
@@ -3903,7 +3928,7 @@ class RtLink < ::Nl::Family
3903
3928
  TYPE = 16
3904
3929
  FIXED_HEADER = Structs::Ifinfomsg
3905
3930
  ATTRIBUTE_SET = AttributeSets::LinkAttrs
3906
- ATTRIBUTES = Ractor.make_shareable(%i[address broadcast ifname mtu link qdisc stats cost priority master wireless protinfo txqlen map weight operstate linkmode linkinfo net_ns_pid ifalias num_vf vfinfo_list stats64 vf_ports port_self af_spec group net_ns_fd ext_mask promiscuity num_tx_queues num_rx_queues carrier phys_port_id carrier_changes phys_switch_id link_netnsid phys_port_name proto_down gso_max_segs gso_max_size pad xdp event new_netnsid target_netnsid carrier_up_count carrier_down_count new_ifindex min_mtu max_mtu prop_list perm_address proto_down_reason parent_dev_name parent_dev_bus_name gro_max_size tso_max_size tso_max_segs allmulti devlink_port gso_ipv4_max_size gro_ipv4_max_size])
3931
+ ATTRIBUTES = Ractor.make_shareable(%i[address broadcast ifname mtu link qdisc stats master wireless protinfo txqlen map weight operstate linkmode linkinfo net_ns_pid ifalias num_vf vfinfo_list stats64 vf_ports port_self af_spec group net_ns_fd ext_mask promiscuity num_tx_queues num_rx_queues carrier phys_port_id carrier_changes phys_switch_id link_netnsid phys_port_name proto_down gso_max_segs gso_max_size pad xdp event new_netnsid target_netnsid carrier_up_count carrier_down_count new_ifindex min_mtu max_mtu prop_list perm_address proto_down_reason parent_dev_name parent_dev_bus_name gro_max_size tso_max_size tso_max_segs allmulti devlink_port gso_ipv4_max_size gro_ipv4_max_size])
3907
3932
  # Gets the value of `ifi-family` field in the message's fixed header.
3908
3933
  #--
3909
3934
  # @rbs return: ::Integer
@@ -3926,11 +3951,11 @@ class RtLink < ::Nl::Family
3926
3951
  def ifi_change; fixed_header.ifi_change; end
3927
3952
  # Gets the value of `address` attribute in the message.
3928
3953
  #--
3929
- # @rbs return: untyped
3954
+ # @rbs return: ::String
3930
3955
  def address; attributes[:"address"]&.value; end
3931
3956
  # Gets the value of `broadcast` attribute in the message.
3932
3957
  #--
3933
- # @rbs return: untyped
3958
+ # @rbs return: ::String
3934
3959
  def broadcast; attributes[:"broadcast"]&.value; end
3935
3960
  # Gets the value of `ifname` attribute in the message.
3936
3961
  #--
@@ -3950,16 +3975,8 @@ class RtLink < ::Nl::Family
3950
3975
  def qdisc; attributes[:"qdisc"]&.value; end
3951
3976
  # Gets the value of `stats` attribute in the message.
3952
3977
  #--
3953
- # @rbs return: untyped
3954
- def stats; attributes[:"stats"]&.value; end
3955
- # Gets the value of `cost` attribute in the message.
3956
- #--
3957
- # @rbs return: ::String
3958
- def cost; attributes[:"cost"]&.value; end
3959
- # Gets the value of `priority` attribute in the message.
3960
- #--
3961
3978
  # @rbs return: ::String
3962
- def priority; attributes[:"priority"]&.value; end
3979
+ def stats; attributes[:"stats"]&.value; end
3963
3980
  # Gets the value of `master` attribute in the message.
3964
3981
  #--
3965
3982
  # @rbs return: ::Integer
@@ -3978,7 +3995,7 @@ class RtLink < ::Nl::Family
3978
3995
  def txqlen; attributes[:"txqlen"]&.value; end
3979
3996
  # Gets the value of `map` attribute in the message.
3980
3997
  #--
3981
- # @rbs return: untyped
3998
+ # @rbs return: ::String
3982
3999
  def map; attributes[:"map"]&.value; end
3983
4000
  # Gets the value of `weight` attribute in the message.
3984
4001
  #--
@@ -4014,7 +4031,7 @@ class RtLink < ::Nl::Family
4014
4031
  def vfinfo_list; attributes[:"vfinfo_list"]&.value; end
4015
4032
  # Gets the value of `stats64` attribute in the message.
4016
4033
  #--
4017
- # @rbs return: untyped
4034
+ # @rbs return: ::String
4018
4035
  def stats64; attributes[:"stats64"]&.value; end
4019
4036
  # Gets the value of `vf-ports` attribute in the message.
4020
4037
  #--
@@ -4058,7 +4075,7 @@ class RtLink < ::Nl::Family
4058
4075
  def carrier; attributes[:"carrier"]&.value; end
4059
4076
  # Gets the value of `phys-port-id` attribute in the message.
4060
4077
  #--
4061
- # @rbs return: untyped
4078
+ # @rbs return: ::String
4062
4079
  def phys_port_id; attributes[:"phys_port_id"]&.value; end
4063
4080
  # Gets the value of `carrier-changes` attribute in the message.
4064
4081
  #--
@@ -4066,7 +4083,7 @@ class RtLink < ::Nl::Family
4066
4083
  def carrier_changes; attributes[:"carrier_changes"]&.value; end
4067
4084
  # Gets the value of `phys-switch-id` attribute in the message.
4068
4085
  #--
4069
- # @rbs return: untyped
4086
+ # @rbs return: ::String
4070
4087
  def phys_switch_id; attributes[:"phys_switch_id"]&.value; end
4071
4088
  # Gets the value of `link-netnsid` attribute in the message.
4072
4089
  #--
@@ -4130,7 +4147,7 @@ class RtLink < ::Nl::Family
4130
4147
  def prop_list; attributes[:"prop_list"]&.value; end
4131
4148
  # Gets the value of `perm-address` attribute in the message.
4132
4149
  #--
4133
- # @rbs return: untyped
4150
+ # @rbs return: ::String
4134
4151
  def perm_address; attributes[:"perm_address"]&.value; end
4135
4152
  # Gets the value of `proto-down-reason` attribute in the message.
4136
4153
  #--
@@ -4162,7 +4179,7 @@ class RtLink < ::Nl::Family
4162
4179
  def allmulti; attributes[:"allmulti"]&.value; end
4163
4180
  # Gets the value of `devlink-port` attribute in the message.
4164
4181
  #--
4165
- # @rbs return: untyped
4182
+ # @rbs return: ::String
4166
4183
  def devlink_port; attributes[:"devlink_port"]&.value; end
4167
4184
  # Gets the value of `gso-ipv4-max-size` attribute in the message.
4168
4185
  #--
@@ -4178,7 +4195,7 @@ class RtLink < ::Nl::Family
4178
4195
  TYPE = 19
4179
4196
  FIXED_HEADER = Structs::Ifinfomsg
4180
4197
  ATTRIBUTE_SET = AttributeSets::LinkAttrs
4181
- ATTRIBUTES = Ractor.make_shareable(%i[address broadcast ifname mtu link qdisc stats cost priority master wireless protinfo txqlen map weight operstate linkmode linkinfo net_ns_pid ifalias num_vf vfinfo_list stats64 vf_ports port_self af_spec group net_ns_fd ext_mask promiscuity num_tx_queues num_rx_queues carrier phys_port_id carrier_changes phys_switch_id link_netnsid phys_port_name proto_down gso_max_segs gso_max_size pad xdp event new_netnsid target_netnsid carrier_up_count carrier_down_count new_ifindex min_mtu max_mtu prop_list perm_address proto_down_reason parent_dev_name parent_dev_bus_name gro_max_size tso_max_size tso_max_segs allmulti devlink_port gso_ipv4_max_size gro_ipv4_max_size])
4198
+ ATTRIBUTES = Ractor.make_shareable(%i[address broadcast ifname mtu link qdisc stats master wireless protinfo txqlen map weight operstate linkmode linkinfo net_ns_pid ifalias num_vf vfinfo_list stats64 vf_ports port_self af_spec group net_ns_fd ext_mask promiscuity num_tx_queues num_rx_queues carrier phys_port_id carrier_changes phys_switch_id link_netnsid phys_port_name proto_down gso_max_segs gso_max_size pad xdp event new_netnsid target_netnsid carrier_up_count carrier_down_count new_ifindex min_mtu max_mtu prop_list perm_address proto_down_reason parent_dev_name parent_dev_bus_name gro_max_size tso_max_size tso_max_segs allmulti devlink_port gso_ipv4_max_size gro_ipv4_max_size])
4182
4199
  # Gets the value of `ifi-family` field in the message's fixed header.
4183
4200
  #--
4184
4201
  # @rbs return: ::Integer
@@ -4201,11 +4218,11 @@ class RtLink < ::Nl::Family
4201
4218
  def ifi_change; fixed_header.ifi_change; end
4202
4219
  # Gets the value of `address` attribute in the message.
4203
4220
  #--
4204
- # @rbs return: untyped
4221
+ # @rbs return: ::String
4205
4222
  def address; attributes[:"address"]&.value; end
4206
4223
  # Gets the value of `broadcast` attribute in the message.
4207
4224
  #--
4208
- # @rbs return: untyped
4225
+ # @rbs return: ::String
4209
4226
  def broadcast; attributes[:"broadcast"]&.value; end
4210
4227
  # Gets the value of `ifname` attribute in the message.
4211
4228
  #--
@@ -4225,16 +4242,8 @@ class RtLink < ::Nl::Family
4225
4242
  def qdisc; attributes[:"qdisc"]&.value; end
4226
4243
  # Gets the value of `stats` attribute in the message.
4227
4244
  #--
4228
- # @rbs return: untyped
4229
- def stats; attributes[:"stats"]&.value; end
4230
- # Gets the value of `cost` attribute in the message.
4231
- #--
4232
- # @rbs return: ::String
4233
- def cost; attributes[:"cost"]&.value; end
4234
- # Gets the value of `priority` attribute in the message.
4235
- #--
4236
4245
  # @rbs return: ::String
4237
- def priority; attributes[:"priority"]&.value; end
4246
+ def stats; attributes[:"stats"]&.value; end
4238
4247
  # Gets the value of `master` attribute in the message.
4239
4248
  #--
4240
4249
  # @rbs return: ::Integer
@@ -4253,7 +4262,7 @@ class RtLink < ::Nl::Family
4253
4262
  def txqlen; attributes[:"txqlen"]&.value; end
4254
4263
  # Gets the value of `map` attribute in the message.
4255
4264
  #--
4256
- # @rbs return: untyped
4265
+ # @rbs return: ::String
4257
4266
  def map; attributes[:"map"]&.value; end
4258
4267
  # Gets the value of `weight` attribute in the message.
4259
4268
  #--
@@ -4289,7 +4298,7 @@ class RtLink < ::Nl::Family
4289
4298
  def vfinfo_list; attributes[:"vfinfo_list"]&.value; end
4290
4299
  # Gets the value of `stats64` attribute in the message.
4291
4300
  #--
4292
- # @rbs return: untyped
4301
+ # @rbs return: ::String
4293
4302
  def stats64; attributes[:"stats64"]&.value; end
4294
4303
  # Gets the value of `vf-ports` attribute in the message.
4295
4304
  #--
@@ -4333,7 +4342,7 @@ class RtLink < ::Nl::Family
4333
4342
  def carrier; attributes[:"carrier"]&.value; end
4334
4343
  # Gets the value of `phys-port-id` attribute in the message.
4335
4344
  #--
4336
- # @rbs return: untyped
4345
+ # @rbs return: ::String
4337
4346
  def phys_port_id; attributes[:"phys_port_id"]&.value; end
4338
4347
  # Gets the value of `carrier-changes` attribute in the message.
4339
4348
  #--
@@ -4341,7 +4350,7 @@ class RtLink < ::Nl::Family
4341
4350
  def carrier_changes; attributes[:"carrier_changes"]&.value; end
4342
4351
  # Gets the value of `phys-switch-id` attribute in the message.
4343
4352
  #--
4344
- # @rbs return: untyped
4353
+ # @rbs return: ::String
4345
4354
  def phys_switch_id; attributes[:"phys_switch_id"]&.value; end
4346
4355
  # Gets the value of `link-netnsid` attribute in the message.
4347
4356
  #--
@@ -4405,7 +4414,7 @@ class RtLink < ::Nl::Family
4405
4414
  def prop_list; attributes[:"prop_list"]&.value; end
4406
4415
  # Gets the value of `perm-address` attribute in the message.
4407
4416
  #--
4408
- # @rbs return: untyped
4417
+ # @rbs return: ::String
4409
4418
  def perm_address; attributes[:"perm_address"]&.value; end
4410
4419
  # Gets the value of `proto-down-reason` attribute in the message.
4411
4420
  #--
@@ -4437,7 +4446,7 @@ class RtLink < ::Nl::Family
4437
4446
  def allmulti; attributes[:"allmulti"]&.value; end
4438
4447
  # Gets the value of `devlink-port` attribute in the message.
4439
4448
  #--
4440
- # @rbs return: untyped
4449
+ # @rbs return: ::String
4441
4450
  def devlink_port; attributes[:"devlink_port"]&.value; end
4442
4451
  # Gets the value of `gso-ipv4-max-size` attribute in the message.
4443
4452
  #--
@@ -4487,15 +4496,15 @@ class RtLink < ::Nl::Family
4487
4496
  def filter_mask; fixed_header.filter_mask; end
4488
4497
  # Gets the value of `link-64` attribute in the message.
4489
4498
  #--
4490
- # @rbs return: untyped
4499
+ # @rbs return: ::String
4491
4500
  def link_64; attributes[:"link_64"]&.value; end
4492
4501
  # Gets the value of `link-xstats` attribute in the message.
4493
4502
  #--
4494
- # @rbs return: untyped
4503
+ # @rbs return: ::String
4495
4504
  def link_xstats; attributes[:"link_xstats"]&.value; end
4496
4505
  # Gets the value of `link-xstats-slave` attribute in the message.
4497
4506
  #--
4498
- # @rbs return: untyped
4507
+ # @rbs return: ::String
4499
4508
  def link_xstats_slave; attributes[:"link_xstats_slave"]&.value; end
4500
4509
  # Gets the value of `link-offload-xstats` attribute in the message.
4501
4510
  #--
@@ -4503,7 +4512,7 @@ class RtLink < ::Nl::Family
4503
4512
  def link_offload_xstats; attributes[:"link_offload_xstats"]&.value; end
4504
4513
  # Gets the value of `af-spec` attribute in the message.
4505
4514
  #--
4506
- # @rbs return: untyped
4515
+ # @rbs return: ::String
4507
4516
  def af_spec; attributes[:"af_spec"]&.value; end
4508
4517
  end
4509
4518
  # Get / dump link stats.
@@ -4545,15 +4554,15 @@ class RtLink < ::Nl::Family
4545
4554
  def filter_mask; fixed_header.filter_mask; end
4546
4555
  # Gets the value of `link-64` attribute in the message.
4547
4556
  #--
4548
- # @rbs return: untyped
4557
+ # @rbs return: ::String
4549
4558
  def link_64; attributes[:"link_64"]&.value; end
4550
4559
  # Gets the value of `link-xstats` attribute in the message.
4551
4560
  #--
4552
- # @rbs return: untyped
4561
+ # @rbs return: ::String
4553
4562
  def link_xstats; attributes[:"link_xstats"]&.value; end
4554
4563
  # Gets the value of `link-xstats-slave` attribute in the message.
4555
4564
  #--
4556
- # @rbs return: untyped
4565
+ # @rbs return: ::String
4557
4566
  def link_xstats_slave; attributes[:"link_xstats_slave"]&.value; end
4558
4567
  # Gets the value of `link-offload-xstats` attribute in the message.
4559
4568
  #--
@@ -4561,13 +4570,283 @@ class RtLink < ::Nl::Family
4561
4570
  def link_offload_xstats; attributes[:"link_offload_xstats"]&.value; end
4562
4571
  # Gets the value of `af-spec` attribute in the message.
4563
4572
  #--
4564
- # @rbs return: untyped
4573
+ # @rbs return: ::String
4574
+ def af_spec; attributes[:"af_spec"]&.value; end
4575
+ end
4576
+ end
4577
+ module Notifications
4578
+ # Notify that a link has been created
4579
+ class NewlinkNtf < ::Nl::Protocols::Raw::Message
4580
+ TYPE = 16
4581
+ FIXED_HEADER = Structs::Ifinfomsg
4582
+ ATTRIBUTE_SET = AttributeSets::LinkAttrs
4583
+ ATTRIBUTES = Ractor.make_shareable(%i[address broadcast ifname mtu link qdisc stats master wireless protinfo txqlen map weight operstate linkmode linkinfo net_ns_pid ifalias num_vf vfinfo_list stats64 vf_ports port_self af_spec group net_ns_fd ext_mask promiscuity num_tx_queues num_rx_queues carrier phys_port_id carrier_changes phys_switch_id link_netnsid phys_port_name proto_down gso_max_segs gso_max_size pad xdp event new_netnsid target_netnsid carrier_up_count carrier_down_count new_ifindex min_mtu max_mtu prop_list perm_address proto_down_reason parent_dev_name parent_dev_bus_name gro_max_size tso_max_size tso_max_segs allmulti devlink_port gso_ipv4_max_size gro_ipv4_max_size])
4584
+ # Gets the value of `ifi-family` field in the message's fixed header.
4585
+ #--
4586
+ # @rbs return: ::Integer
4587
+ def ifi_family; fixed_header.ifi_family; end
4588
+ # Gets the value of `ifi-type` field in the message's fixed header.
4589
+ #--
4590
+ # @rbs return: ::Integer
4591
+ def ifi_type; fixed_header.ifi_type; end
4592
+ # Gets the value of `ifi-index` field in the message's fixed header.
4593
+ #--
4594
+ # @rbs return: ::Integer
4595
+ def ifi_index; fixed_header.ifi_index; end
4596
+ # Gets the value of `ifi-flags` field in the message's fixed header.
4597
+ #--
4598
+ # @rbs return: ::Integer
4599
+ def ifi_flags; fixed_header.ifi_flags; end
4600
+ # Gets the value of `ifi-change` field in the message's fixed header.
4601
+ #--
4602
+ # @rbs return: ::Integer
4603
+ def ifi_change; fixed_header.ifi_change; end
4604
+ # Gets the value of `address` attribute in the message.
4605
+ #--
4606
+ # @rbs return: ::String
4607
+ def address; attributes[:"address"]&.value; end
4608
+ # Gets the value of `broadcast` attribute in the message.
4609
+ #--
4610
+ # @rbs return: ::String
4611
+ def broadcast; attributes[:"broadcast"]&.value; end
4612
+ # Gets the value of `ifname` attribute in the message.
4613
+ #--
4614
+ # @rbs return: ::String
4615
+ def ifname; attributes[:"ifname"]&.value; end
4616
+ # Gets the value of `mtu` attribute in the message.
4617
+ #--
4618
+ # @rbs return: ::Integer
4619
+ def mtu; attributes[:"mtu"]&.value; end
4620
+ # Gets the value of `link` attribute in the message.
4621
+ #--
4622
+ # @rbs return: ::Integer
4623
+ def link; attributes[:"link"]&.value; end
4624
+ # Gets the value of `qdisc` attribute in the message.
4625
+ #--
4626
+ # @rbs return: ::String
4627
+ def qdisc; attributes[:"qdisc"]&.value; end
4628
+ # Gets the value of `stats` attribute in the message.
4629
+ #--
4630
+ # @rbs return: ::String
4631
+ def stats; attributes[:"stats"]&.value; end
4632
+ # Gets the value of `master` attribute in the message.
4633
+ #--
4634
+ # @rbs return: ::Integer
4635
+ def master; attributes[:"master"]&.value; end
4636
+ # Gets the value of `wireless` attribute in the message.
4637
+ #--
4638
+ # @rbs return: ::String
4639
+ def wireless; attributes[:"wireless"]&.value; end
4640
+ # Gets the value of `protinfo` attribute in the message.
4641
+ #--
4642
+ # @rbs return: ::String
4643
+ def protinfo; attributes[:"protinfo"]&.value; end
4644
+ # Gets the value of `txqlen` attribute in the message.
4645
+ #--
4646
+ # @rbs return: ::Integer
4647
+ def txqlen; attributes[:"txqlen"]&.value; end
4648
+ # Gets the value of `map` attribute in the message.
4649
+ #--
4650
+ # @rbs return: ::String
4651
+ def map; attributes[:"map"]&.value; end
4652
+ # Gets the value of `weight` attribute in the message.
4653
+ #--
4654
+ # @rbs return: ::Integer
4655
+ def weight; attributes[:"weight"]&.value; end
4656
+ # Gets the value of `operstate` attribute in the message.
4657
+ #--
4658
+ # @rbs return: ::Integer
4659
+ def operstate; attributes[:"operstate"]&.value; end
4660
+ # Gets the value of `linkmode` attribute in the message.
4661
+ #--
4662
+ # @rbs return: ::Integer
4663
+ def linkmode; attributes[:"linkmode"]&.value; end
4664
+ # Gets the value of `linkinfo` attribute in the message.
4665
+ #--
4666
+ # @rbs return: AttributeSets::LinkinfoAttrs
4667
+ def linkinfo; attributes[:"linkinfo"]&.value; end
4668
+ # Gets the value of `net-ns-pid` attribute in the message.
4669
+ #--
4670
+ # @rbs return: ::Integer
4671
+ def net_ns_pid; attributes[:"net_ns_pid"]&.value; end
4672
+ # Gets the value of `ifalias` attribute in the message.
4673
+ #--
4674
+ # @rbs return: ::String
4675
+ def ifalias; attributes[:"ifalias"]&.value; end
4676
+ # Gets the value of `num-vf` attribute in the message.
4677
+ #--
4678
+ # @rbs return: ::Integer
4679
+ def num_vf; attributes[:"num_vf"]&.value; end
4680
+ # Gets the value of `vfinfo-list` attribute in the message.
4681
+ #--
4682
+ # @rbs return: AttributeSets::VfinfoListAttrs
4683
+ def vfinfo_list; attributes[:"vfinfo_list"]&.value; end
4684
+ # Gets the value of `stats64` attribute in the message.
4685
+ #--
4686
+ # @rbs return: ::String
4687
+ def stats64; attributes[:"stats64"]&.value; end
4688
+ # Gets the value of `vf-ports` attribute in the message.
4689
+ #--
4690
+ # @rbs return: AttributeSets::VfPortsAttrs
4691
+ def vf_ports; attributes[:"vf_ports"]&.value; end
4692
+ # Gets the value of `port-self` attribute in the message.
4693
+ #--
4694
+ # @rbs return: AttributeSets::PortSelfAttrs
4695
+ def port_self; attributes[:"port_self"]&.value; end
4696
+ # Gets the value of `af-spec` attribute in the message.
4697
+ #--
4698
+ # @rbs return: AttributeSets::AfSpecAttrs
4565
4699
  def af_spec; attributes[:"af_spec"]&.value; end
4700
+ # Gets the value of `group` attribute in the message.
4701
+ #--
4702
+ # @rbs return: ::Integer
4703
+ def group; attributes[:"group"]&.value; end
4704
+ # Gets the value of `net-ns-fd` attribute in the message.
4705
+ #--
4706
+ # @rbs return: ::Integer
4707
+ def net_ns_fd; attributes[:"net_ns_fd"]&.value; end
4708
+ # Gets the value of `ext-mask` attribute in the message.
4709
+ #--
4710
+ # @rbs return: ::Integer
4711
+ def ext_mask; attributes[:"ext_mask"]&.value; end
4712
+ # Gets the value of `promiscuity` attribute in the message.
4713
+ #--
4714
+ # @rbs return: ::Integer
4715
+ def promiscuity; attributes[:"promiscuity"]&.value; end
4716
+ # Gets the value of `num-tx-queues` attribute in the message.
4717
+ #--
4718
+ # @rbs return: ::Integer
4719
+ def num_tx_queues; attributes[:"num_tx_queues"]&.value; end
4720
+ # Gets the value of `num-rx-queues` attribute in the message.
4721
+ #--
4722
+ # @rbs return: ::Integer
4723
+ def num_rx_queues; attributes[:"num_rx_queues"]&.value; end
4724
+ # Gets the value of `carrier` attribute in the message.
4725
+ #--
4726
+ # @rbs return: ::Integer
4727
+ def carrier; attributes[:"carrier"]&.value; end
4728
+ # Gets the value of `phys-port-id` attribute in the message.
4729
+ #--
4730
+ # @rbs return: ::String
4731
+ def phys_port_id; attributes[:"phys_port_id"]&.value; end
4732
+ # Gets the value of `carrier-changes` attribute in the message.
4733
+ #--
4734
+ # @rbs return: ::Integer
4735
+ def carrier_changes; attributes[:"carrier_changes"]&.value; end
4736
+ # Gets the value of `phys-switch-id` attribute in the message.
4737
+ #--
4738
+ # @rbs return: ::String
4739
+ def phys_switch_id; attributes[:"phys_switch_id"]&.value; end
4740
+ # Gets the value of `link-netnsid` attribute in the message.
4741
+ #--
4742
+ # @rbs return: ::Integer
4743
+ def link_netnsid; attributes[:"link_netnsid"]&.value; end
4744
+ # Gets the value of `phys-port-name` attribute in the message.
4745
+ #--
4746
+ # @rbs return: ::String
4747
+ def phys_port_name; attributes[:"phys_port_name"]&.value; end
4748
+ # Gets the value of `proto-down` attribute in the message.
4749
+ #--
4750
+ # @rbs return: ::Integer
4751
+ def proto_down; attributes[:"proto_down"]&.value; end
4752
+ # Gets the value of `gso-max-segs` attribute in the message.
4753
+ #--
4754
+ # @rbs return: ::Integer
4755
+ def gso_max_segs; attributes[:"gso_max_segs"]&.value; end
4756
+ # Gets the value of `gso-max-size` attribute in the message.
4757
+ #--
4758
+ # @rbs return: ::Integer
4759
+ def gso_max_size; attributes[:"gso_max_size"]&.value; end
4760
+ # Gets the value of `xdp` attribute in the message.
4761
+ #--
4762
+ # @rbs return: AttributeSets::XdpAttrs
4763
+ def xdp; attributes[:"xdp"]&.value; end
4764
+ # Gets the value of `event` attribute in the message.
4765
+ #--
4766
+ # @rbs return: ::Integer
4767
+ def event; attributes[:"event"]&.value; end
4768
+ # Gets the value of `new-netnsid` attribute in the message.
4769
+ #--
4770
+ # @rbs return: ::Integer
4771
+ def new_netnsid; attributes[:"new_netnsid"]&.value; end
4772
+ # Gets the value of `target-netnsid` attribute in the message.
4773
+ #--
4774
+ # @rbs return: ::Integer
4775
+ def target_netnsid; attributes[:"target_netnsid"]&.value; end
4776
+ # Gets the value of `carrier-up-count` attribute in the message.
4777
+ #--
4778
+ # @rbs return: ::Integer
4779
+ def carrier_up_count; attributes[:"carrier_up_count"]&.value; end
4780
+ # Gets the value of `carrier-down-count` attribute in the message.
4781
+ #--
4782
+ # @rbs return: ::Integer
4783
+ def carrier_down_count; attributes[:"carrier_down_count"]&.value; end
4784
+ # Gets the value of `new-ifindex` attribute in the message.
4785
+ #--
4786
+ # @rbs return: ::Integer
4787
+ def new_ifindex; attributes[:"new_ifindex"]&.value; end
4788
+ # Gets the value of `min-mtu` attribute in the message.
4789
+ #--
4790
+ # @rbs return: ::Integer
4791
+ def min_mtu; attributes[:"min_mtu"]&.value; end
4792
+ # Gets the value of `max-mtu` attribute in the message.
4793
+ #--
4794
+ # @rbs return: ::Integer
4795
+ def max_mtu; attributes[:"max_mtu"]&.value; end
4796
+ # Gets the value of `prop-list` attribute in the message.
4797
+ #--
4798
+ # @rbs return: AttributeSets::PropListLinkAttrs
4799
+ def prop_list; attributes[:"prop_list"]&.value; end
4800
+ # Gets the value of `perm-address` attribute in the message.
4801
+ #--
4802
+ # @rbs return: ::String
4803
+ def perm_address; attributes[:"perm_address"]&.value; end
4804
+ # Gets the value of `proto-down-reason` attribute in the message.
4805
+ #--
4806
+ # @rbs return: ::String
4807
+ def proto_down_reason; attributes[:"proto_down_reason"]&.value; end
4808
+ # Gets the value of `parent-dev-name` attribute in the message.
4809
+ #--
4810
+ # @rbs return: ::String
4811
+ def parent_dev_name; attributes[:"parent_dev_name"]&.value; end
4812
+ # Gets the value of `parent-dev-bus-name` attribute in the message.
4813
+ #--
4814
+ # @rbs return: ::String
4815
+ def parent_dev_bus_name; attributes[:"parent_dev_bus_name"]&.value; end
4816
+ # Gets the value of `gro-max-size` attribute in the message.
4817
+ #--
4818
+ # @rbs return: ::Integer
4819
+ def gro_max_size; attributes[:"gro_max_size"]&.value; end
4820
+ # Gets the value of `tso-max-size` attribute in the message.
4821
+ #--
4822
+ # @rbs return: ::Integer
4823
+ def tso_max_size; attributes[:"tso_max_size"]&.value; end
4824
+ # Gets the value of `tso-max-segs` attribute in the message.
4825
+ #--
4826
+ # @rbs return: ::Integer
4827
+ def tso_max_segs; attributes[:"tso_max_segs"]&.value; end
4828
+ # Gets the value of `allmulti` attribute in the message.
4829
+ #--
4830
+ # @rbs return: ::Integer
4831
+ def allmulti; attributes[:"allmulti"]&.value; end
4832
+ # Gets the value of `devlink-port` attribute in the message.
4833
+ #--
4834
+ # @rbs return: ::String
4835
+ def devlink_port; attributes[:"devlink_port"]&.value; end
4836
+ # Gets the value of `gso-ipv4-max-size` attribute in the message.
4837
+ #--
4838
+ # @rbs return: ::Integer
4839
+ def gso_ipv4_max_size; attributes[:"gso_ipv4_max_size"]&.value; end
4840
+ # Gets the value of `gro-ipv4-max-size` attribute in the message.
4841
+ #--
4842
+ # @rbs return: ::Integer
4843
+ def gro_ipv4_max_size; attributes[:"gro_ipv4_max_size"]&.value; end
4566
4844
  end
4567
4845
  end
4846
+ NOTIFICATIONS = Ractor.make_shareable({16 => Notifications::NewlinkNtf}) #: Hash[::Integer, ::Class]
4568
4847
  # Create a new link.
4569
4848
  #--
4570
- # @rbs (?ifi_family: ::Integer, ?ifi_type: ::Integer, ?ifi_index: ::Integer, ?ifi_flags: ::Integer, ?ifi_change: ::Integer, ?address: untyped, ?broadcast: untyped, ?ifname: ::String, ?mtu: ::Integer, ?txqlen: ::Integer, ?operstate: ::Integer, ?linkmode: ::Integer, ?linkinfo: AttributeSets::LinkinfoAttrs, ?net_ns_pid: ::Integer, ?af_spec: AttributeSets::AfSpecAttrs, ?group: ::Integer, ?net_ns_fd: ::Integer, ?num_tx_queues: ::Integer, ?num_rx_queues: ::Integer, ?link_netnsid: ::Integer, ?gso_max_segs: ::Integer, ?gso_max_size: ::Integer, ?target_netnsid: ::Integer, ?gro_max_size: ::Integer, ?gso_ipv4_max_size: ::Integer, ?gro_ipv4_max_size: ::Integer) -> void
4849
+ # @rbs (?ifi_family: ::Integer, ?ifi_type: ::Integer, ?ifi_index: ::Integer, ?ifi_flags: ::Integer, ?ifi_change: ::Integer, ?address: ::String, ?broadcast: ::String, ?ifname: ::String, ?mtu: ::Integer, ?txqlen: ::Integer, ?operstate: ::Integer, ?linkmode: ::Integer, ?linkinfo: AttributeSets::LinkinfoAttrs, ?net_ns_pid: ::Integer, ?af_spec: AttributeSets::AfSpecAttrs, ?group: ::Integer, ?net_ns_fd: ::Integer, ?num_tx_queues: ::Integer, ?num_rx_queues: ::Integer, ?link_netnsid: ::Integer, ?gso_max_segs: ::Integer, ?gso_max_size: ::Integer, ?target_netnsid: ::Integer, ?gro_max_size: ::Integer, ?gso_ipv4_max_size: ::Integer, ?gro_ipv4_max_size: ::Integer) -> void
4571
4850
  def do_newlink(**args)
4572
4851
  exchange_message(:"do", Messages::DoNewlinkRequest, nil, args)
4573
4852
  end
@@ -4592,7 +4871,7 @@ class RtLink < ::Nl::Family
4592
4871
  end
4593
4872
  # Set information about a link.
4594
4873
  #--
4595
- # @rbs (?ifi_family: ::Integer, ?ifi_type: ::Integer, ?ifi_index: ::Integer, ?ifi_flags: ::Integer, ?ifi_change: ::Integer, ?address: untyped, ?broadcast: untyped, ?ifname: ::String, ?mtu: ::Integer, ?link: ::Integer, ?qdisc: ::String, ?stats: untyped, ?cost: ::String, ?priority: ::String, ?master: ::Integer, ?wireless: ::String, ?protinfo: ::String, ?txqlen: ::Integer, ?map: untyped, ?weight: ::Integer, ?operstate: ::Integer, ?linkmode: ::Integer, ?linkinfo: AttributeSets::LinkinfoAttrs, ?net_ns_pid: ::Integer, ?ifalias: ::String, ?num_vf: ::Integer, ?vfinfo_list: AttributeSets::VfinfoListAttrs, ?stats64: untyped, ?vf_ports: AttributeSets::VfPortsAttrs, ?port_self: AttributeSets::PortSelfAttrs, ?af_spec: AttributeSets::AfSpecAttrs, ?group: ::Integer, ?net_ns_fd: ::Integer, ?ext_mask: ::Integer, ?promiscuity: ::Integer, ?num_tx_queues: ::Integer, ?num_rx_queues: ::Integer, ?carrier: ::Integer, ?phys_port_id: untyped, ?carrier_changes: ::Integer, ?phys_switch_id: untyped, ?link_netnsid: ::Integer, ?phys_port_name: ::String, ?proto_down: ::Integer, ?gso_max_segs: ::Integer, ?gso_max_size: ::Integer, ?xdp: AttributeSets::XdpAttrs, ?event: ::Integer, ?new_netnsid: ::Integer, ?target_netnsid: ::Integer, ?carrier_up_count: ::Integer, ?carrier_down_count: ::Integer, ?new_ifindex: ::Integer, ?min_mtu: ::Integer, ?max_mtu: ::Integer, ?prop_list: AttributeSets::PropListLinkAttrs, ?perm_address: untyped, ?proto_down_reason: ::String, ?parent_dev_name: ::String, ?parent_dev_bus_name: ::String, ?gro_max_size: ::Integer, ?tso_max_size: ::Integer, ?tso_max_segs: ::Integer, ?allmulti: ::Integer, ?devlink_port: untyped, ?gso_ipv4_max_size: ::Integer, ?gro_ipv4_max_size: ::Integer) -> void
4874
+ # @rbs (?ifi_family: ::Integer, ?ifi_type: ::Integer, ?ifi_index: ::Integer, ?ifi_flags: ::Integer, ?ifi_change: ::Integer, ?address: ::String, ?broadcast: ::String, ?ifname: ::String, ?mtu: ::Integer, ?link: ::Integer, ?qdisc: ::String, ?stats: ::String, ?master: ::Integer, ?wireless: ::String, ?protinfo: ::String, ?txqlen: ::Integer, ?map: ::String, ?weight: ::Integer, ?operstate: ::Integer, ?linkmode: ::Integer, ?linkinfo: AttributeSets::LinkinfoAttrs, ?net_ns_pid: ::Integer, ?ifalias: ::String, ?num_vf: ::Integer, ?vfinfo_list: AttributeSets::VfinfoListAttrs, ?stats64: ::String, ?vf_ports: AttributeSets::VfPortsAttrs, ?port_self: AttributeSets::PortSelfAttrs, ?af_spec: AttributeSets::AfSpecAttrs, ?group: ::Integer, ?net_ns_fd: ::Integer, ?ext_mask: ::Integer, ?promiscuity: ::Integer, ?num_tx_queues: ::Integer, ?num_rx_queues: ::Integer, ?carrier: ::Integer, ?phys_port_id: ::String, ?carrier_changes: ::Integer, ?phys_switch_id: ::String, ?link_netnsid: ::Integer, ?phys_port_name: ::String, ?proto_down: ::Integer, ?gso_max_segs: ::Integer, ?gso_max_size: ::Integer, ?xdp: AttributeSets::XdpAttrs, ?event: ::Integer, ?new_netnsid: ::Integer, ?target_netnsid: ::Integer, ?carrier_up_count: ::Integer, ?carrier_down_count: ::Integer, ?new_ifindex: ::Integer, ?min_mtu: ::Integer, ?max_mtu: ::Integer, ?prop_list: AttributeSets::PropListLinkAttrs, ?perm_address: ::String, ?proto_down_reason: ::String, ?parent_dev_name: ::String, ?parent_dev_bus_name: ::String, ?gro_max_size: ::Integer, ?tso_max_size: ::Integer, ?tso_max_segs: ::Integer, ?allmulti: ::Integer, ?devlink_port: ::String, ?gso_ipv4_max_size: ::Integer, ?gro_ipv4_max_size: ::Integer) -> void
4596
4875
  def do_setlink(**args)
4597
4876
  exchange_message(:"do", Messages::DoSetlinkRequest, nil, args)
4598
4877
  end
@@ -4609,5 +4888,66 @@ class RtLink < ::Nl::Family
4609
4888
  def dump_getstats(**args, &block)
4610
4889
  exchange_message(:"dump", Messages::DumpGetstatsRequest, Messages::DumpGetstatsReply, args, &block)
4611
4890
  end
4891
+ class AsyncOperations
4892
+ # :nodoc:
4893
+ def initialize(&exchange)
4894
+ @exchange = exchange
4895
+ end
4896
+ # Create a new link.
4897
+ #--
4898
+ # @rbs (?ifi_family: ::Integer, ?ifi_type: ::Integer, ?ifi_index: ::Integer, ?ifi_flags: ::Integer, ?ifi_change: ::Integer, ?address: ::String, ?broadcast: ::String, ?ifname: ::String, ?mtu: ::Integer, ?txqlen: ::Integer, ?operstate: ::Integer, ?linkmode: ::Integer, ?linkinfo: AttributeSets::LinkinfoAttrs, ?net_ns_pid: ::Integer, ?af_spec: AttributeSets::AfSpecAttrs, ?group: ::Integer, ?net_ns_fd: ::Integer, ?num_tx_queues: ::Integer, ?num_rx_queues: ::Integer, ?link_netnsid: ::Integer, ?gso_max_segs: ::Integer, ?gso_max_size: ::Integer, ?target_netnsid: ::Integer, ?gro_max_size: ::Integer, ?gso_ipv4_max_size: ::Integer, ?gro_ipv4_max_size: ::Integer) -> ::Nl::Async::Future[void]
4899
+ def do_newlink(**args)
4900
+ @exchange.call(:"do", Messages::DoNewlinkRequest, nil, args)
4901
+ end
4902
+ # Delete an existing link.
4903
+ #--
4904
+ # @rbs (?ifi_family: ::Integer, ?ifi_type: ::Integer, ?ifi_index: ::Integer, ?ifi_flags: ::Integer, ?ifi_change: ::Integer, ?ifname: ::String) -> ::Nl::Async::Future[void]
4905
+ def do_dellink(**args)
4906
+ @exchange.call(:"do", Messages::DoDellinkRequest, nil, args)
4907
+ end
4908
+ # Get / dump information about a link.
4909
+ #--
4910
+ # @rbs (?ifi_family: ::Integer, ?ifi_type: ::Integer, ?ifi_index: ::Integer, ?ifi_flags: ::Integer, ?ifi_change: ::Integer, ?ifname: ::String, ?ext_mask: ::Integer, ?target_netnsid: ::Integer, ?alt_ifname: ::String) -> ::Nl::Async::Future[Messages::DoGetlinkReply]
4911
+ def do_getlink(**args)
4912
+ @exchange.call(:"do", Messages::DoGetlinkRequest, Messages::DoGetlinkReply, args)
4913
+ end
4914
+ # Get / dump information about a link.
4915
+ #--
4916
+ # @rbs (?ifi_family: ::Integer, ?ifi_type: ::Integer, ?ifi_index: ::Integer, ?ifi_flags: ::Integer, ?ifi_change: ::Integer, ?master: ::Integer, ?linkinfo: AttributeSets::LinkinfoAttrs, ?ext_mask: ::Integer, ?target_netnsid: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetlinkReply]
4917
+ def dump_getlink(**args)
4918
+ @exchange.call(:"dump", Messages::DumpGetlinkRequest, Messages::DumpGetlinkReply, args)
4919
+ end
4920
+ # Set information about a link.
4921
+ #--
4922
+ # @rbs (?ifi_family: ::Integer, ?ifi_type: ::Integer, ?ifi_index: ::Integer, ?ifi_flags: ::Integer, ?ifi_change: ::Integer, ?address: ::String, ?broadcast: ::String, ?ifname: ::String, ?mtu: ::Integer, ?link: ::Integer, ?qdisc: ::String, ?stats: ::String, ?master: ::Integer, ?wireless: ::String, ?protinfo: ::String, ?txqlen: ::Integer, ?map: ::String, ?weight: ::Integer, ?operstate: ::Integer, ?linkmode: ::Integer, ?linkinfo: AttributeSets::LinkinfoAttrs, ?net_ns_pid: ::Integer, ?ifalias: ::String, ?num_vf: ::Integer, ?vfinfo_list: AttributeSets::VfinfoListAttrs, ?stats64: ::String, ?vf_ports: AttributeSets::VfPortsAttrs, ?port_self: AttributeSets::PortSelfAttrs, ?af_spec: AttributeSets::AfSpecAttrs, ?group: ::Integer, ?net_ns_fd: ::Integer, ?ext_mask: ::Integer, ?promiscuity: ::Integer, ?num_tx_queues: ::Integer, ?num_rx_queues: ::Integer, ?carrier: ::Integer, ?phys_port_id: ::String, ?carrier_changes: ::Integer, ?phys_switch_id: ::String, ?link_netnsid: ::Integer, ?phys_port_name: ::String, ?proto_down: ::Integer, ?gso_max_segs: ::Integer, ?gso_max_size: ::Integer, ?xdp: AttributeSets::XdpAttrs, ?event: ::Integer, ?new_netnsid: ::Integer, ?target_netnsid: ::Integer, ?carrier_up_count: ::Integer, ?carrier_down_count: ::Integer, ?new_ifindex: ::Integer, ?min_mtu: ::Integer, ?max_mtu: ::Integer, ?prop_list: AttributeSets::PropListLinkAttrs, ?perm_address: ::String, ?proto_down_reason: ::String, ?parent_dev_name: ::String, ?parent_dev_bus_name: ::String, ?gro_max_size: ::Integer, ?tso_max_size: ::Integer, ?tso_max_segs: ::Integer, ?allmulti: ::Integer, ?devlink_port: ::String, ?gso_ipv4_max_size: ::Integer, ?gro_ipv4_max_size: ::Integer) -> ::Nl::Async::Future[void]
4923
+ def do_setlink(**args)
4924
+ @exchange.call(:"do", Messages::DoSetlinkRequest, nil, args)
4925
+ end
4926
+ # Get / dump link stats.
4927
+ #--
4928
+ # @rbs (?family: ::Integer, ?ifindex: ::Integer, ?filter_mask: ::Integer) -> ::Nl::Async::Future[Messages::DoGetstatsReply]
4929
+ def do_getstats(**args)
4930
+ @exchange.call(:"do", Messages::DoGetstatsRequest, Messages::DoGetstatsReply, args)
4931
+ end
4932
+ # Get / dump link stats.
4933
+ #--
4934
+ # @rbs (?family: ::Integer, ?ifindex: ::Integer, ?filter_mask: ::Integer) -> ::Nl::Async::Stream[Messages::DumpGetstatsReply]
4935
+ def dump_getstats(**args)
4936
+ @exchange.call(:"dump", Messages::DumpGetstatsRequest, Messages::DumpGetstatsReply, args)
4937
+ end
4938
+ end
4939
+ # Returns the asynchronous operation facade for this family.
4940
+ #--
4941
+ # @rbs (?stream_capacity: ::Integer?) -> AsyncOperations
4942
+ def async(stream_capacity: nil)
4943
+ return @async_operations ||= build_async_facade(AsyncOperations) if stream_capacity.nil?
4944
+ build_async_facade(AsyncOperations, stream_capacity:)
4945
+ end
4946
+ #--
4947
+ # @rbs (*(:rtnlgrp_link | :rtnlgrp_stats) groups) -> self
4948
+ def subscribe(*groups) = super
4949
+ #--
4950
+ # @rbs (*(:rtnlgrp_link | :rtnlgrp_stats) groups) -> self
4951
+ def unsubscribe(*groups) = super
4612
4952
  end
4613
4953
  end; end