Documentation

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

New in version 2.2.

Synopsis

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

Options

parameter required default choices comments
dsfield
no
- 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
no
Specifiies a link to configure flow on.
local_ip
no
Identifies a network flow by the local IP address.
local_port
no
Identifies a service specified by the local port.
maxbw
no
- 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
yes
- 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
no medium
  • low
  • medium
  • high
Sets the relative priority for the flow.
remove_ip
no
Identifies a network flow by the remote IP address.
state
no present
  • absent
  • present
  • resetted
Create/delete/enable/disable an IP address on the network interface.
temporary
no
  • true
  • false
Specifies that the configured flow is temporary. Temporary flows do not persist across reboots.
transport
no
- 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 Return Values, the following are the fields unique to this module:

name description returned type sample
dsfield flow's differentiated services value if dsfield is defined string 0x2e:0xfc
temporary flow's persistence always boolean True
name flow name always string http_drop
maxbw flow's maximum bandwidth if maxbw is defined string 100M
local_Ip flow's local IP address if local_ip is defined string 10.0.0.42
local_port flow's local port if local_port is defined int 1337
priority flow's priority if priority is defined string low
state state of the target always string present
link flow's link if link is defined string vnic0
transport flow's transport if transport is defined string tcp
remote_Ip flow's remote IP address if remote_ip is defined string 10.0.0.42


Status

This module is flagged as preview which means that it is not guaranteed to have a backwards compatible interface.

Support

This module is community maintained without core committer oversight.

For more information on what this means please read Module Support

For help in developing on modules, should you be so inclined, please read Community Information & Contributing, Helping Testing PRs and Developing Modules.