# vyos_l3_interfaces – Manages L3 interface attributes of VyOS network devices

New in version 2.9.

- Synopsis

- Parameters

- Notes

- Examples

- Return Values

- Status

## Synopsis

- This module manages the L3 interface attributes on VyOS network devices.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
config list / elements=dictionary |  | The provided L3 interfaces configuration.
| ipv4 list / elements=dictionary |  | List of IPv4 addresses of the interface.
|  | address string |  | IPv4 address of the interface.
| ipv6 list / elements=dictionary |  | List of IPv6 addresses of the interface.
|  | address string |  | IPv6 address of the interface.
| name string / required |  | Full name of the interface, e.g. eth0, eth1.
| vifs list / elements=dictionary |  | Virtual sub-interfaces L3 configurations.
|  | ipv4 list / elements=dictionary |  | List of IPv4 addresses of the virtual interface.
|  |  | address string |  | IPv4 address of the virtual interface.
|  | ipv6 list / elements=dictionary |  | List of IPv6 addresses of the virtual interface.
|  |  | address string |  | IPv6 address of the virtual interface.
|  | vlan_id integer |  | Identifier for the virtual sub-interface.

state
string

Choices:
- merged ←
- replaced
- overridden
- deleted

The state of the configuration after module completion.

## Notes

Note

- Tested against VyOS 1.1.8 (helium).

- This module works with connection `network_cli`. See the VyOS OS Platform Options.

## Examples

    # Using merged
    #
    # Before state:
    # -------------
    #
    # vyos:~$ show configuration commands | grep -e eth[2,3]
    # set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23'
    # set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
    # set interfaces ethernet eth3 vif 101
    # set interfaces ethernet eth3 vif 102

    - name: Merge provided configuration with device configuration
      vyos_l3_interfaces:
        config:
          - name: eth2
            ipv4:
              - address: 192.0.2.10/28
              - address: 198.51.100.40/27
            ipv6:
              - address: 2001:db8:100::2/32
              - address: 2001:db8:400::10/32

          - name: eth3
            ipv4:
              - address: 203.0.113.65/26
            vifs:
              - vlan_id: 101
                ipv4:
                  - address: 192.0.2.71/28
                  - address: 198.51.100.131/25
              - vlan_id: 102
                ipv6:
                  - address: 2001:db8:1000::5/38
                  - address: 2001:db8:1400::3/38
        state: merged

    # After state:
    # -------------
    #
    # vyos:~$ show configuration commands | grep -e eth[2,3]
    # set interfaces ethernet eth2 address '192.0.2.10/28'
    # set interfaces ethernet eth2 address '198.51.100.40/27'
    # set interfaces ethernet eth2 address '2001:db8:100::2/32'
    # set interfaces ethernet eth2 address '2001:db8:400::10/32'
    # set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23'
    # set interfaces ethernet eth3 address '203.0.113.65/26'
    # set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
    # set interfaces ethernet eth3 vif 101 address '192.0.2.71/28'
    # set interfaces ethernet eth3 vif 101 address '198.51.100.131/25'
    # set interfaces ethernet eth3 vif 102 address '2001:db8:1000::5/38'
    # set interfaces ethernet eth3 vif 102 address '2001:db8:1400::3/38'
    # set interfaces ethernet eth3 vif 102 address '2001:db8:4000::2/34'

    # Using replaced
    #
    # Before state:
    # -------------
    #
    # vyos:~$ show configuration commands | grep eth
    # set interfaces ethernet eth0 address 'dhcp'
    # set interfaces ethernet eth0 duplex 'auto'
    # set interfaces ethernet eth0 hw-id '08:00:27:30:f0:22'
    # set interfaces ethernet eth0 smp-affinity 'auto'
    # set interfaces ethernet eth0 speed 'auto'
    # set interfaces ethernet eth1 hw-id '08:00:27:EA:0F:B9'
    # set interfaces ethernet eth1 address '192.0.2.14/24'
    # set interfaces ethernet eth2 address '192.0.2.10/24'
    # set interfaces ethernet eth2 address '192.0.2.11/24'
    # set interfaces ethernet eth2 address '2001:db8::10/32'
    # set interfaces ethernet eth2 address '2001:db8::11/32'
    # set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23'
    # set interfaces ethernet eth3 address '198.51.100.10/24'
    # set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
    # set interfaces ethernet eth3 vif 101 address '198.51.100.130/25'
    # set interfaces ethernet eth3 vif 101 address '198.51.100.131/25'
    # set interfaces ethernet eth3 vif 102 address '2001:db8:4000::3/34'
    # set interfaces ethernet eth3 vif 102 address '2001:db8:4000::2/34'
    #
    - name: Replace device configurations of listed interfaces with provided configurations
      vyos_l3_interfaces:
        config:
          - name: eth2
            ipv4:
              - address: 192.0.2.10/24

          - name: eth3
            ipv6:
              - address: 2001:db8::11/32
        state: replaced

    # After state:
    # -------------
    #
    # vyos:~$ show configuration commands | grep eth
    # set interfaces ethernet eth0 address 'dhcp'
    # set interfaces ethernet eth0 duplex 'auto'
    # set interfaces ethernet eth0 hw-id '08:00:27:30:f0:22'
    # set interfaces ethernet eth0 smp-affinity 'auto'
    # set interfaces ethernet eth0 speed 'auto'
    # set interfaces ethernet eth1 hw-id '08:00:27:EA:0F:B9'
    # set interfaces ethernet eth1 address '192.0.2.14/24'
    # set interfaces ethernet eth2 address '192.0.2.10/24'
    # set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23'
    # set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
    # set interfaces ethernet eth3 address '2001:db8::11/32'
    # set interfaces ethernet eth3 vif 101
    # set interfaces ethernet eth3 vif 102

    # Using overridden
    #
    # Before state
    # --------------
    #
    # vyos@vyos-appliance:~$ show configuration commands | grep eth
    # set interfaces ethernet eth0 address 'dhcp'
    # set interfaces ethernet eth0 duplex 'auto'
    # set interfaces ethernet eth0 hw-id '08:00:27:30:f0:22'
    # set interfaces ethernet eth0 smp-affinity 'auto'
    # set interfaces ethernet eth0 speed 'auto'
    # set interfaces ethernet eth1 hw-id '08:00:27:EA:0F:B9'
    # set interfaces ethernet eth1 address '192.0.2.14/24'
    # set interfaces ethernet eth2 address '192.0.2.10/24'
    # set interfaces ethernet eth2 address '192.0.2.11/24'
    # set interfaces ethernet eth2 address '2001:db8::10/32'
    # set interfaces ethernet eth2 address '2001:db8::11/32'
    # set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23'
    # set interfaces ethernet eth3 address '198.51.100.10/24'
    # set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
    # set interfaces ethernet eth3 vif 101 address '198.51.100.130/25'
    # set interfaces ethernet eth3 vif 101 address '198.51.100.131/25'
    # set interfaces ethernet eth3 vif 102 address '2001:db8:4000::3/34'
    # set interfaces ethernet eth3 vif 102 address '2001:db8:4000::2/34'

    - name: Overrides all device configuration with provided configuration
      vyos_l3_interfaces:
        config:
          - name: eth0
            ipv4:
              - address: dhcp
            ipv6:
              - address: dhcpv6
        state: overridden

    # After state
    # ------------
    #
    # vyos@vyos-appliance:~$ show configuration commands | grep eth
    # set interfaces ethernet eth0 address 'dhcp'
    # set interfaces ethernet eth0 address 'dhcpv6'
    # set interfaces ethernet eth0 duplex 'auto'
    # set interfaces ethernet eth0 hw-id '08:00:27:30:f0:22'
    # set interfaces ethernet eth0 smp-affinity 'auto'
    # set interfaces ethernet eth0 speed 'auto'
    # set interfaces ethernet eth1 hw-id '08:00:27:EA:0F:B9'
    # set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23'
    # set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
    # set interfaces ethernet eth3 vif 101
    # set interfaces ethernet eth3 vif 102

    # Using deleted
    #
    # Before state
    # -------------
    # vyos@vyos-appliance:~$ show configuration commands | grep eth
    # set interfaces ethernet eth0 address 'dhcp'
    # set interfaces ethernet eth0 duplex 'auto'
    # set interfaces ethernet eth0 hw-id '08:00:27:30:f0:22'
    # set interfaces ethernet eth0 smp-affinity 'auto'
    # set interfaces ethernet eth0 speed 'auto'
    # set interfaces ethernet eth1 hw-id '08:00:27:EA:0F:B9'
    # set interfaces ethernet eth1 address '192.0.2.14/24'
    # set interfaces ethernet eth2 address '192.0.2.10/24'
    # set interfaces ethernet eth2 address '192.0.2.11/24'
    # set interfaces ethernet eth2 address '2001:db8::10/32'
    # set interfaces ethernet eth2 address '2001:db8::11/32'
    # set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23'
    # set interfaces ethernet eth3 address '198.51.100.10/24'
    # set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
    # set interfaces ethernet eth3 vif 101 address '198.51.100.130/25'
    # set interfaces ethernet eth3 vif 101 address '198.51.100.131/25'
    # set interfaces ethernet eth3 vif 102 address '2001:db8:4000::3/34'
    # set interfaces ethernet eth3 vif 102 address '2001:db8:4000::2/34'

    - name: Delete L3 attributes of given interfaces (Note - This won't delete the interface itself)
      vyos_l3_interfaces:
        config:
          - name: eth1
          - name: eth2
          - name: eth3
        state: deleted

    # After state
    # ------------
    # vyos@vyos-appliance:~$ show configuration commands | grep eth
    # set interfaces ethernet eth0 address 'dhcp'
    # set interfaces ethernet eth0 duplex 'auto'
    # set interfaces ethernet eth0 hw-id '08:00:27:f3:6c:b5'
    # set interfaces ethernet eth0 smp_affinity 'auto'
    # set interfaces ethernet eth0 speed 'auto'
    # set interfaces ethernet eth1 hw-id '08:00:27:ad:ef:65'
    # set interfaces ethernet eth1 smp_affinity 'auto'
    # set interfaces ethernet eth2 hw-id '08:00:27:ab:4e:79'
    # set interfaces ethernet eth2 smp_affinity 'auto'
    # set interfaces ethernet eth3 hw-id '08:00:27:17:3c:85'
    # set interfaces ethernet eth3 smp_affinity 'auto'

## Return Values

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

Key | Returned | Description
--- | --- | ---
after list | when changed | The configuration as structured data after module completion. Sample: The configuration returned will always be in the same format of the parameters above.
before list | always | The configuration as structured data prior to module invocation. Sample: The configuration returned will always be in the same format of the parameters above.
commands list | always | The set of commands pushed to the remote device. Sample: ['set interfaces ethernet eth1 192.0.2.14/2', 'set interfaces ethernet eth3 vif 101 address 198.51.100.130/25']

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]

- This module is maintained by the Ansible Network Team. [network]

### Red Hat Support

More information about Red Hat’s support of this module is available from this Red Hat Knowledge Base article.

### Authors

- Nilashish Chakraborty (@NilashishC)

Hint

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