# ce_ip_interface – Manages L3 attributes for IPv4 and IPv6 interfaces on HUAWEI CloudEngine switches

New in version 2.4.

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

## Synopsis

- Manages Layer 3 attributes for IPv4 and IPv6 interfaces on HUAWEI CloudEngine switches.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
addr - |  | IPv4 or IPv6 Address.
interface - / required |  | Full name of interface, i.e. 40GE1/0/22, vlanif10.

ipv4_type
-

Choices:
- main ←
- sub

Specifies an address type. The value is an enumerated type. main, primary IP address. sub, secondary IP address.

mask - |  | Subnet mask for IPv4 or IPv6 Address in decimal format.

state
-

Choices:
- present ←
- absent

Specify desired state of the resource.

version
-

Choices:
- v4 ←
- v6

IP address version.

## Notes

Note

- Interface must already be a L3 port when using this module.
- Logical interfaces (loopback, vlanif) must be created first.
- `mask` must be inserted in decimal format (i.e. 24) for both IPv6 and IPv4.
- A single interface can have multiple IPv6 configured.
- This module requires the netconf system service be enabled on the remote device being managed.
- Recommended connection is `netconf`.
- This module also works with `local` connections for legacy playbooks.

## Examples

    - name: ip_interface module test
      hosts: cloudengine
      connection: local
      gather_facts: no
      vars:
        cli:
          host: "{{ inventory_hostname }}"
          port: "{{ ansible_ssh_port }}"
          username: "{{ username }}"
          password: "{{ password }}"
          transport: cli

      tasks:
      - name: Ensure ipv4 address is configured on 10GE1/0/22
        ce_ip_interface:
          interface: 10GE1/0/22
          version: v4
          state: present
          addr: 20.20.20.20
          mask: 24
          provider: '{{ cli }}'

      - name: Ensure ipv4 secondary address is configured on 10GE1/0/22
        ce_ip_interface:
          interface: 10GE1/0/22
          version: v4
          state: present
          addr: 30.30.30.30
          mask: 24
          ipv4_type: sub
          provider: '{{ cli }}'

      - name: Ensure ipv6 is enabled on 10GE1/0/22
        ce_ip_interface:
          interface: 10GE1/0/22
          version: v6
          state: present
          provider: '{{ cli }}'

      - name: Ensure ipv6 address is configured on 10GE1/0/22
        ce_ip_interface:
          interface: 10GE1/0/22
          version: v6
          state: present
          addr: 2001::db8:800:200c:cccb
          mask: 64
          provider: '{{ cli }}'

## Return Values

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

Key | Returned | Description
--- | --- | ---
changed boolean | always | check to see if a change was made on the device Sample: True
end_state dictionary | always | k/v pairs of IP attributes after module execution Sample: {'ipv4': [{'ifIpAddr': '20.20.20.20', 'subnetMask': '255.255.255.0', 'addrType': 'main'}], 'interface': '10GE1/0/22'}
existing dictionary | always | k/v pairs of existing IP attributes on the interface Sample: {'ipv4': [{'ifIpAddr': '11.11.11.11', 'subnetMask': '255.255.0.0', 'addrType': 'main'}], 'interface': '10GE1/0/22'}
proposed dictionary | always | k/v pairs of parameters passed into module Sample: {'addr': '20.20.20.20', 'interface': '10GE1/0/22', 'mask': '24'}
updates list | always | commands sent to the device Sample: ['interface 10GE1/0/22', 'ip address 20.20.20.20 24']

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Community. [community]

### Authors

- QijunPan (@QijunPan)

Hint

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