mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
Merge pull request #14767 from yuwata/network-split-qdisc-section
network: split TrafficControlQueueingDiscipline section into small pieces
This commit is contained in:
commit
f2f1b52c6f
4
NEWS
4
NEWS
@ -125,10 +125,10 @@ CHANGES WITH 245 in spe:
|
||||
marking a process so that it is killed implicitly whenever the event
|
||||
source watching it is freed).
|
||||
|
||||
* systemd-networkd gained support for configuring Token Buffer Filter
|
||||
* systemd-networkd gained support for configuring Token Bucket Filter
|
||||
(TBF) parameters in its qdisc configuration support. Similar, support
|
||||
for Stochastic Fairness Queuing (SFQ), Controlled-Delay Active
|
||||
Queue Management (CoDel), Fair Queue (FQ) has been added.
|
||||
Queue Management (CoDel), Fair Queueing (FQ) has been added.
|
||||
|
||||
* systemd-networkd gained support for Intermediate Functional Block
|
||||
(IFB) network devices.
|
||||
|
@ -2262,10 +2262,11 @@
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>[TrafficControlQueueingDiscipline] Section Options</title>
|
||||
<para>The <literal>[TrafficControlQueueingDiscipline]</literal> section manages the Traffic control. It can be used
|
||||
to configure the kernel packet scheduler and simulate packet delay and loss for UDP or TCP applications,
|
||||
or limit the bandwidth usage of a particular service to simulate internet connections.</para>
|
||||
<title>[NetworkEmulator] Section Options</title>
|
||||
<para>The <literal>[NetworkEmulator]</literal> section manages the queueing discipline (qdisc) of
|
||||
the network emulator. It can be used to configure the kernel packet scheduler and simulate packet
|
||||
delay and loss for UDP or TCP applications, or limit the bandwidth usage of a particular service to
|
||||
simulate internet connections.</para>
|
||||
|
||||
<variablelist class='network-directives'>
|
||||
<varlistentry>
|
||||
@ -2277,7 +2278,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>NetworkEmulatorDelaySec=</varname></term>
|
||||
<term><varname>DelaySec=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the fixed amount of delay to be added to all packets going out of the
|
||||
interface. Defaults to unset.</para>
|
||||
@ -2285,7 +2286,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>NetworkEmulatorDelayJitterSec=</varname></term>
|
||||
<term><varname>DelayJitterSec=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the chosen delay to be added to the packets outgoing to the network
|
||||
interface. Defaults to unset.</para>
|
||||
@ -2293,7 +2294,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>NetworkEmulatorPacketLimit=</varname></term>
|
||||
<term><varname>PacketLimit=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the maximum number of packets the qdisc may hold queued at a time.
|
||||
An unsigned integer ranges 0 to 4294967294. Defaults to 1000.</para>
|
||||
@ -2301,7 +2302,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>NetworkEmulatorLossRate=</varname></term>
|
||||
<term><varname>LossRate=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies an independent loss probability to be added to the packets outgoing from the
|
||||
network interface. Takes a percentage value, suffixed with "%". Defaults to unset.</para>
|
||||
@ -2309,23 +2310,39 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>NetworkEmulatorDuplicateRate=</varname></term>
|
||||
<term><varname>DuplicateRate=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies that the chosen percent of packets is duplicated before queuing them.
|
||||
Takes a percentage value, suffixed with "%". Defaults to unset.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>[TokenBucketFilter] Section Options</title>
|
||||
<para>The <literal>[TokenBucketFilter]</literal> section manages the queueing discipline (qdisc) of
|
||||
token bucket filter (tbf).</para>
|
||||
|
||||
<variablelist class='network-directives'>
|
||||
<varlistentry>
|
||||
<term><varname>TokenBufferFilterLatencySec=</varname></term>
|
||||
<term><varname>Parent=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the latency parameter, which specifies the maximum amount of time a
|
||||
packet can sit in the Token Buffer Filter (TBF). Defaults to unset.</para>
|
||||
<para>Specifies the parent Queueing Discipline (qdisc). Takes one of <literal>root</literal>,
|
||||
<literal>clsact</literal> or <literal>ingress</literal>. Defaults to <literal>root</literal>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>TokenBufferFilterLimitSize=</varname></term>
|
||||
<term><varname>LatencySec=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the latency parameter, which specifies the maximum amount of time a
|
||||
packet can sit in the Token Bucket Filter (TBF). Defaults to unset.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>LimitSize=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes the number of bytes that can be queued waiting for tokens to become available.
|
||||
When the size is suffixed with K, M, or G, it is parsed as Kilobytes, Megabytes, or Gigabytes,
|
||||
@ -2334,7 +2351,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>TokenBufferFilterBurst=</varname></term>
|
||||
<term><varname>Burst=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the size of the bucket. This is the maximum amount of bytes that tokens
|
||||
can be available for instantaneous transfer. When the size is suffixed with K, M, or G, it is
|
||||
@ -2344,7 +2361,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>TokenBufferFilterRate=</varname></term>
|
||||
<term><varname>Rate=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the device specific bandwidth. When suffixed with K, M, or G, the specified
|
||||
bandwidth is parsed as Kilobits, Megabits, or Gigabits, respectively, to the base of 1000.
|
||||
@ -2353,7 +2370,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>TokenBufferFilterMPUBytes=</varname></term>
|
||||
<term><varname>MPUBytes=</varname></term>
|
||||
<listitem>
|
||||
<para>The Minimum Packet Unit (MPU) determines the minimal token usage (specified in bytes)
|
||||
for a packet. When suffixed with K, M, or G, the specified size is parsed as Kilobytes,
|
||||
@ -2362,7 +2379,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>TokenBufferFilterPeakRate=</varname></term>
|
||||
<term><varname>PeakRate=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes the maximum depletion rate of the bucket. When suffixed with K, M, or G, the
|
||||
specified size is parsed as Kilobits, Megabits, or Gigabits, respectively, to the base of
|
||||
@ -2371,23 +2388,55 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>TokenBufferFilterMTUBytes=</varname></term>
|
||||
<term><varname>MTUBytes=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the size of the peakrate bucket. When suffixed with K, M, or G, the specified
|
||||
size is parsed as Kilobytes, Megabytes, or Gigabytes, respectively, to the base of 1000.
|
||||
Defaults to unset.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>[StochasticFairnessQueueing] Section Options</title>
|
||||
<para>The <literal>[StochasticFairnessQueueing]</literal> section manages the queueing discipline
|
||||
(qdisc) of stochastic fairness queueing (sfq).</para>
|
||||
|
||||
<variablelist class='network-directives'>
|
||||
<varlistentry>
|
||||
<term><varname>StochasticFairnessQueueingPerturbPeriodSec=</varname></term>
|
||||
<term><varname>Parent=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the interval in seconds for queue algorithm perturbation. Defaults to unset.</para>
|
||||
<para>Specifies the parent Queueing Discipline (qdisc). Takes one of <literal>root</literal>,
|
||||
<literal>clsact</literal> or <literal>ingress</literal>. Defaults to <literal>root</literal>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ControlledDelayPacketLimit=</varname></term>
|
||||
<term><varname>PerturbPeriodSec=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the interval in seconds for queue algorithm perturbation. Defaults to unset.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>[ControlledDelay] Section Options</title>
|
||||
<para>The <literal>[ControlledDelay]</literal> section manages the queueing discipline (qdisc) of
|
||||
controlled delay (CoDel).</para>
|
||||
|
||||
<variablelist class='network-directives'>
|
||||
<varlistentry>
|
||||
<term><varname>Parent=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the parent Queueing Discipline (qdisc). Takes one of <literal>root</literal>,
|
||||
<literal>clsact</literal> or <literal>ingress</literal>. Defaults to <literal>root</literal>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>PacketLimit=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the hard lmit on the queue size in number of packets. When this limit is reached, incoming packets are
|
||||
dropped. An unsigned integer ranges 0 to 4294967294. Defaults to unset and kernel's default is used.</para>
|
||||
@ -2395,7 +2444,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ControlledDelayTargetSec=</varname></term>
|
||||
<term><varname>TargetSec=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a timespan. Specifies the acceptable minimum standing/persistent queue delay.
|
||||
Defaults to unset and kernel's default is used.</para>
|
||||
@ -2403,7 +2452,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ControlledDelayIntervalSec=</varname></term>
|
||||
<term><varname>IntervalSec=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a timespan. This is used to ensure that the measured minimum delay does not
|
||||
become too stale. Defaults to unset and kernel's default is used.</para>
|
||||
@ -2411,7 +2460,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ControlledDelayECN=</varname></term>
|
||||
<term><varname>ECN=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a boolean. This can be used to mark packets instead of dropping them. Defaults to
|
||||
unset and kernel's default is used.</para>
|
||||
@ -2419,15 +2468,31 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>ControlledDelayCEThresholdSec=</varname></term>
|
||||
<term><varname>CEThresholdSec=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a timespan. This sets a threshold above which all packets are marked with ECN
|
||||
Congestion Experienced (CE). Defaults to unset and kernel's default is used.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>[FairQueueingControlledDelay] Section Options</title>
|
||||
<para>The <literal>[FairQueueingControlledDelay]</literal> section manages the queueing discipline
|
||||
(qdisc) of fair queuing controlled delay (FQ-CoDel).</para>
|
||||
|
||||
<variablelist class='network-directives'>
|
||||
<varlistentry>
|
||||
<term><varname>Parent=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the parent Queueing Discipline (qdisc). Takes one of <literal>root</literal>,
|
||||
<literal>clsact</literal> or <literal>ingress</literal>. Defaults to <literal>root</literal>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueuingControlledDelayPacketLimit=</varname></term>
|
||||
<term><varname>PacketLimit=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the hard limit on the real queue size. When this limit is reached, incoming packets are
|
||||
dropped. Defaults to unset and kernel's default is used.</para>
|
||||
@ -2435,7 +2500,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueuingControlledDelayMemoryLimit=</varname></term>
|
||||
<term><varname>MemoryLimit=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the limit on the total number of bytes that can be queued in this FQ-CoDel instance.
|
||||
When suffixed with K, M, or G, the specified size is parsed as Kilobytes, Megabytes, or Gigabytes,
|
||||
@ -2444,7 +2509,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueuingControlledDelayFlows=</varname></term>
|
||||
<term><varname>Flows=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the number of flows into which the incoming packets are classified.
|
||||
Defaults to unset and kernel's default is used.</para>
|
||||
@ -2452,7 +2517,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueuingControlledDelayTargetSec=</varname></term>
|
||||
<term><varname>TargetSec=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a timespan. Specifies the acceptable minimum standing/persistent queue delay.
|
||||
Defaults to unset and kernel's default is used.</para>
|
||||
@ -2460,7 +2525,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueuingControlledDelayIntervalSec=</varname></term>
|
||||
<term><varname>IntervalSec=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a timespan. This is used to ensure that the measured minimum delay does not
|
||||
become too stale. Defaults to unset and kernel's default is used.</para>
|
||||
@ -2468,7 +2533,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueuingControlledDelayQuantum=</varname></term>
|
||||
<term><varname>Quantum=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the number of bytes used as 'deficit' in the fair queuing algorithmtimespan.
|
||||
When suffixed with K, M, or G, the specified size is parsed as Kilobytes, Megabytes, or Gigabytes,
|
||||
@ -2477,7 +2542,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueuingControlledDelayECN=</varname></term>
|
||||
<term><varname>ECN=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a boolean. This can be used to mark packets instead of dropping them. Defaults to
|
||||
unset and kernel's default is used.</para>
|
||||
@ -2485,15 +2550,31 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueuingControlledDelayCEThresholdSec=</varname></term>
|
||||
<term><varname>CEThresholdSec=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a timespan. This sets a threshold above which all packets are marked with ECN
|
||||
Congestion Experienced (CE). Defaults to unset and kernel's default is used.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
<refsect1>
|
||||
<title>[FairQueueing] Section Options</title>
|
||||
<para>The <literal>[FairQueueing]</literal> section manages the queueing discipline
|
||||
(qdisc) of fair queue traffic policing (FQ).</para>
|
||||
|
||||
<variablelist class='network-directives'>
|
||||
<varlistentry>
|
||||
<term><varname>Parent=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the parent Queueing Discipline (qdisc). Takes one of <literal>root</literal>,
|
||||
<literal>clsact</literal> or <literal>ingress</literal>. Defaults to <literal>root</literal>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueueTrafficPolicingPacketLimit=</varname></term>
|
||||
<term><varname>PacketLimit=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the hard limit on the real queue size. When this limit is reached, incoming packets are
|
||||
dropped. Defaults to unset and kernel's default is used.</para>
|
||||
@ -2501,7 +2582,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueueTrafficPolicingFlowLimit=</varname></term>
|
||||
<term><varname>FlowLimit=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the hard limit on the maximum number of packets queued per flow. Defaults to
|
||||
unset and kernel's default is used.</para>
|
||||
@ -2509,7 +2590,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueueTrafficPolicingQuantum=</varname></term>
|
||||
<term><varname>Quantum=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the credit per dequeue RR round, i.e. the amount of bytes a flow is allowed
|
||||
to dequeue at once. When suffixed with K, M, or G, the specified size is parsed as Kilobytes,
|
||||
@ -2519,7 +2600,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueueTrafficPolicingInitialQuantum=</varname></term>
|
||||
<term><varname>InitialQuantum=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the initial sending rate credit, i.e. the amount of bytes a new flow is
|
||||
allowed to dequeue initially. When suffixed with K, M, or G, the specified size is parsed as
|
||||
@ -2529,7 +2610,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueueTrafficPolicingMaximumRate=</varname></term>
|
||||
<term><varname>MaximumRate=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the maximum sending rate of a flow. When suffixed with K, M, or G, the
|
||||
specified size is parsed as Kilobits, Megabits, or Gigabits, respectively, to the base of
|
||||
@ -2538,7 +2619,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueueTrafficPolicingBuckets=</varname></term>
|
||||
<term><varname>Buckets=</varname></term>
|
||||
<listitem>
|
||||
<para>Specifies the size of the hash table used for flow lookups. Defaults to unset and
|
||||
kernel's default is used.</para>
|
||||
@ -2546,7 +2627,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueueTrafficPolicingOrphanMask=</varname></term>
|
||||
<term><varname>OrphanMask=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes an unsigned integer. For packets not owned by a socket, fq is able to mask a part
|
||||
of hash and reduce number of buckets associated with the traffic. Defaults to unset and
|
||||
@ -2555,7 +2636,7 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueueTrafficPolicingPacing=</varname></term>
|
||||
<term><varname>Pacing=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a boolean, and enables or disables flow pacing. Defaults to unset and kernel's
|
||||
default is used.</para>
|
||||
@ -2563,13 +2644,12 @@
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><varname>FairQueueTrafficPolicingCEThresholdSec=</varname></term>
|
||||
<term><varname>CEThresholdSec=</varname></term>
|
||||
<listitem>
|
||||
<para>Takes a timespan. This sets a threshold above which all packets are marked with ECN
|
||||
Congestion Experienced (CE). Defaults to unset and kernel's default is used.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
|
@ -27,291 +27,302 @@ struct ConfigPerfItem;
|
||||
%struct-type
|
||||
%includes
|
||||
%%
|
||||
Match.MACAddress, config_parse_hwaddrs, 0, offsetof(Network, match_mac)
|
||||
Match.PermanentMACAddress, config_parse_hwaddrs, 0, offsetof(Network, match_permanent_mac)
|
||||
Match.Path, config_parse_match_strv, 0, offsetof(Network, match_path)
|
||||
Match.Driver, config_parse_match_strv, 0, offsetof(Network, match_driver)
|
||||
Match.Type, config_parse_match_strv, 0, offsetof(Network, match_type)
|
||||
Match.WLANInterfaceType, config_parse_match_strv, 0, offsetof(Network, match_wlan_iftype)
|
||||
Match.SSID, config_parse_match_strv, 0, offsetof(Network, match_ssid)
|
||||
Match.BSSID, config_parse_hwaddrs, 0, offsetof(Network, match_bssid)
|
||||
Match.Name, config_parse_match_ifnames, 1, offsetof(Network, match_name)
|
||||
Match.Property, config_parse_match_property, 0, offsetof(Network, match_property)
|
||||
Match.Host, config_parse_net_condition, CONDITION_HOST, offsetof(Network, conditions)
|
||||
Match.Virtualization, config_parse_net_condition, CONDITION_VIRTUALIZATION, offsetof(Network, conditions)
|
||||
Match.KernelCommandLine, config_parse_net_condition, CONDITION_KERNEL_COMMAND_LINE, offsetof(Network, conditions)
|
||||
Match.KernelVersion, config_parse_net_condition, CONDITION_KERNEL_VERSION, offsetof(Network, conditions)
|
||||
Match.Architecture, config_parse_net_condition, CONDITION_ARCHITECTURE, offsetof(Network, conditions)
|
||||
Link.MACAddress, config_parse_hwaddr, 0, offsetof(Network, mac)
|
||||
Link.MTUBytes, config_parse_mtu, AF_UNSPEC, offsetof(Network, mtu)
|
||||
Link.ARP, config_parse_tristate, 0, offsetof(Network, arp)
|
||||
Link.Multicast, config_parse_tristate, 0, offsetof(Network, multicast)
|
||||
Link.AllMulticast, config_parse_tristate, 0, offsetof(Network, allmulticast)
|
||||
Link.Unmanaged, config_parse_bool, 0, offsetof(Network, unmanaged)
|
||||
Link.RequiredForOnline, config_parse_required_for_online, 0, 0
|
||||
Network.Description, config_parse_string, 0, offsetof(Network, description)
|
||||
Network.Bridge, config_parse_ifname, 0, offsetof(Network, bridge_name)
|
||||
Network.Bond, config_parse_ifname, 0, offsetof(Network, bond_name)
|
||||
Network.VLAN, config_parse_stacked_netdev, NETDEV_KIND_VLAN, offsetof(Network, stacked_netdev_names)
|
||||
Network.MACVLAN, config_parse_stacked_netdev, NETDEV_KIND_MACVLAN, offsetof(Network, stacked_netdev_names)
|
||||
Network.MACVTAP, config_parse_stacked_netdev, NETDEV_KIND_MACVTAP, offsetof(Network, stacked_netdev_names)
|
||||
Network.IPVLAN, config_parse_stacked_netdev, NETDEV_KIND_IPVLAN, offsetof(Network, stacked_netdev_names)
|
||||
Network.IPVTAP, config_parse_stacked_netdev, NETDEV_KIND_IPVTAP, offsetof(Network, stacked_netdev_names)
|
||||
Network.VXLAN, config_parse_stacked_netdev, NETDEV_KIND_VXLAN, offsetof(Network, stacked_netdev_names)
|
||||
Network.L2TP, config_parse_stacked_netdev, NETDEV_KIND_L2TP, offsetof(Network, stacked_netdev_names)
|
||||
Network.MACsec, config_parse_stacked_netdev, NETDEV_KIND_MACSEC, offsetof(Network, stacked_netdev_names)
|
||||
Network.Tunnel, config_parse_stacked_netdev, _NETDEV_KIND_TUNNEL, offsetof(Network, stacked_netdev_names)
|
||||
Network.Xfrm, config_parse_stacked_netdev, NETDEV_KIND_XFRM, offsetof(Network, stacked_netdev_names)
|
||||
Network.VRF, config_parse_ifname, 0, offsetof(Network, vrf_name)
|
||||
Network.DHCP, config_parse_dhcp, 0, offsetof(Network, dhcp)
|
||||
Network.DHCPServer, config_parse_bool, 0, offsetof(Network, dhcp_server)
|
||||
Network.LinkLocalAddressing, config_parse_link_local_address_family, 0, offsetof(Network, link_local)
|
||||
Network.IPv4LLRoute, config_parse_bool, 0, offsetof(Network, ipv4ll_route)
|
||||
Network.DefaultRouteOnDevice, config_parse_bool, 0, offsetof(Network, default_route_on_device)
|
||||
Network.IPv6Token, config_parse_ipv6token, 0, offsetof(Network, ipv6_token)
|
||||
Network.LLDP, config_parse_lldp_mode, 0, offsetof(Network, lldp_mode)
|
||||
Network.EmitLLDP, config_parse_lldp_emit, 0, offsetof(Network, lldp_emit)
|
||||
Network.Address, config_parse_address, 0, 0
|
||||
Network.Gateway, config_parse_gateway, 0, 0
|
||||
Network.Domains, config_parse_domains, 0, 0
|
||||
Network.DNS, config_parse_dns, 0, 0
|
||||
Network.DNSDefaultRoute, config_parse_tristate, 0, offsetof(Network, dns_default_route)
|
||||
Network.LLMNR, config_parse_resolve_support, 0, offsetof(Network, llmnr)
|
||||
Network.MulticastDNS, config_parse_resolve_support, 0, offsetof(Network, mdns)
|
||||
Network.DNSOverTLS, config_parse_dns_over_tls_mode, 0, offsetof(Network, dns_over_tls_mode)
|
||||
Network.DNSSEC, config_parse_dnssec_mode, 0, offsetof(Network, dnssec_mode)
|
||||
Network.DNSSECNegativeTrustAnchors, config_parse_dnssec_negative_trust_anchors, 0, 0
|
||||
Network.NTP, config_parse_ntp, 0, offsetof(Network, ntp)
|
||||
Network.IPForward, config_parse_address_family_with_kernel, 0, offsetof(Network, ip_forward)
|
||||
Network.IPMasquerade, config_parse_bool, 0, offsetof(Network, ip_masquerade)
|
||||
Network.IPv6PrivacyExtensions, config_parse_ipv6_privacy_extensions, 0, offsetof(Network, ipv6_privacy_extensions)
|
||||
Network.IPv6AcceptRA, config_parse_tristate, 0, offsetof(Network, ipv6_accept_ra)
|
||||
Network.IPv6AcceptRouterAdvertisements, config_parse_tristate, 0, offsetof(Network, ipv6_accept_ra)
|
||||
Network.IPv6DuplicateAddressDetection, config_parse_int, 0, offsetof(Network, ipv6_dad_transmits)
|
||||
Network.IPv6HopLimit, config_parse_int, 0, offsetof(Network, ipv6_hop_limit)
|
||||
Network.IPv6ProxyNDP, config_parse_tristate, 0, offsetof(Network, ipv6_proxy_ndp)
|
||||
Network.IPv6MTUBytes, config_parse_mtu, AF_INET6, offsetof(Network, ipv6_mtu)
|
||||
Network.ActiveSlave, config_parse_bool, 0, offsetof(Network, active_slave)
|
||||
Network.PrimarySlave, config_parse_bool, 0, offsetof(Network, primary_slave)
|
||||
Network.IPv4ProxyARP, config_parse_tristate, 0, offsetof(Network, proxy_arp)
|
||||
Network.ProxyARP, config_parse_tristate, 0, offsetof(Network, proxy_arp)
|
||||
Network.IPv6ProxyNDPAddress, config_parse_ipv6_proxy_ndp_address, 0, 0
|
||||
Network.BindCarrier, config_parse_strv, 0, offsetof(Network, bind_carrier)
|
||||
Network.ConfigureWithoutCarrier, config_parse_bool, 0, offsetof(Network, configure_without_carrier)
|
||||
Network.IgnoreCarrierLoss, config_parse_bool, 0, offsetof(Network, ignore_carrier_loss)
|
||||
Network.KeepConfiguration, config_parse_keep_configuration, 0, offsetof(Network, keep_configuration)
|
||||
Address.Address, config_parse_address, 0, 0
|
||||
Address.Peer, config_parse_address, 0, 0
|
||||
Address.Broadcast, config_parse_broadcast, 0, 0
|
||||
Address.Label, config_parse_label, 0, 0
|
||||
Address.PreferredLifetime, config_parse_lifetime, 0, 0
|
||||
Address.HomeAddress, config_parse_address_flags, 0, 0
|
||||
Address.ManageTemporaryAddress, config_parse_address_flags, 0, 0
|
||||
Address.PrefixRoute, config_parse_address_flags, 0, 0 /* deprecated */
|
||||
Address.AddPrefixRoute, config_parse_address_flags, 0, 0
|
||||
Address.AutoJoin, config_parse_address_flags, 0, 0
|
||||
Address.DuplicateAddressDetection, config_parse_duplicate_address_detection, 0, 0
|
||||
Address.Scope, config_parse_address_scope, 0, 0
|
||||
IPv6AddressLabel.Prefix, config_parse_address_label_prefix, 0, 0
|
||||
IPv6AddressLabel.Label, config_parse_address_label, 0, 0
|
||||
Neighbor.Address, config_parse_neighbor_address, 0, 0
|
||||
Neighbor.LinkLayerAddress, config_parse_neighbor_lladdr, 0, 0
|
||||
Neighbor.MACAddress, config_parse_neighbor_hwaddr, 0, 0 /* deprecated */
|
||||
RoutingPolicyRule.TypeOfService, config_parse_routing_policy_rule_tos, 0, 0
|
||||
RoutingPolicyRule.Priority, config_parse_routing_policy_rule_priority, 0, 0
|
||||
RoutingPolicyRule.Table, config_parse_routing_policy_rule_table, 0, 0
|
||||
RoutingPolicyRule.FirewallMark, config_parse_routing_policy_rule_fwmark_mask, 0, 0
|
||||
RoutingPolicyRule.From, config_parse_routing_policy_rule_prefix, 0, 0
|
||||
RoutingPolicyRule.To, config_parse_routing_policy_rule_prefix, 0, 0
|
||||
RoutingPolicyRule.IncomingInterface, config_parse_routing_policy_rule_device, 0, 0
|
||||
RoutingPolicyRule.OutgoingInterface, config_parse_routing_policy_rule_device, 0, 0
|
||||
RoutingPolicyRule.IPProtocol, config_parse_routing_policy_rule_ip_protocol, 0, 0
|
||||
RoutingPolicyRule.SourcePort, config_parse_routing_policy_rule_port_range, 0, 0
|
||||
RoutingPolicyRule.DestinationPort, config_parse_routing_policy_rule_port_range, 0, 0
|
||||
RoutingPolicyRule.InvertRule, config_parse_routing_policy_rule_invert, 0, 0
|
||||
RoutingPolicyRule.Family, config_parse_routing_policy_rule_family, 0, 0
|
||||
RoutingPolicyRule.User, config_parse_routing_policy_rule_uid_range, 0, 0
|
||||
RoutingPolicyRule.SuppressPrefixLength, config_parse_routing_policy_rule_suppress_prefixlen, 0, 0
|
||||
Route.Gateway, config_parse_gateway, 0, 0
|
||||
Route.Destination, config_parse_destination, 0, 0
|
||||
Route.Source, config_parse_destination, 0, 0
|
||||
Route.Metric, config_parse_route_priority, 0, 0
|
||||
Route.Scope, config_parse_route_scope, 0, 0
|
||||
Route.PreferredSource, config_parse_preferred_src, 0, 0
|
||||
Route.Table, config_parse_route_table, 0, 0
|
||||
Route.MTUBytes, config_parse_route_mtu, AF_UNSPEC, 0
|
||||
Route.GatewayOnLink, config_parse_gateway_onlink, 0, 0
|
||||
Route.GatewayOnlink, config_parse_gateway_onlink, 0, 0
|
||||
Route.IPv6Preference, config_parse_ipv6_route_preference, 0, 0
|
||||
Route.Protocol, config_parse_route_protocol, 0, 0
|
||||
Route.Type, config_parse_route_type, 0, 0
|
||||
Route.InitialCongestionWindow, config_parse_tcp_window, 0, 0
|
||||
Route.InitialAdvertisedReceiveWindow, config_parse_tcp_window, 0, 0
|
||||
Route.QuickAck, config_parse_quickack, 0, 0
|
||||
Route.FastOpenNoCookie, config_parse_fast_open_no_cookie, 0, 0
|
||||
Route.TTLPropagate, config_parse_route_ttl_propagate, 0, 0
|
||||
Route.MultiPathRoute, config_parse_multipath_route, 0, 0
|
||||
NextHop.Id, config_parse_nexthop_id, 0, 0
|
||||
NextHop.Gateway, config_parse_nexthop_gateway, 0, 0
|
||||
DHCPv4.ClientIdentifier, config_parse_dhcp_client_identifier, 0, offsetof(Network, dhcp_client_identifier)
|
||||
DHCPv4.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_use_dns)
|
||||
DHCPv4.RoutesToDNS, config_parse_bool, 0, offsetof(Network, dhcp_routes_to_dns)
|
||||
DHCPv4.UseNTP, config_parse_bool, 0, offsetof(Network, dhcp_use_ntp)
|
||||
DHCPv4.UseSIP, config_parse_bool, 0, offsetof(Network, dhcp_use_sip)
|
||||
DHCPv4.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_use_mtu)
|
||||
DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname)
|
||||
DHCPv4.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains)
|
||||
DHCPv4.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_use_routes)
|
||||
DHCPv4.RequestOptions, config_parse_dhcp_request_options, 0, 0
|
||||
DHCPv4.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize)
|
||||
DHCPv4.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_send_hostname)
|
||||
DHCPv4.Hostname, config_parse_hostname, 0, offsetof(Network, dhcp_hostname)
|
||||
DHCPv4.RequestBroadcast, config_parse_bool, 0, offsetof(Network, dhcp_broadcast)
|
||||
DHCPv4.VendorClassIdentifier, config_parse_string, 0, offsetof(Network, dhcp_vendor_class_identifier)
|
||||
DHCPv4.MaxAttempts, config_parse_dhcp_max_attempts, 0, 0
|
||||
DHCPv4.UserClass, config_parse_dhcp_user_class, 0, offsetof(Network, dhcp_user_class)
|
||||
DHCPv4.DUIDType, config_parse_duid_type, 0, offsetof(Network, duid)
|
||||
DHCPv4.DUIDRawData, config_parse_duid_rawdata, 0, offsetof(Network, duid)
|
||||
DHCPv4.RouteMetric, config_parse_unsigned, 0, offsetof(Network, dhcp_route_metric)
|
||||
DHCPv4.RouteTable, config_parse_section_route_table, 0, 0
|
||||
DHCPv4.UseTimezone, config_parse_bool, 0, offsetof(Network, dhcp_use_timezone)
|
||||
DHCPv4.IAID, config_parse_iaid, 0, 0
|
||||
DHCPv4.ListenPort, config_parse_uint16, 0, offsetof(Network, dhcp_client_port)
|
||||
DHCPv4.SendRelease, config_parse_bool, 0, offsetof(Network, dhcp_send_release)
|
||||
DHCPv4.SendDecline, config_parse_bool, 0, offsetof(Network, dhcp_send_decline)
|
||||
DHCPv4.BlackList, config_parse_dhcp_black_listed_ip_address, 0, 0
|
||||
DHCPv4.IPServiceType, config_parse_ip_service_type, 0, offsetof(Network, ip_service_type)
|
||||
DHCPv4.SendOption, config_parse_dhcp_send_option, 0, offsetof(Network, dhcp_client_send_options)
|
||||
DHCPv4.RouteMTUBytes, config_parse_mtu, AF_INET, offsetof(Network, dhcp_route_mtu)
|
||||
DHCPv6.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp6_use_dns)
|
||||
DHCPv6.UseNTP, config_parse_bool, 0, offsetof(Network, dhcp6_use_ntp)
|
||||
DHCPv6.RapidCommit, config_parse_bool, 0, offsetof(Network, rapid_commit)
|
||||
DHCPv6.ForceDHCPv6PDOtherInformation, config_parse_bool, 0, offsetof(Network, dhcp6_force_pd_other_information)
|
||||
DHCPv6.PrefixDelegationHint, config_parse_dhcp6_pd_hint, 0, 0
|
||||
IPv6AcceptRA.UseAutonomousPrefix, config_parse_bool, 0, offsetof(Network, ipv6_accept_ra_use_autonomous_prefix)
|
||||
IPv6AcceptRA.UseOnLinkPrefix, config_parse_bool, 0, offsetof(Network, ipv6_accept_ra_use_onlink_prefix)
|
||||
IPv6AcceptRA.UseDNS, config_parse_bool, 0, offsetof(Network, ipv6_accept_ra_use_dns)
|
||||
IPv6AcceptRA.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, ipv6_accept_ra_use_domains)
|
||||
IPv6AcceptRA.RouteTable, config_parse_section_route_table, 0, 0
|
||||
IPv6AcceptRA.BlackList, config_parse_ndisc_black_listed_prefix, 0, 0
|
||||
DHCPServer.MaxLeaseTimeSec, config_parse_sec, 0, offsetof(Network, dhcp_server_max_lease_time_usec)
|
||||
DHCPServer.DefaultLeaseTimeSec, config_parse_sec, 0, offsetof(Network, dhcp_server_default_lease_time_usec)
|
||||
DHCPServer.EmitDNS, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_dns)
|
||||
DHCPServer.DNS, config_parse_dhcp_server_dns, 0, 0
|
||||
DHCPServer.EmitNTP, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_ntp)
|
||||
DHCPServer.NTP, config_parse_dhcp_server_ntp, 0, 0
|
||||
DHCPServer.EmitSIP, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_sip)
|
||||
DHCPServer.SIP, config_parse_dhcp_server_sip, 0, 0
|
||||
DHCPServer.EmitRouter, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_router)
|
||||
DHCPServer.EmitTimezone, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_timezone)
|
||||
DHCPServer.Timezone, config_parse_timezone, 0, offsetof(Network, dhcp_server_timezone)
|
||||
DHCPServer.PoolOffset, config_parse_uint32, 0, offsetof(Network, dhcp_server_pool_offset)
|
||||
DHCPServer.PoolSize, config_parse_uint32, 0, offsetof(Network, dhcp_server_pool_size)
|
||||
DHCPServer.SendOption, config_parse_dhcp_send_option, 0, offsetof(Network, dhcp_server_send_options)
|
||||
Bridge.Cost, config_parse_uint32, 0, offsetof(Network, cost)
|
||||
Bridge.UseBPDU, config_parse_tristate, 0, offsetof(Network, use_bpdu)
|
||||
Bridge.HairPin, config_parse_tristate, 0, offsetof(Network, hairpin)
|
||||
Bridge.FastLeave, config_parse_tristate, 0, offsetof(Network, fast_leave)
|
||||
Bridge.AllowPortToBeRoot, config_parse_tristate, 0, offsetof(Network, allow_port_to_be_root)
|
||||
Bridge.UnicastFlood, config_parse_tristate, 0, offsetof(Network, unicast_flood)
|
||||
Bridge.MulticastFlood, config_parse_tristate, 0, offsetof(Network, multicast_flood)
|
||||
Bridge.MulticastToUnicast, config_parse_tristate, 0, offsetof(Network, multicast_to_unicast)
|
||||
Bridge.NeighborSuppression, config_parse_tristate, 0, offsetof(Network, neighbor_suppression)
|
||||
Bridge.Learning, config_parse_tristate, 0, offsetof(Network, learning)
|
||||
Bridge.ProxyARP, config_parse_tristate, 0, offsetof(Network, bridge_proxy_arp)
|
||||
Bridge.ProxyARPWiFi, config_parse_tristate, 0, offsetof(Network, bridge_proxy_arp_wifi)
|
||||
Bridge.Priority, config_parse_bridge_port_priority, 0, offsetof(Network, priority)
|
||||
Bridge.MulticastRouter, config_parse_multicast_router, 0, offsetof(Network, multicast_router)
|
||||
BridgeFDB.MACAddress, config_parse_fdb_hwaddr, 0, 0
|
||||
BridgeFDB.VLANId, config_parse_fdb_vlan_id, 0, 0
|
||||
BridgeFDB.Destination, config_parse_fdb_destination, 0, 0
|
||||
BridgeFDB.VNI, config_parse_fdb_vxlan_vni, 0, 0
|
||||
BridgeFDB.AssociatedWith, config_parse_fdb_ntf_flags, 0, 0
|
||||
BridgeVLAN.PVID, config_parse_brvlan_pvid, 0, 0
|
||||
BridgeVLAN.VLAN, config_parse_brvlan_vlan, 0, 0
|
||||
BridgeVLAN.EgressUntagged, config_parse_brvlan_untagged, 0, 0
|
||||
Network.IPv6PrefixDelegation, config_parse_router_prefix_delegation, 0, 0
|
||||
IPv6PrefixDelegation.RouterLifetimeSec, config_parse_sec, 0, offsetof(Network, router_lifetime_usec)
|
||||
IPv6PrefixDelegation.Managed, config_parse_bool, 0, offsetof(Network, router_managed)
|
||||
IPv6PrefixDelegation.OtherInformation, config_parse_bool, 0, offsetof(Network, router_other_information)
|
||||
IPv6PrefixDelegation.RouterPreference, config_parse_router_preference, 0, 0
|
||||
IPv6PrefixDelegation.EmitDNS, config_parse_bool, 0, offsetof(Network, router_emit_dns)
|
||||
IPv6PrefixDelegation.DNS, config_parse_radv_dns, 0, 0
|
||||
IPv6PrefixDelegation.EmitDomains, config_parse_bool, 0, offsetof(Network, router_emit_domains)
|
||||
IPv6PrefixDelegation.Domains, config_parse_radv_search_domains, 0, 0
|
||||
IPv6PrefixDelegation.DNSLifetimeSec, config_parse_sec, 0, offsetof(Network, router_dns_lifetime_usec)
|
||||
IPv6Prefix.Prefix, config_parse_prefix, 0, 0
|
||||
IPv6Prefix.OnLink, config_parse_prefix_flags, 0, 0
|
||||
IPv6Prefix.AddressAutoconfiguration, config_parse_prefix_flags, 0, 0
|
||||
IPv6Prefix.ValidLifetimeSec, config_parse_prefix_lifetime, 0, 0
|
||||
IPv6Prefix.PreferredLifetimeSec, config_parse_prefix_lifetime, 0, 0
|
||||
IPv6RoutePrefix.Route, config_parse_route_prefix, 0, 0
|
||||
IPv6RoutePrefix.LifetimeSec, config_parse_route_prefix_lifetime, 0, 0
|
||||
CAN.BitRate, config_parse_si_uint64, 0, offsetof(Network, can_bitrate)
|
||||
CAN.SamplePoint, config_parse_permille, 0, offsetof(Network, can_sample_point)
|
||||
CAN.RestartSec, config_parse_sec, 0, offsetof(Network, can_restart_us)
|
||||
CAN.TripleSampling, config_parse_tristate, 0, offsetof(Network, can_triple_sampling)
|
||||
TrafficControlQueueingDiscipline.Parent, config_parse_tc_qdiscs_parent, 0, 0
|
||||
TrafficControlQueueingDiscipline.NetworkEmulatorDelaySec, config_parse_tc_network_emulator_delay, 0, 0
|
||||
TrafficControlQueueingDiscipline.NetworkEmulatorDelayJitterSec, config_parse_tc_network_emulator_delay, 0, 0
|
||||
TrafficControlQueueingDiscipline.NetworkEmulatorLossRate, config_parse_tc_network_emulator_rate, 0, 0
|
||||
TrafficControlQueueingDiscipline.NetworkEmulatorDuplicateRate, config_parse_tc_network_emulator_rate, 0, 0
|
||||
TrafficControlQueueingDiscipline.NetworkEmulatorPacketLimit, config_parse_tc_network_emulator_packet_limit, 0, 0
|
||||
TrafficControlQueueingDiscipline.TokenBufferFilterRate, config_parse_tc_token_buffer_filter_size, 0, 0
|
||||
TrafficControlQueueingDiscipline.TokenBufferFilterBurst, config_parse_tc_token_buffer_filter_size, 0, 0
|
||||
TrafficControlQueueingDiscipline.TokenBufferFilterLimitSize, config_parse_tc_token_buffer_filter_size, 0, 0
|
||||
TrafficControlQueueingDiscipline.TokenBufferFilterMTUBytes, config_parse_tc_token_buffer_filter_size, 0, 0
|
||||
TrafficControlQueueingDiscipline.TokenBufferFilterMPUBytes, config_parse_tc_token_buffer_filter_size, 0, 0
|
||||
TrafficControlQueueingDiscipline.TokenBufferFilterPeakRate, config_parse_tc_token_buffer_filter_size, 0, 0
|
||||
TrafficControlQueueingDiscipline.TokenBufferFilterLatencySec, config_parse_tc_token_buffer_filter_latency, 0, 0
|
||||
TrafficControlQueueingDiscipline.StochasticFairnessQueueingPerturbPeriodSec, config_parse_tc_stochastic_fairness_queueing_perturb_period, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueuingControlledDelayPacketLimit, config_parse_tc_fair_queuing_controlled_delay_u32, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueuingControlledDelayMemoryLimit, config_parse_tc_fair_queuing_controlled_delay_size, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueuingControlledDelayFlows, config_parse_tc_fair_queuing_controlled_delay_u32, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueuingControlledDelayQuantum, config_parse_tc_fair_queuing_controlled_delay_size, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueuingControlledDelayTargetSec, config_parse_tc_fair_queuing_controlled_delay_usec, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueuingControlledDelayIntervalSec, config_parse_tc_fair_queuing_controlled_delay_usec, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueuingControlledDelayCEThresholdSec, config_parse_tc_fair_queuing_controlled_delay_usec, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueuingControlledDelayECN, config_parse_tc_fair_queuing_controlled_delay_bool, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueueTrafficPolicingPacketLimit, config_parse_tc_fair_queue_traffic_policing_u32, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueueTrafficPolicingFlowLimit, config_parse_tc_fair_queue_traffic_policing_u32, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueueTrafficPolicingQuantum, config_parse_tc_fair_queue_traffic_policing_size, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueueTrafficPolicingInitialQuantum, config_parse_tc_fair_queue_traffic_policing_size, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueueTrafficPolicingMaximumRate, config_parse_tc_fair_queue_traffic_policing_max_rate, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueueTrafficPolicingBuckets, config_parse_tc_fair_queue_traffic_policing_u32, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueueTrafficPolicingOrphanMask, config_parse_tc_fair_queue_traffic_policing_u32, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueueTrafficPolicingPacing, config_parse_tc_fair_queue_traffic_policing_bool, 0, 0
|
||||
TrafficControlQueueingDiscipline.FairQueueTrafficPolicingCEThresholdSec, config_parse_tc_fair_queue_traffic_policing_usec, 0, 0
|
||||
TrafficControlQueueingDiscipline.ControlledDelayPacketLimit, config_parse_tc_controlled_delay_u32, 0, 0
|
||||
TrafficControlQueueingDiscipline.ControlledDelayTargetSec, config_parse_tc_controlled_delay_usec, 0, 0
|
||||
TrafficControlQueueingDiscipline.ControlledDelayIntervalSec, config_parse_tc_controlled_delay_usec, 0, 0
|
||||
TrafficControlQueueingDiscipline.ControlledDelayCEThresholdSec, config_parse_tc_controlled_delay_usec, 0, 0
|
||||
TrafficControlQueueingDiscipline.ControlledDelayECN, config_parse_tc_controlled_delay_bool, 0, 0
|
||||
Match.MACAddress, config_parse_hwaddrs, 0, offsetof(Network, match_mac)
|
||||
Match.PermanentMACAddress, config_parse_hwaddrs, 0, offsetof(Network, match_permanent_mac)
|
||||
Match.Path, config_parse_match_strv, 0, offsetof(Network, match_path)
|
||||
Match.Driver, config_parse_match_strv, 0, offsetof(Network, match_driver)
|
||||
Match.Type, config_parse_match_strv, 0, offsetof(Network, match_type)
|
||||
Match.WLANInterfaceType, config_parse_match_strv, 0, offsetof(Network, match_wlan_iftype)
|
||||
Match.SSID, config_parse_match_strv, 0, offsetof(Network, match_ssid)
|
||||
Match.BSSID, config_parse_hwaddrs, 0, offsetof(Network, match_bssid)
|
||||
Match.Name, config_parse_match_ifnames, 1, offsetof(Network, match_name)
|
||||
Match.Property, config_parse_match_property, 0, offsetof(Network, match_property)
|
||||
Match.Host, config_parse_net_condition, CONDITION_HOST, offsetof(Network, conditions)
|
||||
Match.Virtualization, config_parse_net_condition, CONDITION_VIRTUALIZATION, offsetof(Network, conditions)
|
||||
Match.KernelCommandLine, config_parse_net_condition, CONDITION_KERNEL_COMMAND_LINE, offsetof(Network, conditions)
|
||||
Match.KernelVersion, config_parse_net_condition, CONDITION_KERNEL_VERSION, offsetof(Network, conditions)
|
||||
Match.Architecture, config_parse_net_condition, CONDITION_ARCHITECTURE, offsetof(Network, conditions)
|
||||
Link.MACAddress, config_parse_hwaddr, 0, offsetof(Network, mac)
|
||||
Link.MTUBytes, config_parse_mtu, AF_UNSPEC, offsetof(Network, mtu)
|
||||
Link.ARP, config_parse_tristate, 0, offsetof(Network, arp)
|
||||
Link.Multicast, config_parse_tristate, 0, offsetof(Network, multicast)
|
||||
Link.AllMulticast, config_parse_tristate, 0, offsetof(Network, allmulticast)
|
||||
Link.Unmanaged, config_parse_bool, 0, offsetof(Network, unmanaged)
|
||||
Link.RequiredForOnline, config_parse_required_for_online, 0, 0
|
||||
Network.Description, config_parse_string, 0, offsetof(Network, description)
|
||||
Network.Bridge, config_parse_ifname, 0, offsetof(Network, bridge_name)
|
||||
Network.Bond, config_parse_ifname, 0, offsetof(Network, bond_name)
|
||||
Network.VLAN, config_parse_stacked_netdev, NETDEV_KIND_VLAN, offsetof(Network, stacked_netdev_names)
|
||||
Network.MACVLAN, config_parse_stacked_netdev, NETDEV_KIND_MACVLAN, offsetof(Network, stacked_netdev_names)
|
||||
Network.MACVTAP, config_parse_stacked_netdev, NETDEV_KIND_MACVTAP, offsetof(Network, stacked_netdev_names)
|
||||
Network.IPVLAN, config_parse_stacked_netdev, NETDEV_KIND_IPVLAN, offsetof(Network, stacked_netdev_names)
|
||||
Network.IPVTAP, config_parse_stacked_netdev, NETDEV_KIND_IPVTAP, offsetof(Network, stacked_netdev_names)
|
||||
Network.VXLAN, config_parse_stacked_netdev, NETDEV_KIND_VXLAN, offsetof(Network, stacked_netdev_names)
|
||||
Network.L2TP, config_parse_stacked_netdev, NETDEV_KIND_L2TP, offsetof(Network, stacked_netdev_names)
|
||||
Network.MACsec, config_parse_stacked_netdev, NETDEV_KIND_MACSEC, offsetof(Network, stacked_netdev_names)
|
||||
Network.Tunnel, config_parse_stacked_netdev, _NETDEV_KIND_TUNNEL, offsetof(Network, stacked_netdev_names)
|
||||
Network.Xfrm, config_parse_stacked_netdev, NETDEV_KIND_XFRM, offsetof(Network, stacked_netdev_names)
|
||||
Network.VRF, config_parse_ifname, 0, offsetof(Network, vrf_name)
|
||||
Network.DHCP, config_parse_dhcp, 0, offsetof(Network, dhcp)
|
||||
Network.DHCPServer, config_parse_bool, 0, offsetof(Network, dhcp_server)
|
||||
Network.LinkLocalAddressing, config_parse_link_local_address_family, 0, offsetof(Network, link_local)
|
||||
Network.IPv4LLRoute, config_parse_bool, 0, offsetof(Network, ipv4ll_route)
|
||||
Network.DefaultRouteOnDevice, config_parse_bool, 0, offsetof(Network, default_route_on_device)
|
||||
Network.IPv6Token, config_parse_ipv6token, 0, offsetof(Network, ipv6_token)
|
||||
Network.LLDP, config_parse_lldp_mode, 0, offsetof(Network, lldp_mode)
|
||||
Network.EmitLLDP, config_parse_lldp_emit, 0, offsetof(Network, lldp_emit)
|
||||
Network.Address, config_parse_address, 0, 0
|
||||
Network.Gateway, config_parse_gateway, 0, 0
|
||||
Network.Domains, config_parse_domains, 0, 0
|
||||
Network.DNS, config_parse_dns, 0, 0
|
||||
Network.DNSDefaultRoute, config_parse_tristate, 0, offsetof(Network, dns_default_route)
|
||||
Network.LLMNR, config_parse_resolve_support, 0, offsetof(Network, llmnr)
|
||||
Network.MulticastDNS, config_parse_resolve_support, 0, offsetof(Network, mdns)
|
||||
Network.DNSOverTLS, config_parse_dns_over_tls_mode, 0, offsetof(Network, dns_over_tls_mode)
|
||||
Network.DNSSEC, config_parse_dnssec_mode, 0, offsetof(Network, dnssec_mode)
|
||||
Network.DNSSECNegativeTrustAnchors, config_parse_dnssec_negative_trust_anchors, 0, 0
|
||||
Network.NTP, config_parse_ntp, 0, offsetof(Network, ntp)
|
||||
Network.IPForward, config_parse_address_family_with_kernel, 0, offsetof(Network, ip_forward)
|
||||
Network.IPMasquerade, config_parse_bool, 0, offsetof(Network, ip_masquerade)
|
||||
Network.IPv6PrivacyExtensions, config_parse_ipv6_privacy_extensions, 0, offsetof(Network, ipv6_privacy_extensions)
|
||||
Network.IPv6AcceptRA, config_parse_tristate, 0, offsetof(Network, ipv6_accept_ra)
|
||||
Network.IPv6AcceptRouterAdvertisements, config_parse_tristate, 0, offsetof(Network, ipv6_accept_ra)
|
||||
Network.IPv6DuplicateAddressDetection, config_parse_int, 0, offsetof(Network, ipv6_dad_transmits)
|
||||
Network.IPv6HopLimit, config_parse_int, 0, offsetof(Network, ipv6_hop_limit)
|
||||
Network.IPv6ProxyNDP, config_parse_tristate, 0, offsetof(Network, ipv6_proxy_ndp)
|
||||
Network.IPv6MTUBytes, config_parse_mtu, AF_INET6, offsetof(Network, ipv6_mtu)
|
||||
Network.ActiveSlave, config_parse_bool, 0, offsetof(Network, active_slave)
|
||||
Network.PrimarySlave, config_parse_bool, 0, offsetof(Network, primary_slave)
|
||||
Network.IPv4ProxyARP, config_parse_tristate, 0, offsetof(Network, proxy_arp)
|
||||
Network.ProxyARP, config_parse_tristate, 0, offsetof(Network, proxy_arp)
|
||||
Network.IPv6ProxyNDPAddress, config_parse_ipv6_proxy_ndp_address, 0, 0
|
||||
Network.BindCarrier, config_parse_strv, 0, offsetof(Network, bind_carrier)
|
||||
Network.ConfigureWithoutCarrier, config_parse_bool, 0, offsetof(Network, configure_without_carrier)
|
||||
Network.IgnoreCarrierLoss, config_parse_bool, 0, offsetof(Network, ignore_carrier_loss)
|
||||
Network.KeepConfiguration, config_parse_keep_configuration, 0, offsetof(Network, keep_configuration)
|
||||
Address.Address, config_parse_address, 0, 0
|
||||
Address.Peer, config_parse_address, 0, 0
|
||||
Address.Broadcast, config_parse_broadcast, 0, 0
|
||||
Address.Label, config_parse_label, 0, 0
|
||||
Address.PreferredLifetime, config_parse_lifetime, 0, 0
|
||||
Address.HomeAddress, config_parse_address_flags, 0, 0
|
||||
Address.ManageTemporaryAddress, config_parse_address_flags, 0, 0
|
||||
Address.PrefixRoute, config_parse_address_flags, 0, 0 /* deprecated */
|
||||
Address.AddPrefixRoute, config_parse_address_flags, 0, 0
|
||||
Address.AutoJoin, config_parse_address_flags, 0, 0
|
||||
Address.DuplicateAddressDetection, config_parse_duplicate_address_detection, 0, 0
|
||||
Address.Scope, config_parse_address_scope, 0, 0
|
||||
IPv6AddressLabel.Prefix, config_parse_address_label_prefix, 0, 0
|
||||
IPv6AddressLabel.Label, config_parse_address_label, 0, 0
|
||||
Neighbor.Address, config_parse_neighbor_address, 0, 0
|
||||
Neighbor.LinkLayerAddress, config_parse_neighbor_lladdr, 0, 0
|
||||
Neighbor.MACAddress, config_parse_neighbor_hwaddr, 0, 0 /* deprecated */
|
||||
RoutingPolicyRule.TypeOfService, config_parse_routing_policy_rule_tos, 0, 0
|
||||
RoutingPolicyRule.Priority, config_parse_routing_policy_rule_priority, 0, 0
|
||||
RoutingPolicyRule.Table, config_parse_routing_policy_rule_table, 0, 0
|
||||
RoutingPolicyRule.FirewallMark, config_parse_routing_policy_rule_fwmark_mask, 0, 0
|
||||
RoutingPolicyRule.From, config_parse_routing_policy_rule_prefix, 0, 0
|
||||
RoutingPolicyRule.To, config_parse_routing_policy_rule_prefix, 0, 0
|
||||
RoutingPolicyRule.IncomingInterface, config_parse_routing_policy_rule_device, 0, 0
|
||||
RoutingPolicyRule.OutgoingInterface, config_parse_routing_policy_rule_device, 0, 0
|
||||
RoutingPolicyRule.IPProtocol, config_parse_routing_policy_rule_ip_protocol, 0, 0
|
||||
RoutingPolicyRule.SourcePort, config_parse_routing_policy_rule_port_range, 0, 0
|
||||
RoutingPolicyRule.DestinationPort, config_parse_routing_policy_rule_port_range, 0, 0
|
||||
RoutingPolicyRule.InvertRule, config_parse_routing_policy_rule_invert, 0, 0
|
||||
RoutingPolicyRule.Family, config_parse_routing_policy_rule_family, 0, 0
|
||||
RoutingPolicyRule.User, config_parse_routing_policy_rule_uid_range, 0, 0
|
||||
RoutingPolicyRule.SuppressPrefixLength, config_parse_routing_policy_rule_suppress_prefixlen, 0, 0
|
||||
Route.Gateway, config_parse_gateway, 0, 0
|
||||
Route.Destination, config_parse_destination, 0, 0
|
||||
Route.Source, config_parse_destination, 0, 0
|
||||
Route.Metric, config_parse_route_priority, 0, 0
|
||||
Route.Scope, config_parse_route_scope, 0, 0
|
||||
Route.PreferredSource, config_parse_preferred_src, 0, 0
|
||||
Route.Table, config_parse_route_table, 0, 0
|
||||
Route.MTUBytes, config_parse_route_mtu, AF_UNSPEC, 0
|
||||
Route.GatewayOnLink, config_parse_gateway_onlink, 0, 0
|
||||
Route.GatewayOnlink, config_parse_gateway_onlink, 0, 0
|
||||
Route.IPv6Preference, config_parse_ipv6_route_preference, 0, 0
|
||||
Route.Protocol, config_parse_route_protocol, 0, 0
|
||||
Route.Type, config_parse_route_type, 0, 0
|
||||
Route.InitialCongestionWindow, config_parse_tcp_window, 0, 0
|
||||
Route.InitialAdvertisedReceiveWindow, config_parse_tcp_window, 0, 0
|
||||
Route.QuickAck, config_parse_quickack, 0, 0
|
||||
Route.FastOpenNoCookie, config_parse_fast_open_no_cookie, 0, 0
|
||||
Route.TTLPropagate, config_parse_route_ttl_propagate, 0, 0
|
||||
Route.MultiPathRoute, config_parse_multipath_route, 0, 0
|
||||
NextHop.Id, config_parse_nexthop_id, 0, 0
|
||||
NextHop.Gateway, config_parse_nexthop_gateway, 0, 0
|
||||
DHCPv4.ClientIdentifier, config_parse_dhcp_client_identifier, 0, offsetof(Network, dhcp_client_identifier)
|
||||
DHCPv4.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp_use_dns)
|
||||
DHCPv4.RoutesToDNS, config_parse_bool, 0, offsetof(Network, dhcp_routes_to_dns)
|
||||
DHCPv4.UseNTP, config_parse_bool, 0, offsetof(Network, dhcp_use_ntp)
|
||||
DHCPv4.UseSIP, config_parse_bool, 0, offsetof(Network, dhcp_use_sip)
|
||||
DHCPv4.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_use_mtu)
|
||||
DHCPv4.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname)
|
||||
DHCPv4.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains)
|
||||
DHCPv4.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_use_routes)
|
||||
DHCPv4.RequestOptions, config_parse_dhcp_request_options, 0, 0
|
||||
DHCPv4.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize)
|
||||
DHCPv4.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_send_hostname)
|
||||
DHCPv4.Hostname, config_parse_hostname, 0, offsetof(Network, dhcp_hostname)
|
||||
DHCPv4.RequestBroadcast, config_parse_bool, 0, offsetof(Network, dhcp_broadcast)
|
||||
DHCPv4.VendorClassIdentifier, config_parse_string, 0, offsetof(Network, dhcp_vendor_class_identifier)
|
||||
DHCPv4.MaxAttempts, config_parse_dhcp_max_attempts, 0, 0
|
||||
DHCPv4.UserClass, config_parse_dhcp_user_class, 0, offsetof(Network, dhcp_user_class)
|
||||
DHCPv4.DUIDType, config_parse_duid_type, 0, offsetof(Network, duid)
|
||||
DHCPv4.DUIDRawData, config_parse_duid_rawdata, 0, offsetof(Network, duid)
|
||||
DHCPv4.RouteMetric, config_parse_unsigned, 0, offsetof(Network, dhcp_route_metric)
|
||||
DHCPv4.RouteTable, config_parse_section_route_table, 0, 0
|
||||
DHCPv4.UseTimezone, config_parse_bool, 0, offsetof(Network, dhcp_use_timezone)
|
||||
DHCPv4.IAID, config_parse_iaid, 0, 0
|
||||
DHCPv4.ListenPort, config_parse_uint16, 0, offsetof(Network, dhcp_client_port)
|
||||
DHCPv4.SendRelease, config_parse_bool, 0, offsetof(Network, dhcp_send_release)
|
||||
DHCPv4.SendDecline, config_parse_bool, 0, offsetof(Network, dhcp_send_decline)
|
||||
DHCPv4.BlackList, config_parse_dhcp_black_listed_ip_address, 0, 0
|
||||
DHCPv4.IPServiceType, config_parse_ip_service_type, 0, offsetof(Network, ip_service_type)
|
||||
DHCPv4.SendOption, config_parse_dhcp_send_option, 0, offsetof(Network, dhcp_client_send_options)
|
||||
DHCPv4.RouteMTUBytes, config_parse_mtu, AF_INET, offsetof(Network, dhcp_route_mtu)
|
||||
DHCPv6.UseDNS, config_parse_bool, 0, offsetof(Network, dhcp6_use_dns)
|
||||
DHCPv6.UseNTP, config_parse_bool, 0, offsetof(Network, dhcp6_use_ntp)
|
||||
DHCPv6.RapidCommit, config_parse_bool, 0, offsetof(Network, rapid_commit)
|
||||
DHCPv6.ForceDHCPv6PDOtherInformation, config_parse_bool, 0, offsetof(Network, dhcp6_force_pd_other_information)
|
||||
DHCPv6.PrefixDelegationHint, config_parse_dhcp6_pd_hint, 0, 0
|
||||
IPv6AcceptRA.UseAutonomousPrefix, config_parse_bool, 0, offsetof(Network, ipv6_accept_ra_use_autonomous_prefix)
|
||||
IPv6AcceptRA.UseOnLinkPrefix, config_parse_bool, 0, offsetof(Network, ipv6_accept_ra_use_onlink_prefix)
|
||||
IPv6AcceptRA.UseDNS, config_parse_bool, 0, offsetof(Network, ipv6_accept_ra_use_dns)
|
||||
IPv6AcceptRA.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, ipv6_accept_ra_use_domains)
|
||||
IPv6AcceptRA.RouteTable, config_parse_section_route_table, 0, 0
|
||||
IPv6AcceptRA.BlackList, config_parse_ndisc_black_listed_prefix, 0, 0
|
||||
DHCPServer.MaxLeaseTimeSec, config_parse_sec, 0, offsetof(Network, dhcp_server_max_lease_time_usec)
|
||||
DHCPServer.DefaultLeaseTimeSec, config_parse_sec, 0, offsetof(Network, dhcp_server_default_lease_time_usec)
|
||||
DHCPServer.EmitDNS, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_dns)
|
||||
DHCPServer.DNS, config_parse_dhcp_server_dns, 0, 0
|
||||
DHCPServer.EmitNTP, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_ntp)
|
||||
DHCPServer.NTP, config_parse_dhcp_server_ntp, 0, 0
|
||||
DHCPServer.EmitSIP, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_sip)
|
||||
DHCPServer.SIP, config_parse_dhcp_server_sip, 0, 0
|
||||
DHCPServer.EmitRouter, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_router)
|
||||
DHCPServer.EmitTimezone, config_parse_bool, 0, offsetof(Network, dhcp_server_emit_timezone)
|
||||
DHCPServer.Timezone, config_parse_timezone, 0, offsetof(Network, dhcp_server_timezone)
|
||||
DHCPServer.PoolOffset, config_parse_uint32, 0, offsetof(Network, dhcp_server_pool_offset)
|
||||
DHCPServer.PoolSize, config_parse_uint32, 0, offsetof(Network, dhcp_server_pool_size)
|
||||
DHCPServer.SendOption, config_parse_dhcp_send_option, 0, offsetof(Network, dhcp_server_send_options)
|
||||
Bridge.Cost, config_parse_uint32, 0, offsetof(Network, cost)
|
||||
Bridge.UseBPDU, config_parse_tristate, 0, offsetof(Network, use_bpdu)
|
||||
Bridge.HairPin, config_parse_tristate, 0, offsetof(Network, hairpin)
|
||||
Bridge.FastLeave, config_parse_tristate, 0, offsetof(Network, fast_leave)
|
||||
Bridge.AllowPortToBeRoot, config_parse_tristate, 0, offsetof(Network, allow_port_to_be_root)
|
||||
Bridge.UnicastFlood, config_parse_tristate, 0, offsetof(Network, unicast_flood)
|
||||
Bridge.MulticastFlood, config_parse_tristate, 0, offsetof(Network, multicast_flood)
|
||||
Bridge.MulticastToUnicast, config_parse_tristate, 0, offsetof(Network, multicast_to_unicast)
|
||||
Bridge.NeighborSuppression, config_parse_tristate, 0, offsetof(Network, neighbor_suppression)
|
||||
Bridge.Learning, config_parse_tristate, 0, offsetof(Network, learning)
|
||||
Bridge.ProxyARP, config_parse_tristate, 0, offsetof(Network, bridge_proxy_arp)
|
||||
Bridge.ProxyARPWiFi, config_parse_tristate, 0, offsetof(Network, bridge_proxy_arp_wifi)
|
||||
Bridge.Priority, config_parse_bridge_port_priority, 0, offsetof(Network, priority)
|
||||
Bridge.MulticastRouter, config_parse_multicast_router, 0, offsetof(Network, multicast_router)
|
||||
BridgeFDB.MACAddress, config_parse_fdb_hwaddr, 0, 0
|
||||
BridgeFDB.VLANId, config_parse_fdb_vlan_id, 0, 0
|
||||
BridgeFDB.Destination, config_parse_fdb_destination, 0, 0
|
||||
BridgeFDB.VNI, config_parse_fdb_vxlan_vni, 0, 0
|
||||
BridgeFDB.AssociatedWith, config_parse_fdb_ntf_flags, 0, 0
|
||||
BridgeVLAN.PVID, config_parse_brvlan_pvid, 0, 0
|
||||
BridgeVLAN.VLAN, config_parse_brvlan_vlan, 0, 0
|
||||
BridgeVLAN.EgressUntagged, config_parse_brvlan_untagged, 0, 0
|
||||
Network.IPv6PrefixDelegation, config_parse_router_prefix_delegation, 0, 0
|
||||
IPv6PrefixDelegation.RouterLifetimeSec, config_parse_sec, 0, offsetof(Network, router_lifetime_usec)
|
||||
IPv6PrefixDelegation.Managed, config_parse_bool, 0, offsetof(Network, router_managed)
|
||||
IPv6PrefixDelegation.OtherInformation, config_parse_bool, 0, offsetof(Network, router_other_information)
|
||||
IPv6PrefixDelegation.RouterPreference, config_parse_router_preference, 0, 0
|
||||
IPv6PrefixDelegation.EmitDNS, config_parse_bool, 0, offsetof(Network, router_emit_dns)
|
||||
IPv6PrefixDelegation.DNS, config_parse_radv_dns, 0, 0
|
||||
IPv6PrefixDelegation.EmitDomains, config_parse_bool, 0, offsetof(Network, router_emit_domains)
|
||||
IPv6PrefixDelegation.Domains, config_parse_radv_search_domains, 0, 0
|
||||
IPv6PrefixDelegation.DNSLifetimeSec, config_parse_sec, 0, offsetof(Network, router_dns_lifetime_usec)
|
||||
IPv6Prefix.Prefix, config_parse_prefix, 0, 0
|
||||
IPv6Prefix.OnLink, config_parse_prefix_flags, 0, 0
|
||||
IPv6Prefix.AddressAutoconfiguration, config_parse_prefix_flags, 0, 0
|
||||
IPv6Prefix.ValidLifetimeSec, config_parse_prefix_lifetime, 0, 0
|
||||
IPv6Prefix.PreferredLifetimeSec, config_parse_prefix_lifetime, 0, 0
|
||||
IPv6RoutePrefix.Route, config_parse_route_prefix, 0, 0
|
||||
IPv6RoutePrefix.LifetimeSec, config_parse_route_prefix_lifetime, 0, 0
|
||||
CAN.BitRate, config_parse_si_uint64, 0, offsetof(Network, can_bitrate)
|
||||
CAN.SamplePoint, config_parse_permille, 0, offsetof(Network, can_sample_point)
|
||||
CAN.RestartSec, config_parse_sec, 0, offsetof(Network, can_restart_us)
|
||||
CAN.TripleSampling, config_parse_tristate, 0, offsetof(Network, can_triple_sampling)
|
||||
ControlledDelay.Parent, config_parse_qdisc_parent, QDISC_KIND_CODEL, 0
|
||||
ControlledDelay.PacketLimit, config_parse_controlled_delay_u32, QDISC_KIND_CODEL, 0
|
||||
ControlledDelay.TargetSec, config_parse_controlled_delay_usec, QDISC_KIND_CODEL, 0
|
||||
ControlledDelay.IntervalSec, config_parse_controlled_delay_usec, QDISC_KIND_CODEL, 0
|
||||
ControlledDelay.CEThresholdSec, config_parse_controlled_delay_usec, QDISC_KIND_CODEL, 0
|
||||
ControlledDelay.ECN, config_parse_controlled_delay_bool, QDISC_KIND_CODEL, 0
|
||||
FairQueueing.Parent, config_parse_qdisc_parent, QDISC_KIND_FQ, 0
|
||||
FairQueueing.PacketLimit, config_parse_fair_queue_traffic_policing_u32, QDISC_KIND_FQ, 0
|
||||
FairQueueing.FlowLimit, config_parse_fair_queue_traffic_policing_u32, QDISC_KIND_FQ, 0
|
||||
FairQueueing.Quantum, config_parse_fair_queue_traffic_policing_size, QDISC_KIND_FQ, 0
|
||||
FairQueueing.InitialQuantum, config_parse_fair_queue_traffic_policing_size, QDISC_KIND_FQ, 0
|
||||
FairQueueing.MaximumRate, config_parse_fair_queue_traffic_policing_max_rate, QDISC_KIND_FQ, 0
|
||||
FairQueueing.Buckets, config_parse_fair_queue_traffic_policing_u32, QDISC_KIND_FQ, 0
|
||||
FairQueueing.OrphanMask, config_parse_fair_queue_traffic_policing_u32, QDISC_KIND_FQ, 0
|
||||
FairQueueing.Pacing, config_parse_fair_queue_traffic_policing_bool, QDISC_KIND_FQ, 0
|
||||
FairQueueing.CEThresholdSec, config_parse_fair_queue_traffic_policing_usec, QDISC_KIND_FQ, 0
|
||||
FairQueueingControlledDelay.Parent, config_parse_qdisc_parent, QDISC_KIND_FQ_CODEL, 0
|
||||
FairQueueingControlledDelay.PacketLimit, config_parse_fair_queueing_controlled_delay_u32, QDISC_KIND_FQ_CODEL, 0
|
||||
FairQueueingControlledDelay.MemoryLimit, config_parse_fair_queueing_controlled_delay_size, QDISC_KIND_FQ_CODEL, 0
|
||||
FairQueueingControlledDelay.Flows, config_parse_fair_queueing_controlled_delay_u32, QDISC_KIND_FQ_CODEL, 0
|
||||
FairQueueingControlledDelay.Quantum, config_parse_fair_queueing_controlled_delay_size, QDISC_KIND_FQ_CODEL, 0
|
||||
FairQueueingControlledDelay.TargetSec, config_parse_fair_queueing_controlled_delay_usec, QDISC_KIND_FQ_CODEL, 0
|
||||
FairQueueingControlledDelay.IntervalSec, config_parse_fair_queueing_controlled_delay_usec, QDISC_KIND_FQ_CODEL, 0
|
||||
FairQueueingControlledDelay.CEThresholdSec, config_parse_fair_queueing_controlled_delay_usec, QDISC_KIND_FQ_CODEL, 0
|
||||
FairQueueingControlledDelay.ECN, config_parse_fair_queueing_controlled_delay_bool, QDISC_KIND_FQ_CODEL, 0
|
||||
NetworkEmulator.Parent, config_parse_qdisc_parent, QDISC_KIND_NETEM, 0
|
||||
NetworkEmulator.DelaySec, config_parse_network_emulator_delay, QDISC_KIND_NETEM, 0
|
||||
NetworkEmulator.DelayJitterSec, config_parse_network_emulator_delay, QDISC_KIND_NETEM, 0
|
||||
NetworkEmulator.LossRate, config_parse_network_emulator_rate, QDISC_KIND_NETEM, 0
|
||||
NetworkEmulator.DuplicateRate, config_parse_network_emulator_rate, QDISC_KIND_NETEM, 0
|
||||
NetworkEmulator.PacketLimit, config_parse_network_emulator_packet_limit, QDISC_KIND_NETEM, 0
|
||||
StochasticFairnessQueueing.Parent, config_parse_qdisc_parent, QDISC_KIND_SFQ, 0
|
||||
StochasticFairnessQueueing.PerturbPeriodSec, config_parse_stochastic_fairness_queueing_perturb_period, QDISC_KIND_SFQ, 0
|
||||
TokenBucketFilter.Parent, config_parse_qdisc_parent, QDISC_KIND_TBF, 0
|
||||
TokenBucketFilter.Rate, config_parse_token_bucket_filter_size, QDISC_KIND_TBF, 0
|
||||
TokenBucketFilter.Burst, config_parse_token_bucket_filter_size, QDISC_KIND_TBF, 0
|
||||
TokenBucketFilter.LimitSize, config_parse_token_bucket_filter_size, QDISC_KIND_TBF, 0
|
||||
TokenBucketFilter.MTUBytes, config_parse_token_bucket_filter_size, QDISC_KIND_TBF, 0
|
||||
TokenBucketFilter.MPUBytes, config_parse_token_bucket_filter_size, QDISC_KIND_TBF, 0
|
||||
TokenBucketFilter.PeakRate, config_parse_token_bucket_filter_size, QDISC_KIND_TBF, 0
|
||||
TokenBucketFilter.LatencySec, config_parse_token_bucket_filter_latency, QDISC_KIND_TBF, 0
|
||||
/* backwards compatibility: do not add new entries to this section */
|
||||
Network.IPv4LL, config_parse_ipv4ll, 0, offsetof(Network, link_local)
|
||||
DHCP.ClientIdentifier, config_parse_dhcp_client_identifier, 0, offsetof(Network, dhcp_client_identifier)
|
||||
DHCP.UseDNS, config_parse_dhcp_use_dns, 0, 0
|
||||
DHCP.UseNTP, config_parse_dhcp_use_ntp, 0, 0
|
||||
DHCP.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_use_mtu)
|
||||
DHCP.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname)
|
||||
DHCP.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains)
|
||||
DHCP.UseDomainName, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains)
|
||||
DHCP.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_use_routes)
|
||||
DHCP.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize)
|
||||
DHCP.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_send_hostname)
|
||||
DHCP.Hostname, config_parse_hostname, 0, offsetof(Network, dhcp_hostname)
|
||||
DHCP.RequestBroadcast, config_parse_bool, 0, offsetof(Network, dhcp_broadcast)
|
||||
DHCP.CriticalConnection, config_parse_tristate, 0, offsetof(Network, dhcp_critical)
|
||||
DHCP.VendorClassIdentifier, config_parse_string, 0, offsetof(Network, dhcp_vendor_class_identifier)
|
||||
DHCP.UserClass, config_parse_dhcp_user_class, 0, offsetof(Network, dhcp_user_class)
|
||||
DHCP.DUIDType, config_parse_duid_type, 0, offsetof(Network, duid)
|
||||
DHCP.DUIDRawData, config_parse_duid_rawdata, 0, offsetof(Network, duid)
|
||||
DHCP.RouteMetric, config_parse_unsigned, 0, offsetof(Network, dhcp_route_metric)
|
||||
DHCP.RouteTable, config_parse_section_route_table, 0, 0
|
||||
DHCP.UseTimezone, config_parse_bool, 0, offsetof(Network, dhcp_use_timezone)
|
||||
DHCP.IAID, config_parse_iaid, 0, 0
|
||||
DHCP.ListenPort, config_parse_uint16, 0, offsetof(Network, dhcp_client_port)
|
||||
DHCP.RapidCommit, config_parse_bool, 0, offsetof(Network, rapid_commit)
|
||||
DHCP.ForceDHCPv6PDOtherInformation, config_parse_bool, 0, offsetof(Network, dhcp6_force_pd_other_information)
|
||||
DHCPv4.UseDomainName, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains)
|
||||
DHCPv4.CriticalConnection, config_parse_tristate, 0, offsetof(Network, dhcp_critical)
|
||||
Network.IPv4LL, config_parse_ipv4ll, 0, offsetof(Network, link_local)
|
||||
DHCP.ClientIdentifier, config_parse_dhcp_client_identifier, 0, offsetof(Network, dhcp_client_identifier)
|
||||
DHCP.UseDNS, config_parse_dhcp_use_dns, 0, 0
|
||||
DHCP.UseNTP, config_parse_dhcp_use_ntp, 0, 0
|
||||
DHCP.UseMTU, config_parse_bool, 0, offsetof(Network, dhcp_use_mtu)
|
||||
DHCP.UseHostname, config_parse_bool, 0, offsetof(Network, dhcp_use_hostname)
|
||||
DHCP.UseDomains, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains)
|
||||
DHCP.UseDomainName, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains)
|
||||
DHCP.UseRoutes, config_parse_bool, 0, offsetof(Network, dhcp_use_routes)
|
||||
DHCP.Anonymize, config_parse_bool, 0, offsetof(Network, dhcp_anonymize)
|
||||
DHCP.SendHostname, config_parse_bool, 0, offsetof(Network, dhcp_send_hostname)
|
||||
DHCP.Hostname, config_parse_hostname, 0, offsetof(Network, dhcp_hostname)
|
||||
DHCP.RequestBroadcast, config_parse_bool, 0, offsetof(Network, dhcp_broadcast)
|
||||
DHCP.CriticalConnection, config_parse_tristate, 0, offsetof(Network, dhcp_critical)
|
||||
DHCP.VendorClassIdentifier, config_parse_string, 0, offsetof(Network, dhcp_vendor_class_identifier)
|
||||
DHCP.UserClass, config_parse_dhcp_user_class, 0, offsetof(Network, dhcp_user_class)
|
||||
DHCP.DUIDType, config_parse_duid_type, 0, offsetof(Network, duid)
|
||||
DHCP.DUIDRawData, config_parse_duid_rawdata, 0, offsetof(Network, duid)
|
||||
DHCP.RouteMetric, config_parse_unsigned, 0, offsetof(Network, dhcp_route_metric)
|
||||
DHCP.RouteTable, config_parse_section_route_table, 0, 0
|
||||
DHCP.UseTimezone, config_parse_bool, 0, offsetof(Network, dhcp_use_timezone)
|
||||
DHCP.IAID, config_parse_iaid, 0, 0
|
||||
DHCP.ListenPort, config_parse_uint16, 0, offsetof(Network, dhcp_client_port)
|
||||
DHCP.RapidCommit, config_parse_bool, 0, offsetof(Network, rapid_commit)
|
||||
DHCP.ForceDHCPv6PDOtherInformation, config_parse_bool, 0, offsetof(Network, dhcp6_force_pd_other_information)
|
||||
DHCPv4.UseDomainName, config_parse_dhcp_use_domains, 0, offsetof(Network, dhcp_use_domains)
|
||||
DHCPv4.CriticalConnection, config_parse_tristate, 0, offsetof(Network, dhcp_critical)
|
||||
TrafficControlQueueingDiscipline.Parent, config_parse_qdisc_parent, QDISC_KIND_NETEM, 0
|
||||
TrafficControlQueueingDiscipline.NetworkEmulatorDelaySec, config_parse_network_emulator_delay, 0, 0
|
||||
TrafficControlQueueingDiscipline.NetworkEmulatorDelayJitterSec, config_parse_network_emulator_delay, 0, 0
|
||||
TrafficControlQueueingDiscipline.NetworkEmulatorLossRate, config_parse_network_emulator_rate, 0, 0
|
||||
TrafficControlQueueingDiscipline.NetworkEmulatorDuplicateRate, config_parse_network_emulator_rate, 0, 0
|
||||
TrafficControlQueueingDiscipline.NetworkEmulatorPacketLimit, config_parse_network_emulator_packet_limit, 0, 0
|
||||
|
@ -481,7 +481,13 @@ int network_load_one(Manager *manager, OrderedHashmap **networks, const char *fi
|
||||
"IPv6Prefix\0"
|
||||
"IPv6RoutePrefix\0"
|
||||
"TrafficControlQueueingDiscipline\0"
|
||||
"CAN\0",
|
||||
"CAN\0"
|
||||
"ControlledDelay\0"
|
||||
"FairQueueing\0"
|
||||
"FairQueueingControlledDelay\0"
|
||||
"NetworkEmulator\0"
|
||||
"StochasticFairnessQueueing\0"
|
||||
"TokenBucketFilter\0",
|
||||
config_item_perf_lookup, network_network_gperf_lookup,
|
||||
CONFIG_PARSE_WARN, network);
|
||||
if (r < 0)
|
||||
|
@ -74,7 +74,7 @@ static int controlled_delay_fill_message(Link *link, QDisc *qdisc, sd_netlink_me
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_controlled_delay_u32(
|
||||
int config_parse_controlled_delay_u32(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -125,7 +125,7 @@ int config_parse_tc_controlled_delay_u32(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_controlled_delay_usec(
|
||||
int config_parse_controlled_delay_usec(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -157,17 +157,17 @@ int config_parse_tc_controlled_delay_usec(
|
||||
|
||||
cd = CODEL(qdisc);
|
||||
|
||||
if (streq(lvalue, "ControlledDelayTargetSec"))
|
||||
if (streq(lvalue, "TargetSec"))
|
||||
p = &cd->target_usec;
|
||||
else if (streq(lvalue, "ControlledDelayIntervalSec"))
|
||||
else if (streq(lvalue, "IntervalSec"))
|
||||
p = &cd->interval_usec;
|
||||
else if (streq(lvalue, "ControlledDelayCEThresholdSec"))
|
||||
else if (streq(lvalue, "CEThresholdSec"))
|
||||
p = &cd->ce_threshold_usec;
|
||||
else
|
||||
assert_not_reached("Invalid lvalue");
|
||||
|
||||
if (isempty(rvalue)) {
|
||||
if (streq(lvalue, "ControlledDelayCEThresholdSec"))
|
||||
if (streq(lvalue, "CEThresholdSec"))
|
||||
*p = USEC_INFINITY;
|
||||
else
|
||||
*p = 0;
|
||||
@ -189,7 +189,7 @@ int config_parse_tc_controlled_delay_usec(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_controlled_delay_bool(
|
||||
int config_parse_controlled_delay_bool(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
|
@ -19,6 +19,6 @@ typedef struct ControlledDelay {
|
||||
DEFINE_QDISC_CAST(CODEL, ControlledDelay);
|
||||
extern const QDiscVTable codel_vtable;
|
||||
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_controlled_delay_u32);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_controlled_delay_usec);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_controlled_delay_bool);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_controlled_delay_u32);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_controlled_delay_usec);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_controlled_delay_bool);
|
||||
|
@ -10,8 +10,8 @@
|
||||
#include "qdisc.h"
|
||||
#include "string-util.h"
|
||||
|
||||
static int fair_queuing_controlled_delay_init(QDisc *qdisc) {
|
||||
FairQueuingControlledDelay *fqcd;
|
||||
static int fair_queueing_controlled_delay_init(QDisc *qdisc) {
|
||||
FairQueueingControlledDelay *fqcd;
|
||||
|
||||
assert(qdisc);
|
||||
|
||||
@ -24,8 +24,8 @@ static int fair_queuing_controlled_delay_init(QDisc *qdisc) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int fair_queuing_controlled_delay_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
|
||||
FairQueuingControlledDelay *fqcd;
|
||||
static int fair_queueing_controlled_delay_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
|
||||
FairQueueingControlledDelay *fqcd;
|
||||
int r;
|
||||
|
||||
assert(link);
|
||||
@ -93,7 +93,7 @@ static int fair_queuing_controlled_delay_fill_message(Link *link, QDisc *qdisc,
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_fair_queuing_controlled_delay_u32(
|
||||
int config_parse_fair_queueing_controlled_delay_u32(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -106,7 +106,7 @@ int config_parse_tc_fair_queuing_controlled_delay_u32(
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
FairQueuingControlledDelay *fqcd;
|
||||
FairQueueingControlledDelay *fqcd;
|
||||
Network *network = data;
|
||||
uint32_t *p;
|
||||
int r;
|
||||
@ -125,9 +125,9 @@ int config_parse_tc_fair_queuing_controlled_delay_u32(
|
||||
|
||||
fqcd = FQ_CODEL(qdisc);
|
||||
|
||||
if (streq(lvalue, "FairQueuingControlledDelayPacketLimit"))
|
||||
if (streq(lvalue, "PacketLimit"))
|
||||
p = &fqcd->packet_limit;
|
||||
else if (streq(lvalue, "FairQueuingControlledDelayFlows"))
|
||||
else if (streq(lvalue, "Flows"))
|
||||
p = &fqcd->flows;
|
||||
else
|
||||
assert_not_reached("Invalid lvalue.");
|
||||
@ -152,7 +152,7 @@ int config_parse_tc_fair_queuing_controlled_delay_u32(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_fair_queuing_controlled_delay_usec(
|
||||
int config_parse_fair_queueing_controlled_delay_usec(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -165,7 +165,7 @@ int config_parse_tc_fair_queuing_controlled_delay_usec(
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
FairQueuingControlledDelay *fqcd;
|
||||
FairQueueingControlledDelay *fqcd;
|
||||
Network *network = data;
|
||||
usec_t *p;
|
||||
int r;
|
||||
@ -184,17 +184,17 @@ int config_parse_tc_fair_queuing_controlled_delay_usec(
|
||||
|
||||
fqcd = FQ_CODEL(qdisc);
|
||||
|
||||
if (streq(lvalue, "FairQueuingControlledDelayTargetSec"))
|
||||
if (streq(lvalue, "TargetSec"))
|
||||
p = &fqcd->target_usec;
|
||||
else if (streq(lvalue, "FairQueuingControlledDelayIntervalSec"))
|
||||
else if (streq(lvalue, "IntervalSec"))
|
||||
p = &fqcd->interval_usec;
|
||||
else if (streq(lvalue, "FairQueuingControlledDelayCEThresholdSec"))
|
||||
else if (streq(lvalue, "CEThresholdSec"))
|
||||
p = &fqcd->ce_threshold_usec;
|
||||
else
|
||||
assert_not_reached("Invalid lvalue.");
|
||||
|
||||
if (isempty(rvalue)) {
|
||||
if (streq(lvalue, "FairQueuingControlledDelayCEThresholdSec"))
|
||||
if (streq(lvalue, "CEThresholdSec"))
|
||||
*p = USEC_INFINITY;
|
||||
else
|
||||
*p = 0;
|
||||
@ -216,7 +216,7 @@ int config_parse_tc_fair_queuing_controlled_delay_usec(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_fair_queuing_controlled_delay_bool(
|
||||
int config_parse_fair_queueing_controlled_delay_bool(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -229,7 +229,7 @@ int config_parse_tc_fair_queuing_controlled_delay_bool(
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
FairQueuingControlledDelay *fqcd;
|
||||
FairQueueingControlledDelay *fqcd;
|
||||
Network *network = data;
|
||||
int r;
|
||||
|
||||
@ -268,7 +268,7 @@ int config_parse_tc_fair_queuing_controlled_delay_bool(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_fair_queuing_controlled_delay_size(
|
||||
int config_parse_fair_queueing_controlled_delay_size(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -281,7 +281,7 @@ int config_parse_tc_fair_queuing_controlled_delay_size(
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
FairQueuingControlledDelay *fqcd;
|
||||
FairQueueingControlledDelay *fqcd;
|
||||
Network *network = data;
|
||||
uint64_t sz;
|
||||
uint32_t *p;
|
||||
@ -301,15 +301,15 @@ int config_parse_tc_fair_queuing_controlled_delay_size(
|
||||
|
||||
fqcd = FQ_CODEL(qdisc);
|
||||
|
||||
if (streq(lvalue, "FairQueuingControlledDelayMemoryLimit"))
|
||||
if (streq(lvalue, "MemoryLimit"))
|
||||
p = &fqcd->memory_limit;
|
||||
else if (streq(lvalue, "FairQueuingControlledDelayQuantum"))
|
||||
else if (streq(lvalue, "Quantum"))
|
||||
p = &fqcd->quantum;
|
||||
else
|
||||
assert_not_reached("Invalid lvalue.");
|
||||
|
||||
if (isempty(rvalue)) {
|
||||
if (streq(lvalue, "FairQueuingControlledMemoryLimit"))
|
||||
if (streq(lvalue, "MemoryLimit"))
|
||||
*p = UINT32_MAX;
|
||||
else
|
||||
*p = 0;
|
||||
@ -339,8 +339,8 @@ int config_parse_tc_fair_queuing_controlled_delay_size(
|
||||
}
|
||||
|
||||
const QDiscVTable fq_codel_vtable = {
|
||||
.object_size = sizeof(FairQueuingControlledDelay),
|
||||
.object_size = sizeof(FairQueueingControlledDelay),
|
||||
.tca_kind = "fq_codel",
|
||||
.init = fair_queuing_controlled_delay_init,
|
||||
.fill_message = fair_queuing_controlled_delay_fill_message,
|
||||
.init = fair_queueing_controlled_delay_init,
|
||||
.fill_message = fair_queueing_controlled_delay_fill_message,
|
||||
};
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include "qdisc.h"
|
||||
#include "time-util.h"
|
||||
|
||||
typedef struct FairQueuingControlledDelay {
|
||||
typedef struct FairQueueingControlledDelay {
|
||||
QDisc meta;
|
||||
|
||||
uint32_t packet_limit;
|
||||
@ -17,12 +17,12 @@ typedef struct FairQueuingControlledDelay {
|
||||
usec_t interval_usec;
|
||||
usec_t ce_threshold_usec;
|
||||
int ecn;
|
||||
} FairQueuingControlledDelay;
|
||||
} FairQueueingControlledDelay;
|
||||
|
||||
DEFINE_QDISC_CAST(FQ_CODEL, FairQueuingControlledDelay);
|
||||
DEFINE_QDISC_CAST(FQ_CODEL, FairQueueingControlledDelay);
|
||||
extern const QDiscVTable fq_codel_vtable;
|
||||
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_fair_queuing_controlled_delay_u32);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_fair_queuing_controlled_delay_usec);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_fair_queuing_controlled_delay_bool);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_fair_queuing_controlled_delay_size);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_fair_queueing_controlled_delay_u32);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_fair_queueing_controlled_delay_usec);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_fair_queueing_controlled_delay_bool);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_fair_queueing_controlled_delay_size);
|
||||
|
@ -12,7 +12,7 @@
|
||||
#include "util.h"
|
||||
|
||||
static int fair_queue_traffic_policing_init(QDisc *qdisc) {
|
||||
FairQueueTrafficPolicing *fq;
|
||||
FairQueueing *fq;
|
||||
|
||||
assert(qdisc);
|
||||
|
||||
@ -25,7 +25,7 @@ static int fair_queue_traffic_policing_init(QDisc *qdisc) {
|
||||
}
|
||||
|
||||
static int fair_queue_traffic_policing_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
|
||||
FairQueueTrafficPolicing *fq;
|
||||
FairQueueing *fq;
|
||||
int r;
|
||||
|
||||
assert(link);
|
||||
@ -102,7 +102,7 @@ static int fair_queue_traffic_policing_fill_message(Link *link, QDisc *qdisc, sd
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_fair_queue_traffic_policing_u32(
|
||||
int config_parse_fair_queue_traffic_policing_u32(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -115,7 +115,7 @@ int config_parse_tc_fair_queue_traffic_policing_u32(
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
FairQueueTrafficPolicing *fq;
|
||||
FairQueueing *fq;
|
||||
Network *network = data;
|
||||
uint32_t *p;
|
||||
int r;
|
||||
@ -134,13 +134,13 @@ int config_parse_tc_fair_queue_traffic_policing_u32(
|
||||
|
||||
fq = FQ(qdisc);
|
||||
|
||||
if (streq(lvalue, "FairQueueTrafficPolicingPacketLimit"))
|
||||
if (streq(lvalue, "PacketLimit"))
|
||||
p = &fq->packet_limit;
|
||||
else if (streq(lvalue, "FairQueueTrafficPolicingFlowLimit"))
|
||||
else if (streq(lvalue, "FlowLimit"))
|
||||
p = &fq->flow_limit;
|
||||
else if (streq(lvalue, "FairQueueTrafficPolicingBuckets"))
|
||||
else if (streq(lvalue, "Buckets"))
|
||||
p = &fq->buckets;
|
||||
else if (streq(lvalue, "FairQueueTrafficPolicingOrphanMask"))
|
||||
else if (streq(lvalue, "OrphanMask"))
|
||||
p = &fq->orphan_mask;
|
||||
else
|
||||
assert_not_reached("Invalid lvalue");
|
||||
@ -165,7 +165,7 @@ int config_parse_tc_fair_queue_traffic_policing_u32(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_fair_queue_traffic_policing_size(
|
||||
int config_parse_fair_queue_traffic_policing_size(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -178,7 +178,7 @@ int config_parse_tc_fair_queue_traffic_policing_size(
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
FairQueueTrafficPolicing *fq;
|
||||
FairQueueing *fq;
|
||||
Network *network = data;
|
||||
uint64_t sz;
|
||||
uint32_t *p;
|
||||
@ -198,9 +198,9 @@ int config_parse_tc_fair_queue_traffic_policing_size(
|
||||
|
||||
fq = FQ(qdisc);
|
||||
|
||||
if (streq(lvalue, "FairQueueTrafficPolicingQuantum"))
|
||||
if (streq(lvalue, "Quantum"))
|
||||
p = &fq->quantum;
|
||||
else if (streq(lvalue, "FairQueueTrafficPolicingInitialQuantum"))
|
||||
else if (streq(lvalue, "InitialQuantum"))
|
||||
p = &fq->initial_quantum;
|
||||
else
|
||||
assert_not_reached("Invalid lvalue");
|
||||
@ -232,7 +232,7 @@ int config_parse_tc_fair_queue_traffic_policing_size(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_fair_queue_traffic_policing_bool(
|
||||
int config_parse_fair_queue_traffic_policing_bool(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -245,7 +245,7 @@ int config_parse_tc_fair_queue_traffic_policing_bool(
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
FairQueueTrafficPolicing *fq;
|
||||
FairQueueing *fq;
|
||||
Network *network = data;
|
||||
int r;
|
||||
|
||||
@ -284,7 +284,7 @@ int config_parse_tc_fair_queue_traffic_policing_bool(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_fair_queue_traffic_policing_usec(
|
||||
int config_parse_fair_queue_traffic_policing_usec(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -297,7 +297,7 @@ int config_parse_tc_fair_queue_traffic_policing_usec(
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
FairQueueTrafficPolicing *fq;
|
||||
FairQueueing *fq;
|
||||
Network *network = data;
|
||||
usec_t sec;
|
||||
int r;
|
||||
@ -343,7 +343,7 @@ int config_parse_tc_fair_queue_traffic_policing_usec(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_fair_queue_traffic_policing_max_rate(
|
||||
int config_parse_fair_queue_traffic_policing_max_rate(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -356,7 +356,7 @@ int config_parse_tc_fair_queue_traffic_policing_max_rate(
|
||||
void *userdata) {
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
FairQueueTrafficPolicing *fq;
|
||||
FairQueueing *fq;
|
||||
Network *network = data;
|
||||
uint64_t sz;
|
||||
int r;
|
||||
@ -404,7 +404,7 @@ int config_parse_tc_fair_queue_traffic_policing_max_rate(
|
||||
|
||||
const QDiscVTable fq_vtable = {
|
||||
.init = fair_queue_traffic_policing_init,
|
||||
.object_size = sizeof(FairQueueTrafficPolicing),
|
||||
.object_size = sizeof(FairQueueing),
|
||||
.tca_kind = "fq",
|
||||
.fill_message = fair_queue_traffic_policing_fill_message,
|
||||
};
|
||||
|
@ -5,7 +5,7 @@
|
||||
#include "conf-parser.h"
|
||||
#include "qdisc.h"
|
||||
|
||||
typedef struct FairQueueTrafficPolicing {
|
||||
typedef struct FairQueueing {
|
||||
QDisc meta;
|
||||
|
||||
uint32_t packet_limit;
|
||||
@ -17,13 +17,13 @@ typedef struct FairQueueTrafficPolicing {
|
||||
uint32_t orphan_mask;
|
||||
int pacing;
|
||||
usec_t ce_threshold_usec;
|
||||
} FairQueueTrafficPolicing;
|
||||
} FairQueueing;
|
||||
|
||||
DEFINE_QDISC_CAST(FQ, FairQueueTrafficPolicing);
|
||||
DEFINE_QDISC_CAST(FQ, FairQueueing);
|
||||
extern const QDiscVTable fq_vtable;
|
||||
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_fair_queue_traffic_policing_u32);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_fair_queue_traffic_policing_size);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_fair_queue_traffic_policing_bool);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_fair_queue_traffic_policing_usec);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_fair_queue_traffic_policing_max_rate);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_fair_queue_traffic_policing_u32);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_fair_queue_traffic_policing_size);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_fair_queue_traffic_policing_bool);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_fair_queue_traffic_policing_usec);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_fair_queue_traffic_policing_max_rate);
|
||||
|
@ -10,7 +10,7 @@
|
||||
#include "networkd-manager.h"
|
||||
#include "parse-util.h"
|
||||
#include "qdisc.h"
|
||||
#include "string-util.h"
|
||||
#include "strv.h"
|
||||
#include "tc-util.h"
|
||||
|
||||
static int network_emulator_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
|
||||
@ -54,7 +54,7 @@ static int network_emulator_fill_message(Link *link, QDisc *qdisc, sd_netlink_me
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_network_emulator_delay(
|
||||
int config_parse_network_emulator_delay(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -87,9 +87,9 @@ int config_parse_tc_network_emulator_delay(
|
||||
ne = NETEM(qdisc);
|
||||
|
||||
if (isempty(rvalue)) {
|
||||
if (streq(lvalue, "NetworkEmulatorDelaySec"))
|
||||
if (STR_IN_SET(lvalue, "DelaySec", "NetworkEmulatorDelaySec"))
|
||||
ne->delay = USEC_INFINITY;
|
||||
else if (streq(lvalue, "NetworkEmulatorDelayJitterSec"))
|
||||
else if (STR_IN_SET(lvalue, "DelayJitterSec", "NetworkEmulatorDelayJitterSec"))
|
||||
ne->jitter = USEC_INFINITY;
|
||||
|
||||
qdisc = NULL;
|
||||
@ -104,9 +104,9 @@ int config_parse_tc_network_emulator_delay(
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (streq(lvalue, "NetworkEmulatorDelaySec"))
|
||||
if (STR_IN_SET(lvalue, "DelaySec", "NetworkEmulatorDelaySec"))
|
||||
ne->delay = u;
|
||||
else if (streq(lvalue, "NetworkEmulatorDelayJitterSec"))
|
||||
else if (STR_IN_SET(lvalue, "DelayJitterSec", "NetworkEmulatorDelayJitterSec"))
|
||||
ne->jitter = u;
|
||||
|
||||
qdisc = NULL;
|
||||
@ -114,7 +114,7 @@ int config_parse_tc_network_emulator_delay(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_network_emulator_rate(
|
||||
int config_parse_network_emulator_rate(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -147,9 +147,9 @@ int config_parse_tc_network_emulator_rate(
|
||||
ne = NETEM(qdisc);
|
||||
|
||||
if (isempty(rvalue)) {
|
||||
if (streq(lvalue, "NetworkEmulatorLossRate"))
|
||||
if (STR_IN_SET(lvalue, "LossRate", "NetworkEmulatorLossRate"))
|
||||
ne->loss = 0;
|
||||
else if (streq(lvalue, "NetworkEmulatorDuplicateRate"))
|
||||
else if (STR_IN_SET(lvalue, "DuplicateRate", "NetworkEmulatorDuplicateRate"))
|
||||
ne->duplicate = 0;
|
||||
|
||||
qdisc = NULL;
|
||||
@ -164,16 +164,16 @@ int config_parse_tc_network_emulator_rate(
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (streq(lvalue, "NetworkEmulatorLossRate"))
|
||||
if (STR_IN_SET(lvalue, "LossRate", "NetworkEmulatorLossRate"))
|
||||
ne->loss = rate;
|
||||
else if (streq(lvalue, "NetworkEmulatorDuplicateRate"))
|
||||
else if (STR_IN_SET(lvalue, "DuplicateRate", "NetworkEmulatorDuplicateRate"))
|
||||
ne->duplicate = rate;
|
||||
|
||||
qdisc = NULL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_network_emulator_packet_limit(
|
||||
int config_parse_network_emulator_packet_limit(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -214,8 +214,8 @@ int config_parse_tc_network_emulator_packet_limit(
|
||||
r = safe_atou(rvalue, &ne->limit);
|
||||
if (r < 0) {
|
||||
log_syntax(unit, LOG_ERR, filename, line, r,
|
||||
"Failed to parse 'NetworkEmulatorPacketLimit=', ignoring assignment: %s",
|
||||
rvalue);
|
||||
"Failed to parse '%s=', ignoring assignment: %s",
|
||||
lvalue, rvalue);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -20,6 +20,6 @@ typedef struct NetworkEmulator {
|
||||
DEFINE_QDISC_CAST(NETEM, NetworkEmulator);
|
||||
extern const QDiscVTable netem_vtable;
|
||||
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_network_emulator_delay);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_network_emulator_rate);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_network_emulator_packet_limit);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_network_emulator_delay);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_network_emulator_rate);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_network_emulator_packet_limit);
|
||||
|
@ -234,7 +234,7 @@ int qdisc_section_verify(QDisc *qdisc, bool *has_root, bool *has_clsact) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_qdiscs_parent(
|
||||
int config_parse_qdisc_parent(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -254,8 +254,9 @@ int config_parse_tc_qdiscs_parent(
|
||||
assert(lvalue);
|
||||
assert(rvalue);
|
||||
assert(data);
|
||||
assert(ltype >= 0 && ltype < _QDISC_KIND_MAX);
|
||||
|
||||
r = qdisc_new_static(_QDISC_KIND_INVALID, network, filename, section_line, &qdisc);
|
||||
r = qdisc_new_static(ltype, network, filename, section_line, &qdisc);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
|
@ -63,7 +63,7 @@ int qdisc_section_verify(QDisc *qdisc, bool *has_root, bool *has_clsact);
|
||||
|
||||
DEFINE_NETWORK_SECTION_FUNCTIONS(QDisc, qdisc_free);
|
||||
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_qdiscs_parent);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_qdisc_parent);
|
||||
|
||||
#include "codel.h"
|
||||
#include "fq-codel.h"
|
||||
|
@ -31,7 +31,7 @@ static int stochastic_fairness_queueing_fill_message(Link *link, QDisc *qdisc, s
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_stochastic_fairness_queueing_perturb_period(
|
||||
int config_parse_stochastic_fairness_queueing_perturb_period(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
|
@ -15,4 +15,4 @@ typedef struct StochasticFairnessQueueing {
|
||||
DEFINE_QDISC_CAST(SFQ, StochasticFairnessQueueing);
|
||||
extern const QDiscVTable sfq_vtable;
|
||||
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_stochastic_fairness_queueing_perturb_period);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_stochastic_fairness_queueing_perturb_period);
|
||||
|
@ -15,10 +15,10 @@
|
||||
#include "tc-util.h"
|
||||
#include "util.h"
|
||||
|
||||
static int token_buffer_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
|
||||
static int token_bucket_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink_message *req) {
|
||||
uint32_t rtab[256], ptab[256];
|
||||
struct tc_tbf_qopt opt = {};
|
||||
TokenBufferFilter *tbf;
|
||||
TokenBucketFilter *tbf;
|
||||
int r;
|
||||
|
||||
assert(link);
|
||||
@ -110,7 +110,7 @@ static int token_buffer_filter_fill_message(Link *link, QDisc *qdisc, sd_netlink
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_token_buffer_filter_size(
|
||||
int config_parse_token_bucket_filter_size(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -124,7 +124,7 @@ int config_parse_tc_token_buffer_filter_size(
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
Network *network = data;
|
||||
TokenBufferFilter *tbf;
|
||||
TokenBucketFilter *tbf;
|
||||
uint64_t k;
|
||||
int r;
|
||||
|
||||
@ -143,17 +143,17 @@ int config_parse_tc_token_buffer_filter_size(
|
||||
tbf = TBF(qdisc);
|
||||
|
||||
if (isempty(rvalue)) {
|
||||
if (streq(lvalue, "TokenBufferFilterRate"))
|
||||
if (streq(lvalue, "Rate"))
|
||||
tbf->rate = 0;
|
||||
else if (streq(lvalue, "TokenBufferFilterBurst"))
|
||||
else if (streq(lvalue, "Burst"))
|
||||
tbf->burst = 0;
|
||||
else if (streq(lvalue, "TokenBufferFilterLimitSize"))
|
||||
else if (streq(lvalue, "LimitSize"))
|
||||
tbf->limit = 0;
|
||||
else if (streq(lvalue, "TokenBufferFilterMTUBytes"))
|
||||
else if (streq(lvalue, "MTUBytes"))
|
||||
tbf->mtu = 0;
|
||||
else if (streq(lvalue, "TokenBufferFilterMPUBytes"))
|
||||
else if (streq(lvalue, "MPUBytes"))
|
||||
tbf->mpu = 0;
|
||||
else if (streq(lvalue, "TokenBufferFilterPeakRate"))
|
||||
else if (streq(lvalue, "PeakRate"))
|
||||
tbf->peak_rate = 0;
|
||||
|
||||
qdisc = NULL;
|
||||
@ -168,17 +168,17 @@ int config_parse_tc_token_buffer_filter_size(
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (streq(lvalue, "TokenBufferFilterRate"))
|
||||
if (streq(lvalue, "Rate"))
|
||||
tbf->rate = k / 8;
|
||||
else if (streq(lvalue, "TokenBufferFilterBurst"))
|
||||
else if (streq(lvalue, "Burst"))
|
||||
tbf->burst = k;
|
||||
else if (streq(lvalue, "TokenBufferFilterLimitSize"))
|
||||
else if (streq(lvalue, "LimitSize"))
|
||||
tbf->limit = k;
|
||||
else if (streq(lvalue, "TokenBufferFilterMPUBytes"))
|
||||
else if (streq(lvalue, "MPUBytes"))
|
||||
tbf->mpu = k;
|
||||
else if (streq(lvalue, "TokenBufferFilterMTUBytes"))
|
||||
else if (streq(lvalue, "MTUBytes"))
|
||||
tbf->mtu = k;
|
||||
else if (streq(lvalue, "TokenBufferFilterPeakRate"))
|
||||
else if (streq(lvalue, "PeakRate"))
|
||||
tbf->peak_rate = k / 8;
|
||||
|
||||
qdisc = NULL;
|
||||
@ -186,7 +186,7 @@ int config_parse_tc_token_buffer_filter_size(
|
||||
return 0;
|
||||
}
|
||||
|
||||
int config_parse_tc_token_buffer_filter_latency(
|
||||
int config_parse_token_bucket_filter_latency(
|
||||
const char *unit,
|
||||
const char *filename,
|
||||
unsigned line,
|
||||
@ -200,7 +200,7 @@ int config_parse_tc_token_buffer_filter_latency(
|
||||
|
||||
_cleanup_(qdisc_free_or_set_invalidp) QDisc *qdisc = NULL;
|
||||
Network *network = data;
|
||||
TokenBufferFilter *tbf;
|
||||
TokenBucketFilter *tbf;
|
||||
usec_t u;
|
||||
int r;
|
||||
|
||||
@ -240,45 +240,45 @@ int config_parse_tc_token_buffer_filter_latency(
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int token_buffer_filter_verify(QDisc *qdisc) {
|
||||
TokenBufferFilter *tbf = TBF(qdisc);
|
||||
static int token_bucket_filter_verify(QDisc *qdisc) {
|
||||
TokenBucketFilter *tbf = TBF(qdisc);
|
||||
|
||||
if (tbf->limit > 0 && tbf->latency > 0)
|
||||
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"%s: Specifying both TokenBufferFilterLimitSize= and TokenBufferFilterLatencySec= is not allowed. "
|
||||
"Ignoring [TrafficControlQueueingDiscipline] section from line %u.",
|
||||
"%s: Specifying both LimitSize= and LatencySec= is not allowed. "
|
||||
"Ignoring [TokenBucketFilter] section from line %u.",
|
||||
qdisc->section->filename, qdisc->section->line);
|
||||
|
||||
if (tbf->limit == 0 && tbf->latency == 0)
|
||||
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"%s: Either TokenBufferFilterLimitSize= or TokenBufferFilterLatencySec= is required. "
|
||||
"Ignoring [TrafficControlQueueingDiscipline] section from line %u.",
|
||||
"%s: Either LimitSize= or LatencySec= is required. "
|
||||
"Ignoring [TokenBucketFilter] section from line %u.",
|
||||
qdisc->section->filename, qdisc->section->line);
|
||||
|
||||
if (tbf->rate == 0)
|
||||
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"%s: TokenBufferFilterRate= is mandatory. "
|
||||
"Ignoring [TrafficControlQueueingDiscipline] section from line %u.",
|
||||
"%s: Rate= is mandatory. "
|
||||
"Ignoring [TokenBucketFilter] section from line %u.",
|
||||
qdisc->section->filename, qdisc->section->line);
|
||||
|
||||
if (tbf->burst == 0)
|
||||
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"%s: TokenBufferFilterBurst= is mandatory. "
|
||||
"Ignoring [TrafficControlQueueingDiscipline] section from line %u.",
|
||||
"%s: Burst= is mandatory. "
|
||||
"Ignoring [TokenBucketFilter] section from line %u.",
|
||||
qdisc->section->filename, qdisc->section->line);
|
||||
|
||||
if (tbf->peak_rate > 0 && tbf->mtu == 0)
|
||||
return log_warning_errno(SYNTHETIC_ERRNO(EINVAL),
|
||||
"%s: TokenBufferFilterMTUBytes= is mandatory when TokenBufferFilterPeakRate= is specified. "
|
||||
"Ignoring [TrafficControlQueueingDiscipline] section from line %u.",
|
||||
"%s: MTUBytes= is mandatory when PeakRate= is specified. "
|
||||
"Ignoring [TokenBucketFilter] section from line %u.",
|
||||
qdisc->section->filename, qdisc->section->line);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
const QDiscVTable tbf_vtable = {
|
||||
.object_size = sizeof(TokenBufferFilter),
|
||||
.object_size = sizeof(TokenBucketFilter),
|
||||
.tca_kind = "tbf",
|
||||
.fill_message = token_buffer_filter_fill_message,
|
||||
.verify = token_buffer_filter_verify
|
||||
.fill_message = token_bucket_filter_fill_message,
|
||||
.verify = token_bucket_filter_verify
|
||||
};
|
||||
|
@ -6,7 +6,7 @@
|
||||
#include "qdisc.h"
|
||||
#include "time-util.h"
|
||||
|
||||
typedef struct TokenBufferFilter {
|
||||
typedef struct TokenBucketFilter {
|
||||
QDisc meta;
|
||||
|
||||
uint64_t rate;
|
||||
@ -16,10 +16,10 @@ typedef struct TokenBufferFilter {
|
||||
usec_t latency;
|
||||
size_t limit;
|
||||
size_t mpu;
|
||||
} TokenBufferFilter;
|
||||
} TokenBucketFilter;
|
||||
|
||||
DEFINE_QDISC_CAST(TBF, TokenBufferFilter);
|
||||
DEFINE_QDISC_CAST(TBF, TokenBucketFilter);
|
||||
extern const QDiscVTable tbf_vtable;
|
||||
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_token_buffer_filter_latency);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_tc_token_buffer_filter_size);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_token_bucket_filter_latency);
|
||||
CONFIG_PARSER_PROTOTYPE(config_parse_token_bucket_filter_size);
|
||||
|
@ -270,6 +270,53 @@ SendOption=
|
||||
[NextHop]
|
||||
Id=
|
||||
Gateway=
|
||||
[NetworkEmulator]
|
||||
Parent=
|
||||
DelaySec=
|
||||
DelayJitterSec=
|
||||
LossRate=
|
||||
DuplicateRate=
|
||||
PacketLimit=
|
||||
[TokenBucketFilter]
|
||||
Parent=
|
||||
Rate=
|
||||
Burst=
|
||||
LimitSize=
|
||||
MTUBytes=
|
||||
MPUBytes=
|
||||
PeakRate=
|
||||
LatencySec=
|
||||
[StochasticFairnessQueueing]
|
||||
Parent=
|
||||
PerturbPeriodSec=
|
||||
[FairQueueingControlledDelay]
|
||||
Parent=
|
||||
PacketLimit=
|
||||
MemoryLimit=
|
||||
Flows=
|
||||
Quantum=
|
||||
TargetSec=
|
||||
IntervalSec=
|
||||
CEThresholdSec=
|
||||
ECN=
|
||||
[FairQueueing]
|
||||
Parent=
|
||||
PacketLimit=
|
||||
FlowLimit=
|
||||
Quantum=
|
||||
InitialQuantum=
|
||||
MaximumRate=
|
||||
Buckets=
|
||||
OrphanMask=
|
||||
Pacing=
|
||||
CEThresholdSec=
|
||||
[ControlledDelay]
|
||||
Parent=
|
||||
PacketLimit=
|
||||
TargetSec=
|
||||
IntervalSec=
|
||||
CEThresholdSec=
|
||||
ECN=
|
||||
[TrafficControlQueueingDiscipline]
|
||||
Parent=
|
||||
NetworkEmulatorDelaySec=
|
||||
@ -277,33 +324,3 @@ NetworkEmulatorDelayJitterSec=
|
||||
NetworkEmulatorLossRate=
|
||||
NetworkEmulatorDuplicateRate=
|
||||
NetworkEmulatorPacketLimit=
|
||||
TokenBufferFilterRate=
|
||||
TokenBufferFilterBurst=
|
||||
TokenBufferFilterLimitSize=
|
||||
TokenBufferFilterMTUBytes=
|
||||
TokenBufferFilterMPUBytes=
|
||||
TokenBufferFilterPeakRate=
|
||||
TokenBufferFilterLatencySec=
|
||||
StochasticFairnessQueueingPerturbPeriodSec=
|
||||
FairQueuingControlledDelayPacketLimit=
|
||||
FairQueuingControlledDelayMemoryLimit=
|
||||
FairQueuingControlledDelayFlows=
|
||||
FairQueuingControlledDelayQuantum=
|
||||
FairQueuingControlledDelayTargetSec=
|
||||
FairQueuingControlledDelayIntervalSec=
|
||||
FairQueuingControlledDelayCEThresholdSec=
|
||||
FairQueuingControlledDelayECN=
|
||||
FairQueueTrafficPolicingPacketLimit=
|
||||
FairQueueTrafficPolicingFlowLimit=
|
||||
FairQueueTrafficPolicingQuantum=
|
||||
FairQueueTrafficPolicingInitialQuantum=
|
||||
FairQueueTrafficPolicingMaximumRate=
|
||||
FairQueueTrafficPolicingBuckets=
|
||||
FairQueueTrafficPolicingOrphanMask=
|
||||
FairQueueTrafficPolicingPacing=
|
||||
FairQueueTrafficPolicingCEThresholdSec=
|
||||
ControlledDelayPacketLimit=
|
||||
ControlledDelayTargetSec=
|
||||
ControlledDelayIntervalSec=
|
||||
ControlledDelayCEThresholdSec=
|
||||
ControlledDelayECN=
|
||||
|
@ -5,22 +5,22 @@ Name=dummy98
|
||||
IPv6AcceptRA=no
|
||||
Address=10.1.2.3/16
|
||||
|
||||
[TrafficControlQueueingDiscipline]
|
||||
[FairQueueing]
|
||||
Parent=root
|
||||
FairQueueTrafficPolicingPacketLimit=1000
|
||||
FairQueueTrafficPolicingFlowLimit=200
|
||||
FairQueueTrafficPolicingQuantum=1500
|
||||
FairQueueTrafficPolicingInitialQuantum=13000
|
||||
FairQueueTrafficPolicingMaximumRate=1M
|
||||
FairQueueTrafficPolicingBuckets=512
|
||||
FairQueueTrafficPolicingOrphanMask=511
|
||||
FairQueueTrafficPolicingPacing=yes
|
||||
FairQueueTrafficPolicingCEThresholdSec=100ms
|
||||
PacketLimit=1000
|
||||
FlowLimit=200
|
||||
Quantum=1500
|
||||
InitialQuantum=13000
|
||||
MaximumRate=1M
|
||||
Buckets=512
|
||||
OrphanMask=511
|
||||
Pacing=yes
|
||||
CEThresholdSec=100ms
|
||||
|
||||
[TrafficControlQueueingDiscipline]
|
||||
[ControlledDelay]
|
||||
Parent=clsact
|
||||
ControlledDelayPacketLimit=2000
|
||||
ControlledDelayTargetSec=10ms
|
||||
ControlledDelayIntervalSec=50ms
|
||||
ControlledDelayECN=yes
|
||||
ControlledDelayCEThresholdSec=100ms
|
||||
PacketLimit=2000
|
||||
TargetSec=10ms
|
||||
IntervalSec=50ms
|
||||
ECN=yes
|
||||
CEThresholdSec=100ms
|
||||
|
@ -5,20 +5,20 @@ Name=dummy98
|
||||
IPv6AcceptRA=no
|
||||
Address=10.1.2.3/16
|
||||
|
||||
[TrafficControlQueueingDiscipline]
|
||||
[NetworkEmulator]
|
||||
Parent=root
|
||||
NetworkEmulatorDelaySec=50ms
|
||||
NetworkEmulatorDelayJitterSec=10ms
|
||||
NetworkEmulatorLossRate=20%
|
||||
NetworkEmulatorPacketLimit=100
|
||||
DelaySec=50ms
|
||||
DelayJitterSec=10ms
|
||||
LossRate=20%
|
||||
PacketLimit=100
|
||||
|
||||
[TrafficControlQueueingDiscipline]
|
||||
[FairQueueingControlledDelay]
|
||||
Parent=ingress
|
||||
FairQueuingControlledDelayPacketLimit=20480
|
||||
FairQueuingControlledDelayMemoryLimit=64M
|
||||
FairQueuingControlledDelayFlows=2048
|
||||
FairQueuingControlledDelayTargetSec=10ms
|
||||
FairQueuingControlledDelayIntervalSec=200ms
|
||||
FairQueuingControlledDelayQuantum=1400
|
||||
FairQueuingControlledDelayECN=yes
|
||||
FairQueuingControlledDelayCEThresholdSec=100ms
|
||||
PacketLimit=20480
|
||||
MemoryLimit=64M
|
||||
Flows=2048
|
||||
TargetSec=10ms
|
||||
IntervalSec=200ms
|
||||
Quantum=1400
|
||||
ECN=yes
|
||||
CEThresholdSec=100ms
|
||||
|
@ -5,14 +5,14 @@ Name=test1
|
||||
IPv6AcceptRA=no
|
||||
Address=10.1.2.4/16
|
||||
|
||||
[TrafficControlQueueingDiscipline]
|
||||
[TokenBucketFilter]
|
||||
Parent=root
|
||||
TokenBufferFilterRate=1G
|
||||
TokenBufferFilterBurst=5K
|
||||
TokenBufferFilterLatencySec=70msec
|
||||
TokenBufferFilterPeakRate=100G
|
||||
TokenBufferFilterMTUBytes=1M
|
||||
Rate=1G
|
||||
Burst=5K
|
||||
LatencySec=70msec
|
||||
PeakRate=100G
|
||||
MTUBytes=1M
|
||||
|
||||
[TrafficControlQueueingDiscipline]
|
||||
[StochasticFairnessQueueing]
|
||||
Parent=clsact
|
||||
StochasticFairnessQueueingPerturbPeriodSec=5sec
|
||||
PerturbPeriodSec=5sec
|
||||
|
Loading…
Reference in New Issue
Block a user