# bigip_vlan – Manage VLANs on a BIG-IP system

- Synopsis
- Parameters
- Notes
- Examples
- Return Values
- Status

## Synopsis

- Manage VLANs on a BIG-IP system

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---

cmp_hash
string
added in 2.5

Choices:
- default
- destination-address
- source-address
- dst-ip
- src-ip
- dest
- destination
- source
- dst
- src

Specifies how the traffic on the VLAN will be disaggregated. The value selected determines the traffic disaggregation method. You can choose to disaggregate traffic based on `source-address` (the source IP address), `destination-address` (destination IP address), or `default`, which specifies that the default CMP hash uses L4 ports.
When creating a new VLAN, if this parameter is not specified, the default of `default` is used.

dag_round_robin
boolean
added in 2.5

Choices:
- no
- yes

Specifies whether some of the stateless traffic on the VLAN should be disaggregated in a round-robin order instead of using a static hash. The stateless traffic includes non-IP L2 traffic, ICMP, some UDP protocols, and so on.
When creating a new VLAN, if this parameter is not specified, the default of (no) is used.

dag_tunnel
string
added in 2.5

Choices:
- inner
- outer

Specifies how the disaggregator (DAG) distributes received tunnel-encapsulated packets to TMM instances. Select `inner` to distribute packets based on information in inner headers. Select `outer` to distribute packets based on information in outer headers without inspecting inner headers.
When creating a new VLAN, if this parameter is not specified, the default of `outer` is used.
This parameter is not supported on Virtual Editions of BIG-IP.

description string |  | The description to give to the VLAN.

fail_safe
boolean
added in 2.8

Choices:
- no
- yes

When `yes`, specifies that the VLAN takes the specified `fail_safe_action` if the system detects a loss of traffic on this VLAN's interfaces.

fail_safe_action
string
added in 2.8

Choices:
- reboot
- restart-all
- failover

Specifies the action that the system takes when it does not detect any traffic on this VLAN, and the `fail_safe_timeout` has expired.

fail_safe_timeout integer added in 2.8 |  | Specifies the number of seconds that a system can run without detecting network traffic on this VLAN before it takes the `fail_safe_action`.
interfaces list added in 2.8 |  | Interfaces that you want added to the VLAN. This can include both tagged and untagged interfaces as the `tagging` parameter specifies. This parameter is mutually exclusive with the `untagged_interfaces` and `tagged_interfaces` parameters.
| interface string |  | The name of the interface

tagging
string

Choices:
- tagged
- untagged

Whether the interface is `tagged` or `untagged`.

mtu integer added in 2.5 |  | Specifies the maximum transmission unit (MTU) for traffic on this VLAN. When creating a new VLAN, if this parameter is not specified, the default value used will be `1500`. This number must be between 576 to 9198.
name string / required |  | The VLAN to manage. If the special VLAN `ALL` is specified with the `state` value of `absent` then all VLANs will be removed.
partition string added in 2.5 | Default: "Common" | Device partition to manage resources on.
provider dictionary added in 2.5 |  | A dict object containing connection details.
| auth_provider string |  | Configures the auth provider for to obtain authentication tokens from the remote device. This option is really used when working with BIG-IQ devices.
| password string / required |  | The password for the user account used to connect to the BIG-IP. You may omit this option by setting the environment variable `F5_PASSWORD`. aliases: pass, pwd
| server string / required |  | The BIG-IP host. You may omit this option by setting the environment variable `F5_SERVER`.
| server_port integer | Default: 443 | The BIG-IP server port. You may omit this option by setting the environment variable `F5_SERVER_PORT`.
| ssh_keyfile path |  | Specifies the SSH keyfile to use to authenticate the connection to the remote device. This argument is only used for cli transports. You may omit this option by setting the environment variable `ANSIBLE_NET_SSH_KEYFILE`.
| timeout integer |  | Specifies the timeout in seconds for communicating with the network device for either connecting or sending commands. If the timeout is exceeded before the operation is completed, the module will error.

transport
string

Choices:
- cli
- rest ←

Configures the transport connection to use when connecting to the remote device.

| user string / required |  | The username to connect to the BIG-IP with. This user must have administrative privileges on the device. You may omit this option by setting the environment variable `F5_USER`.

validate_certs
boolean

Choices:
- no
- yes ←

If `no`, SSL certificates are not validated. Use this only on personally controlled sites using self-signed certificates.
You may omit this option by setting the environment variable `F5_VALIDATE_CERTS`.

sflow_poll_interval integer added in 2.8 |  | Specifies the maximum interval in seconds between two pollings.
sflow_sampling_rate integer added in 2.8 |  | Specifies the ratio of packets observed to the samples generated.

source_check
boolean
added in 2.8

Choices:
- no
- yes

When `yes`, specifies that the system verifies that the return route to an initial packet is the same VLAN from which the packet originated.
The system performs this verification only if the `auto_last_hop` option is `no`.

state
string

Choices:
- absent
- present ←

The state of the VLAN on the system. When `present`, guarantees that the VLAN exists with the provided attributes. When `absent`, removes the VLAN from the system.

tag integer |  | Tag number for the VLAN. The tag number can be any integer between 1 and 4094. The system automatically assigns a tag number if you do not specify a value.
tagged_interfaces list |  | Specifies a list of tagged interfaces and trunks that you want to configure for the VLAN. Use tagged interfaces or trunks when you want to assign a single interface or trunk to multiple VLANs. This parameter is mutually exclusive with the `untagged_interfaces` and `interfaces` parameters. aliases: tagged_interface
untagged_interfaces list |  | Specifies a list of untagged interfaces and trunks that you want to configure for the VLAN. This parameter is mutually exclusive with the `tagged_interfaces` and `interfaces` parameters. aliases: untagged_interface

## Notes

Note

- Requires BIG-IP versions >= 12.0.0
- For more information on using Ansible to manage F5 Networks devices see https://www.ansible.com/integrations/networks/f5.
- Requires BIG-IP software version >= 12.
- The F5 modules only manipulate the running configuration of the F5 product. To ensure that BIG-IP specific configuration persists to disk, be sure to include at least one task that uses the bigip_config module to save the running configuration. Refer to the module’s documentation for the correct usage of the module to save your running configuration.

## Examples

    - name: Create VLAN
      bigip_vlan:
        name: net1
        provider:
          password: secret
          server: lb.mydomain.com
          user: admin
      delegate_to: localhost

    - name: Set VLAN tag
      bigip_vlan:
        name: net1
        tag: 2345
        provider:
          user: admin
          password: secret
          server: lb.mydomain.com
      delegate_to: localhost

    - name: Add VLAN 2345 as tagged to interface 1.1
      bigip_vlan:
        tagged_interface: 1.1
        name: net1
        tag: 2345
        provider:
          password: secret
          server: lb.mydomain.com
          user: admin
      delegate_to: localhost

    - name: Add VLAN 1234 as tagged to interfaces 1.1 and 1.2
      bigip_vlan:
        tagged_interfaces:
          - 1.1
          - 1.2
        name: net1
        tag: 1234
        provider:
          user: admin
          password: secret
          server: lb.mydomain.com
      delegate_to: localhost

## Return Values

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

Key | Returned | Description
--- | --- | ---
cmp_hash string | changed | New traffic disaggregation method. Sample: source-address
dag_tunnel string | changed | The new DAG tunnel setting. Sample: outer
description string | changed | The description set on the VLAN. Sample: foo VLAN
fail_safe boolean | changed | The new Fail Safe setting.
fail_safe_action string | changed | The new Fail Safe Action setting. Sample: reboot
fail_safe_timeout integer | changed | The new Fail Safe Timeout setting. Sample: 90
interfaces list | changed | Interfaces that the VLAN is assigned to. Sample: ['1.1', '1.2']
partition string | changed | The partition that the VLAN was created on. Sample: Common
sflow_poll_interval integer | changed | The new sFlow Polling Interval setting. Sample: 10
sflow_sampling_rate integer | changed | The new sFlow Sampling Rate setting. Sample: 20
source_check boolean | changed | The new Source Check setting. Sample: True
tag integer | changed | The ID of the VLAN. Sample: 2345

## Status

- This module is guaranteed to have backward compatible interface changes going forward. [stableinterface]
- This module is maintained by an Ansible Partner. [certified]

### Authors

- Tim Rupp (@caphrim007)
- Wojciech Wypior (@wojtek0806)

Hint

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