A list of IPv4 destination addresses, prefix length, optional IPv4 next hop addresses, optional route metric, optional attribute. The valid syntax is: "ip[/prefix] [next-hop] [metric] [attribute=val]...[,ip[/prefix]...]". For example "192.0.2.0/24 10.1.1.1 77, 198.51.100.0/24". Various attributes are supported: "cwnd" - an unsigned 32 bit integer. "initcwnd" - an unsigned 32 bit integer. "initrwnd" - an unsigned 32 bit integer. "lock-cwnd" - a boolean value. "lock-initcwnd" - a boolean value. "lock-initrwnd" - a boolean value. "lock-mtu" - a boolean value. "lock-window" - a boolean value. "mtu" - an unsigned 32 bit integer. "onlink" - a boolean value. "scope" - an unsigned 8 bit integer. IPv4 only. "src" - an IPv4 address. "table" - an unsigned 32 bit integer. The default depends on ipv4.route-table. "tos" - an unsigned 8 bit integer. IPv4 only. "type" - one of unicast, local, blackhole, unavailable, prohibit, throw. The default is unicast. "window" - an unsigned 32 bit integer. For details see also `man ip-route`. A comma separated list of routing rules for policy routing. The format is based on ip rule add syntax and mostly compatible. One difference is that routing rules in NetworkManager always need a fixed priority. Example: priority 5 from 192.167.4.0/24 table 45 A list of IPv6 destination addresses, prefix length, optional IPv6 next hop addresses, optional route metric, optional attribute. The valid syntax is: "ip[/prefix] [next-hop] [metric] [attribute=val]...[,ip[/prefix]...]". Various attributes are supported: "cwnd" - an unsigned 32 bit integer. "from" - an IPv6 address with optional prefix. IPv6 only. "initcwnd" - an unsigned 32 bit integer. "initrwnd" - an unsigned 32 bit integer. "lock-cwnd" - a boolean value. "lock-initcwnd" - a boolean value. "lock-initrwnd" - a boolean value. "lock-mtu" - a boolean value. "lock-window" - a boolean value. "mtu" - an unsigned 32 bit integer. "onlink" - a boolean value. "src" - an IPv6 address. "table" - an unsigned 32 bit integer. The default depends on ipv6.route-table. "type" - one of unicast, local, blackhole, unavailable, prohibit, throw. The default is unicast. "window" - an unsigned 32 bit integer. For details see also `man ip-route`. A comma separated list of routing rules for policy routing. The format is based on ip rule add syntax and mostly compatible. One difference is that routing rules in NetworkManager always need a fixed priority. Example: priority 5 from 1:2:3::5/128 table 45 Array of TC queueing disciplines. qdisc is a basic block in the Linux traffic control subsystem Each qdisc can be specified by the following attributes: handle HANDLE specifies the qdisc handle. A qdisc, which potentially can have children, gets assigned a major number, called a 'handle', leaving the minor number namespace available for classes. The handle is expressed as '10:'. It is customary to explicitly assign a handle to qdiscs expected to have children. parent HANDLE specifies the handle of the parent qdisc the current qdisc must be attached to. root specifies that the qdisc is attached to the root of device. KIND this is the qdisc kind. NetworkManager currently supports the following kinds: fq_codel, sfq, tbf. Each qdisc kind has a different set of parameters, described below. There are also some kinds like pfifo, pfifo_fast, prio supported by NetworkManager but their parameters are not supported by NetworkManager. Parameters for 'fq_codel': limit U32 the hard limit on the real queue size. When this limit is reached, incoming packets are dropped. Default is 10240 packets. memory_limit U32 sets a limit on the total number of bytes that can be queued in this FQ-CoDel instance. The lower of the packet limit of the limit parameter and the memory limit will be enforced. Default is 32 MB. flows U32 the number of flows into which the incoming packets are classified. Due to the stochastic nature of hashing, multiple flows may end up being hashed into the same slot. Newer flows have priority over older ones. This parameter can be set only at load time since memory has to be allocated for the hash table. Default value is 1024. target U32 the acceptable minimum standing/persistent queue delay. This minimum delay is identified by tracking the local minimum queue delay that packets experience. The unit of measurement is microsecond(us). Default value is 5ms. interval U32 used to ensure that the measured minimum delay does not become too stale. The minimum delay must be experienced in the last epoch of length .B interval. It should be set on the order of the worst-case RTT through the bottleneck to give endpoints sufficient time to react. Default value is 100ms. quantum U32 the number of bytes used as 'deficit' in the fair queuing algorithm. Default is set to 1514 bytes which corresponds to the Ethernet MTU plus the hardware header length of 14 bytes. ecn BOOL can be used to mark packets instead of dropping them. ecn is turned on by default. ce_threshold U32 sets a threshold above which all packets are marked with ECN Congestion Experienced. This is useful for DCTCP-style congestion control algorithms that require marking at very shallow queueing thresholds. Parameters for 'sfq': divisor U32 can be used to set a different hash table size, available from kernel 2.6.39 onwards. The specified divisor must be a power of two and cannot be larger than 65536. Default value: 1024. limit U32 Upper limit of the SFQ. Can be used to reduce the default length of 127 packets. depth U32 Limit of packets per flow. Default to 127 and can be lowered. perturb_period U32 Interval in seconds for queue algorithm perturbation. Defaults to 0, which means that no perturbation occurs. Do not set too low for each perturbation may cause some packet reordering or losses. Advised value: 60 This value has no effect when external flow classification is used. Its better to increase divisor value to lower risk of hash collisions. quantum U32 Amount of bytes a flow is allowed to dequeue during a round of the round robin process. Defaults to the MTU of the interface which is also the advised value and the minimum value. flows U32 Default value is 127. Parameters for 'tbf': rate U64 Bandwidth or rate. These parameters accept a floating point number, possibly followed by either a unit (both SI and IEC units supported), or a float followed by a percent character to specify the rate as a percentage of the device's speed. burst U32 Also known as buffer or maxburst. Size of the bucket, in bytes. This is the maximum amount of bytes that tokens can be available for instantaneously. In general, larger shaping rates require a larger buffer. For 10mbit/s on Intel, you need at least 10kbyte buffer if you want to reach your configured rate! If your buffer is too small, packets may be dropped because more tokens arrive per timer tick than fit in your bucket. The minimum buffer size can be calculated by dividing the rate by HZ. Token usage calculations are performed using a table which by default has a resolution of 8 packets. This resolution can be changed by specifying the cell size with the burst. For example, to specify a 6000 byte buffer with a 16 byte cell size, set a burst of 6000/16. You will probably never have to set this. Must be an integral power of 2. limit U32 Limit is the number of bytes that can be queued waiting for tokens to become available. latency U32 specifies the maximum amount of time a packet can sit in the TBF. The latency calculation takes into account the size of the bucket, the rate and possibly the peakrate (if set). The latency and limit are mutually exclusive. Array of TC traffic filters. Traffic control can manage the packet content during classification by using filters. Each tfilters can be specified by the following attributes: handle HANDLE specifies the tfilters handle. A filter is used by a classful qdisc to determine in which class a packet will be enqueued. It is important to notice that filters reside within qdiscs. Therefore, see qdiscs handle for detailed information. parent HANDLE specifies the handle of the parent qdisc the current qdisc must be attached to. root specifies that the qdisc is attached to the root of device. KIND this is the tfilters kind. NetworkManager currently supports following kinds: mirred, simple. Each filter kind has a different set of actions, described below. There are also some other kinds like matchall, basic, u32 supported by NetworkManager. Actions for 'mirred': egress bool Define whether the packet should exit from the interface. ingress bool Define whether the packet should come into the interface. mirror bool Define whether the packet should be copied to the destination space. redirect bool Define whether the packet should be moved to the destination space. Action for 'simple': sdata char[32] The actual string to print.