Interface Ethernet
This feature manages Ethernet interface configuration including physical interfaces and subinterfaces. Ethernet interfaces provide the fundamental physical and logical connectivity for network devices, supporting various speeds from FastEthernet (100 Mbps) to multi-gigabit rates (1G - 800G) with comprehensive Layer 2 and Layer 3 capabilities.
Diagram
Section titled “Diagram”Classes
Section titled “Classes”interfaces (iosxr.devices.configuration)
Section titled “interfaces (iosxr.devices.configuration)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| ethernets | List | [ethernets] | No |
ethernets (iosxr.devices.configuration.interfaces)
Section titled “ethernets (iosxr.devices.configuration.interfaces)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| type | Choice | MgmtEth, FastEthernet, GigabitEthernet, TenGigE, TwentyFiveGigE, FortyGigE, FiftyGigE, HundredGigE, TwoHundredGigE, FourHundredGigE, EightHundredGigE | Yes | |
| id | String | Regex: ^[0-9]+(/[0-9]+)*$ | Yes | |
| managed | Boolean | true, false | No | true |
| interface_groups | List | String | No | |
| arp_cache_limit | Integer | min: 0, max: 127999 | No | |
| arp_gratuitous_ignore | Boolean | true, false | No | |
| arp_learning_disable | Boolean | true, false | No | |
| arp_learning_local | Boolean | true, false | No | |
| arp_timeout | Integer | min: 30, max: 2144448000 | No | |
| bandwidth | Integer | min: 0, max: 9223372036854775807 | No | |
| bundle_id | Integer | min: 1, max: 65535 | No | |
| bundle_id_mode | Choice | active, inherit, on, passive | No | |
| bundle_port_priority | Integer | min: 1, max: 65535 | No | |
| carrier_delay_down | Integer | min: 0, max: 2147483647 | No | |
| carrier_delay_up | Integer | min: 0, max: 2147483647 | No | |
| cdp | Boolean | true, false | No | |
| dampening | Boolean | true, false | No | |
| dampening_decay_half_life | Integer | min: 1, max: 45 | No | |
| dampening_max_suppress_time | Integer | min: 1, max: 255 | No | |
| dampening_restart_penalty | Integer | min: 0, max: 20000 | No | |
| dampening_reuse_threshold | Integer | min: 1, max: 20000 | No | |
| dampening_suppress_threshold | Integer | min: 1, max: 20000 | No | |
| description | String | No | ||
| duplex | Choice | full, half | No | |
| encapsulation_dot1q_vlan_id | Integer | min: 1, max: 4094 | No | |
| encapsulation_dot1q_second_dot1q | Integer | min: 1, max: 4094 | No | |
| ethernet_cfm | Class | [ethernet_cfm] | No | |
| fec | Choice | base-r, none, standard | No | |
| flow_control | Choice | bidirectional, egress, ingress | No | |
| flow_ipv4_egress_monitor_samplers | List | [flow_ipv4_egress_monitor_samplers] | No | |
| flow_ipv4_egress_monitors | List | [flow_ipv4_egress_monitors] | No | |
| flow_ipv4_ingress_monitor_samplers | List | [flow_ipv4_ingress_monitor_samplers] | No | |
| flow_ipv4_ingress_monitors | List | [flow_ipv4_ingress_monitors] | No | |
| flow_ipv6_egress_monitor_samplers | List | [flow_ipv6_egress_monitor_samplers] | No | |
| flow_ipv6_egress_monitors | List | [flow_ipv6_egress_monitors] | No | |
| flow_ipv6_ingress_monitor_samplers | List | [flow_ipv6_ingress_monitor_samplers] | No | |
| flow_ipv6_ingress_monitors | List | [flow_ipv6_ingress_monitors] | No | |
| frequency_synchronization | Class | [frequency_synchronization] | No | |
| ipv4 | Class | [ipv4] | No | |
| ipv6 | Class | [ipv6] | No | |
| l2transport | Boolean | true, false | No | |
| l2transport_encapsulation_dot1q_second_dot1q | String | No | ||
| l2transport_encapsulation_dot1q_vlan_id | String | No | ||
| lacp_period | Integer | min: 2, max: 30000 | No | |
| lacp_period_short | Boolean | true, false | No | |
| lldp | Boolean | true, false | No | |
| lldp_receive_disable | Boolean | true, false | No | |
| lldp_tagged | Boolean | true, false | No | |
| lldp_transmit_disable | Boolean | true, false | No | |
| load_interval | Integer | No | ||
| logging_events_link_status | Boolean | true, false | No | |
| mac_address | String | No | ||
| macsec_eap_policy | String | No | ||
| macsec_fallback_psk_keychain | String | No | ||
| macsec_policy | String | No | ||
| macsec_psk_keychain_name | String | No | ||
| monitor_sessions | List | [monitor_sessions] | No | |
| mpls_mtu | Integer | min: 68, max: 65535 | No | |
| mtu | Integer | min: 64, max: 65535 | No | |
| multipoint | Boolean | true, false | No | |
| negotiation_auto | Boolean | true, false | No | |
| negotiation_auto_allow_overrides | Boolean | true, false | No | |
| point_to_point | Boolean | true, false | No | |
| proxy_arp | Boolean | true, false | No | |
| ptp | Class | [ptp] | No | |
| rewrite_ingress_tag_pop_one | Boolean | true, false | No | |
| rewrite_ingress_tag_pop_two | Boolean | true, false | No | |
| speed | Choice | 10, 100, 1000 | No | |
| service_policy_input | List | [service_policy_input] | No | |
| service_policy_output | List | [service_policy_output] | No | |
| shutdown | Boolean | true, false | No | |
| subinterfaces | List | [subinterfaces] | No | |
| vrf | String | No |
ethernet_cfm (iosxr.devices.configuration.interfaces.ethernets)
Section titled “ethernet_cfm (iosxr.devices.configuration.interfaces.ethernets)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| mep_domains | List | [mep_domains] | No | |
| ais_transmission_up_interval | Choice | 1s, 1m | No | |
| ais_transmission_up_cos | Integer | min: 0, max: 7 | No | |
| bandwidth_notifications_hold_off | Integer | min: 0, max: 600 | No | |
| bandwidth_notifications_wait_to_restore | Integer | min: 0, max: 600 | No | |
| bandwidth_notifications_loss_threshold | Integer | min: 2, max: 255 | No | |
| bandwidth_notifications_log_changes | Boolean | true, false | No |
flow_ipv4_egress_monitor_samplers (iosxr.devices.configuration.interfaces.ethernets)
Section titled “flow_ipv4_egress_monitor_samplers (iosxr.devices.configuration.interfaces.ethernets)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| monitor_map_name | String | No | ||
| sampler_map_name | String | No |
flow_ipv4_egress_monitors (iosxr.devices.configuration.interfaces.ethernets)
Section titled “flow_ipv4_egress_monitors (iosxr.devices.configuration.interfaces.ethernets)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| monitor_map_name | String | No |
frequency_synchronization (iosxr.devices.configuration.interfaces.ethernets)
Section titled “frequency_synchronization (iosxr.devices.configuration.interfaces.ethernets)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| enabled | Boolean | true, false | No | |
| priority | Integer | min: 1, max: 254 | No | |
| quality_receive_exact_itu_t_option_one | Choice | dnu, e-eec, e-prtc, eec1, prc, prtc, sec, ssu-a, ssu-b | No | |
| quality_receive_exact_itu_t_option_two_generation_one | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st4, stu | No | |
| quality_receive_exact_itu_t_option_two_generation_two | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st3e, st4, stu, tnc | No | |
| quality_receive_highest_itu_t_option_one | Choice | dnu, e-eec, e-prtc, eec1, prc, prtc, sec, ssu-a, ssu-b | No | |
| quality_receive_highest_itu_t_option_two_generation_one | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st4, stu | No | |
| quality_receive_highest_itu_t_option_two_generation_two | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st3e, st4, stu, tnc | No | |
| quality_receive_lowest_itu_t_option_one | Choice | dnu, e-eec, e-prtc, eec1, prc, prtc, sec, ssu-a, ssu-b | No | |
| quality_receive_lowest_itu_t_option_two_generation_one | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st4, stu | No | |
| quality_receive_lowest_itu_t_option_two_generation_two | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st3e, st4, stu, tnc | No | |
| quality_transmit_exact_itu_t_option_one | Choice | dnu, e-eec, e-prtc, eec1, prc, prtc, sec, ssu-a, ssu-b | No | |
| quality_transmit_exact_itu_t_option_two_generation_one | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st4, stu | No | |
| quality_transmit_exact_itu_t_option_two_generation_two | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st3e, st4, stu, tnc | No | |
| quality_transmit_highest_itu_t_option_one | Choice | dnu, e-eec, e-prtc, eec1, prc, prtc, sec, ssu-a, ssu-b | No | |
| quality_transmit_highest_itu_t_option_two_generation_one | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st4, stu | No | |
| quality_transmit_highest_itu_t_option_two_generation_two | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st3e, st4, stu, tnc | No | |
| quality_transmit_lowest_itu_t_option_one | Choice | dnu, e-eec, e-prtc, eec1, prc, prtc, sec, ssu-a, ssu-b | No | |
| quality_transmit_lowest_itu_t_option_two_generation_one | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st4, stu | No | |
| quality_transmit_lowest_itu_t_option_two_generation_two | Choice | dus, e-eec, e-prtc, eec2, prs, prtc, smc, st2, st3, st3e, st4, stu, tnc | No | |
| selection_input | Boolean | true, false | No | |
| ssm_disable | Boolean | true, false | No | |
| time_of_day_priority | Integer | min: 1, max: 254 | No | |
| wait_to_restore | Integer | min: 0, max: 12 | No |
ipv4 (iosxr.devices.configuration.interfaces.ethernets)
Section titled “ipv4 (iosxr.devices.configuration.interfaces.ethernets)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| access_group_egress_acl | String | No | ||
| access_group_egress_compress | Integer | No | ||
| access_group_egress_hardware_count | Boolean | true, false | No | |
| access_group_egress_interface_statistics | Boolean | true, false | No | |
| access_group_ingress_acl1 | String | No | ||
| access_group_ingress_compress | Integer | No | ||
| access_group_ingress_hardware_count | Boolean | true, false | No | |
| access_group_ingress_interface_statistics | Boolean | true, false | No | |
| address | IP | No | ||
| netmask | IP | No | ||
| algorithm | Integer | min: 128, max: 255 | No | |
| forwarding_enable | Boolean | true, false | No | |
| helper_addresses | List | [helper_addresses] | No | |
| mask_reply | Boolean | true, false | No | |
| mtu | Integer | min: 68, max: 65535 | No | |
| point_to_point | Boolean | true, false | No | |
| redirects | Boolean | true, false | No | |
| route_tag | Integer | min: 1, max: 4294967295 | No | |
| secondaries | List | [secondaries] | No | |
| tcp_mss_adjust | Boolean | true, false | No | |
| ttl_propagate_disable | Boolean | true, false | No | |
| unnumbered | String | No | ||
| unreachables_disable | Boolean | true, false | No | |
| verify_unicast_source_reachable_via_allow_default | Boolean | true, false | No | |
| verify_unicast_source_reachable_via_allow_self_ping | Boolean | true, false | No | |
| verify_unicast_source_reachable_via_type | Choice | any, rx | No |
ipv6 (iosxr.devices.configuration.interfaces.ethernets)
Section titled “ipv6 (iosxr.devices.configuration.interfaces.ethernets)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| access_group_egress_acl | String | No | ||
| access_group_egress_compress | Integer | No | ||
| access_group_egress_interface_statistics | Boolean | true, false | No | |
| access_group_ingress_acl1 | String | No | ||
| access_group_ingress_compress | Integer | No | ||
| access_group_ingress_interface_statistics | Boolean | true, false | No | |
| addresses | List | [addresses] | No | |
| autoconfig | Boolean | true, false | No | |
| dhcp | Boolean | true, false | No | |
| enable | Boolean | true, false | No | |
| eui64_addresses | List | [eui64_addresses] | No | |
| link_local_address | IP | No | ||
| link_local_route_tag | Integer | min: 1, max: 4294967295 | No | |
| link_local_zone | String | No | ||
| mtu | Integer | min: 1280, max: 65535 | No | |
| nd_cache_limit | Integer | min: 0, max: 128000 | No | |
| nd_dad_attempts | Integer | min: 0, max: 600 | No | |
| nd_managed_config_flag | Boolean | true, false | No | |
| nd_ns_interval | Integer | min: 1000, max: 4294967295 | No | |
| nd_other_config_flag | Boolean | true, false | No | |
| nd_prefix_default_no_adv | Boolean | true, false | No | |
| nd_prefix_default_no_autoconfig | Boolean | true, false | No | |
| nd_ra_interval_max | Integer | min: 4, max: 1800 | No | |
| nd_ra_interval_min | Integer | min: 3, max: 1800 | No | |
| nd_ra_lifetime | Integer | min: 0, max: 9000 | No | |
| nd_reachable_time | Integer | min: 0, max: 3600000 | No | |
| nd_redirects | Boolean | true, false | No | |
| nd_suppress_ra | Boolean | true, false | No | |
| nd_unicast_ra | Boolean | true, false | No | |
| tcp_mss_adjust | Boolean | true, false | No | |
| ttl_propagate_disable | Boolean | true, false | No | |
| unreachables_disable | Boolean | true, false | No | |
| verify_unicast_source_reachable_via_allow_default | Boolean | true, false | No | |
| verify_unicast_source_reachable_via_allow_self_ping | Boolean | true, false | No | |
| verify_unicast_source_reachable_via_type | Choice | any, rx | No |
monitor_sessions (iosxr.devices.configuration.interfaces.ethernets)
Section titled “monitor_sessions (iosxr.devices.configuration.interfaces.ethernets)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| session_name | String | Yes | ||
| acl | Boolean | true, false | No | |
| acl_ipv4_name | String | No | ||
| acl_ipv6_name | String | No | ||
| direction_rx_only | Boolean | true, false | No | |
| direction_tx_only | Boolean | true, false | No | |
| ethernet | Boolean | true, false | No | |
| mirror_first | Integer | min: 1, max: 10000 | No | |
| mirror_interval | Choice | 128, 16, 16K, 1K, 2, 256, 2K, 32, 4, 4K, 512, 64, 8, 8K | No | |
| port_level | Boolean | true, false | No |
ptp (iosxr.devices.configuration.interfaces.ethernets)
Section titled “ptp (iosxr.devices.configuration.interfaces.ethernets)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| enable | Boolean | true, false | No | |
| announce_frequency | Choice | 1, 128, 16, 2, 32, 4, 64, 8 | No | |
| announce_grant_duration | Integer | min: 60, max: 1000 | No | |
| announce_interval | Choice | 1, 128, 16, 2, 32, 4, 64, 8 | No | |
| announce_timeout | Integer | min: 2, max: 10 | No | |
| clock_operation_one_step | Boolean | true, false | No | |
| clock_operation_two_step | Boolean | true, false | No | |
| cos | Integer | min: 0, max: 7 | No | |
| cos_event | Integer | min: 0, max: 7 | No | |
| cos_general | Integer | min: 0, max: 7 | No | |
| delay_asymmetry_unit_microseconds | Boolean | true, false | No | |
| delay_asymmetry_unit_milliseconds | Boolean | true, false | No | |
| delay_asymmetry_unit_nanoseconds | Boolean | true, false | No | |
| delay_asymmetry_value | Integer | min: -500000000, max: 500000000 | No | |
| delay_request_frequency | Choice | 1, 128, 16, 2, 32, 4, 64, 8 | No | |
| delay_request_interval | Choice | 1, 128, 16, 2, 32, 4, 64, 8 | No | |
| delay_response_grant_duration | Integer | min: 60, max: 1000 | No | |
| delay_response_timeout | Integer | min: 100, max: 100000 | No | |
| dscp | Integer | min: 0, max: 63 | No | |
| dscp_event | Integer | min: 0, max: 63 | No | |
| dscp_general | Integer | min: 0, max: 63 | No | |
| interop_domain | Integer | min: 0, max: 255 | No | |
| interop_egress_conversion_clock_accuracy | Integer | min: 0, max: 254 | No | |
| interop_egress_conversion_clock_class_default | Integer | min: 0, max: 255 | No | |
| interop_egress_conversion_clock_class_mappings | List | [interop_egress_conversion_clock_class_mappings] | No | |
| interop_egress_conversion_offset_scaled_log_variance | Integer | min: 0, max: 65535 | No | |
| interop_egress_conversion_priority1 | Integer | min: 0, max: 255 | No | |
| interop_egress_conversion_priority2 | Integer | min: 0, max: 255 | No | |
| interop_ingress_conversion_clock_accuracy | Integer | min: 0, max: 254 | No | |
| interop_ingress_conversion_clock_class_default | Integer | min: 0, max: 255 | No | |
| interop_ingress_conversion_clock_class_mappings | List | [interop_ingress_conversion_clock_class_mappings] | No | |
| interop_ingress_conversion_offset_scaled_log_variance | Integer | min: 0, max: 65535 | No | |
| interop_ingress_conversion_priority1 | Integer | min: 0, max: 255 | No | |
| interop_ingress_conversion_priority2 | Integer | min: 0, max: 255 | No | |
| interop_profile_default | Boolean | true, false | No | |
| interop_profile_g_8265_1 | Boolean | true, false | No | |
| interop_profile_g_8275_1 | Boolean | true, false | No | |
| interop_profile_g_8275_2 | Boolean | true, false | No | |
| ipv4_ttl | Integer | min: 1, max: 255 | No | |
| ipv6_hop_limit | Integer | min: 1, max: 255 | No | |
| local_priority | Integer | min: 1, max: 255 | No | |
| master_ethernets | List | [master_ethernets] | No | |
| master_ipv4s | List | [master_ipv4s] | No | |
| master_ipv6s | List | [master_ipv6s] | No | |
| multicast | Boolean | true, false | No | |
| multicast_disable | Boolean | true, false | No | |
| multicast_mixed | Boolean | true, false | No | |
| multicast_target_address_mac_forwardable | Boolean | true, false | No | |
| multicast_target_address_mac_non_forwardable | Boolean | true, false | No | |
| port_state_any | Boolean | true, false | No | |
| port_state_master_only | Boolean | true, false | No | |
| port_state_slave_only | Boolean | true, false | No | |
| profile | String | No | ||
| slave_ethernets | List | [slave_ethernets] | No | |
| slave_ipv4s | List | [slave_ipv4s] | No | |
| slave_ipv6s | List | [slave_ipv6s] | No | |
| source_ipv4_address | String | No | ||
| source_ipv4_address_disable | Boolean | true, false | No | |
| source_ipv6_address | String | No | ||
| source_ipv6_address_disable | Boolean | true, false | No | |
| sync_frequency | Choice | 1, 128, 16, 2, 32, 4, 64, 8 | No | |
| sync_grant_duration | Integer | min: 60, max: 1000 | No | |
| sync_interval | Choice | 1, 128, 16, 2, 32, 4, 64, 8 | No | |
| sync_timeout | Integer | min: 100, max: 100000 | No | |
| transport_ethernet | Boolean | true, false | No | |
| transport_ipv4 | Boolean | true, false | No | |
| transport_ipv6 | Boolean | true, false | No | |
| unicast_grant_invalid_request_deny | Boolean | true, false | No | |
| unicast_grant_invalid_request_reduce | Boolean | true, false | No |
service_policy_input (iosxr.devices.configuration.interfaces.ethernets)
Section titled “service_policy_input (iosxr.devices.configuration.interfaces.ethernets)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | No |
subinterfaces (iosxr.devices.configuration.interfaces.ethernets)
Section titled “subinterfaces (iosxr.devices.configuration.interfaces.ethernets)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| id | String | Regex: ^[0-9]+(/[0-9]+)*\.[0-9]+$ | Yes | |
| interface_groups | List | String | No | |
| arp_cache_limit | Integer | min: 0, max: 127999 | No | |
| arp_gratuitous_ignore | Boolean | true, false | No | |
| arp_learning_disable | Boolean | true, false | No | |
| arp_learning_local | Boolean | true, false | No | |
| arp_timeout | Integer | min: 30, max: 2144448000 | No | |
| bandwidth | Integer | min: 0, max: 9223372036854775807 | No | |
| cdp | Boolean | true, false | No | |
| dampening | Boolean | true, false | No | |
| dampening_decay_half_life | Integer | min: 1, max: 45 | No | |
| dampening_max_suppress_time | Integer | min: 1, max: 255 | No | |
| dampening_reuse_threshold | Integer | min: 1, max: 20000 | No | |
| dampening_suppress_threshold | Integer | min: 1, max: 20000 | No | |
| description | String | No | ||
| encapsulation_dot1q_vlan_id | Integer | min: 1, max: 4094 | No | |
| encapsulation_dot1q_second_dot1q | Integer | min: 1, max: 4094 | No | |
| ethernet_cfm | Class | [ethernet_cfm] | No | |
| flow_ipv4_egress_monitor_samplers | List | [flow_ipv4_egress_monitor_samplers] | No | |
| flow_ipv4_egress_monitors | List | [flow_ipv4_egress_monitors] | No | |
| flow_ipv4_ingress_monitor_samplers | List | [flow_ipv4_ingress_monitor_samplers] | No | |
| flow_ipv4_ingress_monitors | List | [flow_ipv4_ingress_monitors] | No | |
| flow_ipv6_egress_monitor_samplers | List | [flow_ipv6_egress_monitor_samplers] | No | |
| flow_ipv6_egress_monitors | List | [flow_ipv6_egress_monitors] | No | |
| flow_ipv6_ingress_monitor_samplers | List | [flow_ipv6_ingress_monitor_samplers] | No | |
| flow_ipv6_ingress_monitors | List | [flow_ipv6_ingress_monitors] | No | |
| ipv4 | Class | [ipv4] | No | |
| ipv6 | Class | [ipv6] | No | |
| l2transport | Boolean | true, false | No | |
| l2transport_encapsulation_dot1q_second_dot1q | String | No | ||
| l2transport_encapsulation_dot1q_vlan_id | String | No | ||
| lldp | Boolean | true, false | No | |
| lldp_receive_disable | Boolean | true, false | No | |
| lldp_tagged | Boolean | true, false | No | |
| lldp_transmit_disable | Boolean | true, false | No | |
| load_interval | Integer | No | ||
| logging_events_link_status | Boolean | true, false | No | |
| macsec_eap_policy | String | No | ||
| macsec_fallback_psk_keychain | String | No | ||
| macsec_policy | String | No | ||
| macsec_psk_keychain_name | String | No | ||
| monitor_sessions | List | [monitor_sessions] | No | |
| mpls_mtu | Integer | min: 68, max: 65535 | No | |
| mtu | Integer | min: 64, max: 65535 | No | |
| multipoint | Boolean | true, false | No | |
| point_to_point | Boolean | true, false | No | |
| proxy_arp | Boolean | true, false | No | |
| ptp | Class | [ptp] | No | |
| rewrite_ingress_tag_pop_one | Boolean | true, false | No | |
| rewrite_ingress_tag_pop_two | Boolean | true, false | No | |
| service_policy_input | List | [service_policy_input] | No | |
| service_policy_output | List | [service_policy_output] | No | |
| shutdown | Boolean | true, false | No | |
| vrf | String | No |
mep_domains (iosxr.devices.configuration.interfaces.ethernets.ethernet_cfm)
Section titled “mep_domains (iosxr.devices.configuration.interfaces.ethernets.ethernet_cfm)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| domain_name | String | Yes | ||
| cos | Integer | No | ||
| loss_measurement_counters_aggregate | Boolean | true, false | No | |
| loss_measurement_counters_priority_cos_range_start | Integer | No | ||
| loss_measurement_counters_priority_cos_range_end | Integer | No | ||
| loss_measurement_counters_priority_cos_value_1 | Integer | No | ||
| loss_measurement_counters_priority_cos_value_2 | Integer | No | ||
| loss_measurement_counters_priority_cos_value_3 | Integer | No | ||
| loss_measurement_counters_priority_cos_value_4 | Integer | No | ||
| loss_measurement_counters_priority_cos_value_5 | Integer | No | ||
| loss_measurement_counters_priority_cos_value_6 | Integer | No | ||
| loss_measurement_counters_priority_cos_value_7 | Integer | No | ||
| mep_id | Integer | No | ||
| propagate_remote_status | Boolean | true, false | No | |
| service | String | No | ||
| sla_operation_profile_target_mep_ids | List | [sla_operation_profile_target_mep_ids] | No | |
| sla_operation_profile_target_mac_addresses | List | [sla_operation_profile_target_mac_addresses] | No |
helper_addresses (iosxr.devices.configuration.interfaces.ethernets.ipv4)
Section titled “helper_addresses (iosxr.devices.configuration.interfaces.ethernets.ipv4)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | Yes | ||
| vrf | String | Yes |
secondaries (iosxr.devices.configuration.interfaces.ethernets.ipv4)
Section titled “secondaries (iosxr.devices.configuration.interfaces.ethernets.ipv4)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | Yes | ||
| netmask | IP | Yes | ||
| algorithm | Integer | min: 128, max: 255 | No | |
| route_tag | Integer | min: 1, max: 4294967295 | No |
addresses (iosxr.devices.configuration.interfaces.ethernets.ipv6)
Section titled “addresses (iosxr.devices.configuration.interfaces.ethernets.ipv6)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | Yes | ||
| prefix_length | Integer | min: 0, max: 128 | Yes | |
| algorithm | Integer | min: 128, max: 255 | No | |
| route_tag | Integer | min: 1, max: 4294967295 | No | |
| zone | String | No |
eui64_addresses (iosxr.devices.configuration.interfaces.ethernets.ipv6)
Section titled “eui64_addresses (iosxr.devices.configuration.interfaces.ethernets.ipv6)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | Yes | ||
| prefix_length | Integer | min: 0, max: 128 | Yes | |
| algorithm | Integer | min: 128, max: 255 | No | |
| route_tag | Integer | min: 1, max: 4294967295 | No | |
| zone | String | No |
interop_egress_conversion_clock_class_mappings (iosxr.devices.configuration.interfaces.ethernets.ptp)
Section titled “interop_egress_conversion_clock_class_mappings (iosxr.devices.configuration.interfaces.ethernets.ptp)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| clock_class_to_map_from | Integer | min: 0, max: 255 | Yes | |
| clock_class_to_map_to | Integer | min: 0, max: 255 | Yes |
master_ethernets (iosxr.devices.configuration.interfaces.ethernets.ptp)
Section titled “master_ethernets (iosxr.devices.configuration.interfaces.ethernets.ptp)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | String | Yes | ||
| clock_class | Integer | min: 0, max: 255 | No | |
| delay_asymmetry | Integer | min: -500000000, max: 500000000 | No | |
| microseconds | Boolean | true, false | No | |
| milliseconds | Boolean | true, false | No | |
| multicast | Boolean | true, false | No | |
| multicast_mixed | Boolean | true, false | No | |
| nanoseconds | Boolean | true, false | No | |
| non_negotiated | Boolean | true, false | No | |
| priority | Integer | min: 0, max: 255 | No |
master_ipv4s (iosxr.devices.configuration.interfaces.ethernets.ptp)
Section titled “master_ipv4s (iosxr.devices.configuration.interfaces.ethernets.ptp)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | Yes | ||
| clock_class | Integer | min: 0, max: 255 | No | |
| delay_asymmetry | Integer | min: -500000000, max: 500000000 | No | |
| microseconds | Boolean | true, false | No | |
| milliseconds | Boolean | true, false | No | |
| multicast | Boolean | true, false | No | |
| multicast_mixed | Boolean | true, false | No | |
| nanoseconds | Boolean | true, false | No | |
| non_negotiated | Boolean | true, false | No | |
| priority | Integer | min: 0, max: 255 | No |
master_ipv6s (iosxr.devices.configuration.interfaces.ethernets.ptp)
Section titled “master_ipv6s (iosxr.devices.configuration.interfaces.ethernets.ptp)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | Yes | ||
| clock_class | Integer | min: 0, max: 255 | No | |
| delay_asymmetry | Integer | min: -500000000, max: 500000000 | No | |
| microseconds | Boolean | true, false | No | |
| milliseconds | Boolean | true, false | No | |
| multicast | Boolean | true, false | No | |
| multicast_mixed | Boolean | true, false | No | |
| nanoseconds | Boolean | true, false | No | |
| non_negotiated | Boolean | true, false | No | |
| priority | Integer | min: 0, max: 255 | No |
slave_ethernets (iosxr.devices.configuration.interfaces.ethernets.ptp)
Section titled “slave_ethernets (iosxr.devices.configuration.interfaces.ethernets.ptp)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | String | Yes | ||
| non_negotiated | Boolean | true, false | No |
slave_ipv4s (iosxr.devices.configuration.interfaces.ethernets.ptp)
Section titled “slave_ipv4s (iosxr.devices.configuration.interfaces.ethernets.ptp)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | Yes | ||
| non_negotiated | Boolean | true, false | No |
slave_ipv6s (iosxr.devices.configuration.interfaces.ethernets.ptp)
Section titled “slave_ipv6s (iosxr.devices.configuration.interfaces.ethernets.ptp)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | Yes | ||
| non_negotiated | Boolean | true, false | No |
sla_operation_profile_target_mep_ids (iosxr.devices.configuration.interfaces.ethernets.ethernet_cfm.mep_domains)
Section titled “sla_operation_profile_target_mep_ids (iosxr.devices.configuration.interfaces.ethernets.ethernet_cfm.mep_domains)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| mep_id | Integer | Yes | ||
| profile_name | String | Yes |
sla_operation_profile_target_mac_addresses (iosxr.devices.configuration.interfaces.ethernets.ethernet_cfm.mep_domains)
Section titled “sla_operation_profile_target_mac_addresses (iosxr.devices.configuration.interfaces.ethernets.ethernet_cfm.mep_domains)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| mac_address | String | Yes | ||
| profile_name | String | Yes |
Guidelines and Limitations
Section titled “Guidelines and Limitations”Managed vs Unmanaged Interfaces
Section titled “Managed vs Unmanaged Interfaces”managedattribute: Controls whether Terraform continuously manages the interface configuration. When set tofalse, Terraform will push the initial configuration but will not continuously read it, detect drift, or reconcile changes. This is useful for:- Interfaces whose configuration changes dynamically
- Interfaces modified by local scripts or automation
- Interfaces where configuration drift should be allowed and not corrected
- Default:
true(Terraform fully manages the interface and reconciles drift)
Usage example:
interfaces:ethernets:- type: GigabitEthernetid: 0/0/0/1description: "Unmanaged interface"managed: false # Terraform pushes initial config but ignores subsequent changes
Physical interface with only “no shutdown”
Section titled “Physical interface with only “no shutdown””- IOS-XR CLI
no shutdownbehavior: The default IOS-XR behavior for a physical interface with only theno shutdowncommand is to not populate that interface in the devices interface YANG model. This is due tono shutdownbeing a default configuation for a physical interface. If you define an interface in the YAML input with onlyno shutdown, Terraform’s create-then-read cycle will find nothing in the device state, resulting in a perpetual diff on every subsequentterraform plan/apply. This IOS-XR behavior can be seen in the example below.
RP/0/RP0/CPU0:ios#show ip int brief | inc GigabitEthernet0/0/0/1GigabitEthernet0/0/0/1 unassigned Up Up default
RP/0/RP0/CPU0:ios#sh run interface GigabitEthernet0/0/0/1% No such configuration item(s)Recommended workaround:
- Ensure that 1 or more additional attributes are configured on a physical interface. Any attribute can be used. A common practice is a description or load-interval command.
iosxr:devices:- name: router-1host: 10.10.10.1:57400configuration:interfaces:ethernets:- type: GigabitEthernetid: 0/0/0/1load_interval: 30 # Addshutdown: falseTerminal window RP/0/RP0/CPU0:ios#sh run interface GigabitEthernet 0/0/0/1interface GigabitEthernet0/0/0/1load-interval 30
Physical interface - Removing last attribute
Section titled “Physical interface - Removing last attribute”Similar to the
no shutdownbehavior above, IOS-XR does not populate an interface in the YANG model when no configuration attributes are present. If you define an interface in the YAML input with no attributes defined, Terraform’s create-then-read cycle will find nothing in the device state, resulting in aterraform applyerror perpetual diff on every subsequentterraform plan/apply.Recommended workaround:
- Remove interfaces that have no attributes (other than type/id) from YAML input when removing the last attributes.
iosxr:devices:- name: router-1host: 10.10.10.1:57400configuration:interfaces:ethernets: # Remove if last ethernet interface- type: GigabitEthernet # Removeid: 0/0/0/1 # Remove
Data Normalization
Section titled “Data Normalization”MAC Address Formats
Interface fields accept MAC addresses in any of three formats:
- colon-separated (e.g.,
"01:01:01:01:01:01") - dash-separated (e.g.,
"01-01-01-01-01-01") - dotted (e.g.,
"0101.0101.0101")
All 3 formats can be used interchangeably. The normalization layer coverts the user-specified format to colon-separated before sending to the device.
Examples
Section titled “Examples”Example 1: Basic Ethernet Interface
Section titled “Example 1: Basic Ethernet Interface”iosxr: devices: - name: router-1 host: 10.10.10.1 configuration: hostname: router-1 interfaces: ethernets: - type: GigabitEthernet id: 0/0/0/1 description: "Uplink to Core" shutdown: false mac_address: 00-1a-00-2b-00-3c mtu: 9000 ipv4: address: 192.168.1.1 netmask: 255.255.255.0Example 2: Ethernet with Subinterfaces
Section titled “Example 2: Ethernet with Subinterfaces”iosxr: devices: - name: router-1 host: 10.10.10.1 configuration: hostname: router-1 interfaces: ethernets: - type: GigabitEthernet id: 0/0/0/2 description: "Trunk Interface" shutdown: false subinterfaces: - id: 0/0/0/2.100 description: "VLAN 100" encapsulation_dot1q_vlan_id: 100 ipv4: address: 10.100.1.1 netmask: 255.255.255.0 vrf: CUSTOMER_A - id: 0/0/0/2.200 description: "VLAN 200" encapsulation_dot1q_vlan_id: 200 ipv4: address: 10.200.1.1 netmask: 255.255.255.0 vrf: CUSTOMER_BExample 3: Advanced Ethernet Configuration
Section titled “Example 3: Advanced Ethernet Configuration”iosxr: devices: - name: router-1 host: 10.10.10.1 configuration: hostname: router-1 interfaces: ethernets: - type: TenGigE id: 0/0/0/3 description: "WAN Interface" shutdown: false bandwidth: 10000000 mtu: 9000 load_interval: 30 dampening_decay_half_life: 5 dampening_reuse_threshold: 1000 dampening_suppress_threshold: 2000 dampening_max_suppress_time: 20 ipv4: address: 203.0.113.1 netmask: 255.255.255.252 mtu: 1500 unreachables_disable: true ipv6: enable: true addresses: - address: 2001:db8:1::1 prefix_length: 64 mtu: 1500 service_policy_input: - name: QOS_IN service_policy_output: - name: QOS_OUT