flowadm – Manage bandwidth resource control and priority for protocols, services and zones on Solaris/illumos systems

Synopsis

  • Create/modify/remove networking bandwidth and associated resources for a type of traffic on a particular link.

Parameters

Parameter Choices/Defaults Comments
dsfield
-
- Identifies the 8-bit differentiated services field (as defined in RFC 2474). The optional dsfield_mask is used to state the bits of interest in the differentiated services field when comparing with the dsfield value. Both values must be in hexadecimal.
link
-
Specifiies a link to configure flow on.
local_ip
-
Identifies a network flow by the local IP address.
local_port
-
Identifies a service specified by the local port.
maxbw
-
- Sets the full duplex bandwidth for the flow. The bandwidth is specified as an integer with one of the scale suffixes(K, M, or G for Kbps, Mbps, and Gbps). If no units are specified, the input value will be read as Mbps.
name
- / required
- A flow is defined as a set of attributes based on Layer 3 and Layer 4 headers, which can be used to identify a protocol, service, or a zone.

aliases: flow
priority
-
    Choices:
  • low
  • medium ←
  • high
Sets the relative priority for the flow.
remote_ip
-
Identifies a network flow by the remote IP address.
state
-
    Choices:
  • absent
  • present ←
  • resetted
Create/delete/enable/disable an IP address on the network interface.
temporary
boolean
    Choices:
  • no ←
  • yes
Specifies that the configured flow is temporary. Temporary flows do not persist across reboots.
transport
-
- Specifies a Layer 4 protocol to be used. It is typically used in combination with local_port to identify the service that needs special attention.

Examples

# Limit SSH traffic to 100M via vnic0 interface
- flowadm:
    link: vnic0
    flow: ssh_out
    transport: tcp
    local_port: 22
    maxbw: 100M
    state: present

# Reset flow properties
- flowadm:
    name: dns
    state: resetted

# Configure policy for EF PHB (DSCP value of 101110 from RFC 2598) with a bandwidth of 500 Mbps and a high priority.
- flowadm:
    link: bge0
    dsfield: '0x2e:0xfc'
    maxbw: 500M
    priority: high
    flow: efphb-flow
    state: present

Return Values

Common return values are documented here, the following are the fields unique to this module:

Key Returned Description
dsfield
string
if dsfield is defined
flow's differentiated services value

Sample:
0x2e:0xfc
link
string
if link is defined
flow's link

Sample:
vnic0
local_Ip
string
if local_ip is defined
flow's local IP address

Sample:
10.0.0.42
local_port
integer
if local_port is defined
flow's local port

Sample:
1337
maxbw
string
if maxbw is defined
flow's maximum bandwidth

Sample:
100M
name
string
always
flow name

Sample:
http_drop
priority
string
if priority is defined
flow's priority

Sample:
low
remote_Ip
string
if remote_ip is defined
flow's remote IP address

Sample:
10.0.0.42
state
string
always
state of the target

Sample:
present
temporary
boolean
always
flow's persistence

Sample:
True
transport
string
if transport is defined
flow's transport

Sample:
tcp


Status

Authors

  • Adam Števko (@xen0l)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.