Skip to content

Interface Group

Interface groups provide a powerful mechanism for applying consistent configurations to multiple interfaces across one or more devices. They enable you to define reusable interface configuration templates that can be applied to interfaces with similar roles or requirements, promoting standardization and reducing configuration complexity.

Interface groups are particularly valuable for:

  • Role-based interface configuration: Standardizing configurations for server ports, uplinks, access ports, etc.
  • Service deployment: Applying consistent security policies, QoS settings, or VLAN configurations
  • Operational consistency: Ensuring uniform interface behaviors across your network infrastructure
  • Configuration maintenance: Centralizing interface policies for easier updates and troubleshooting

Interface groups work by:

  1. Defining a named configuration template with interface-specific settings
  2. Referencing the interface group from individual interfaces via the interface_groups attribute
  3. Supporting variables for dynamic configuration based on device or group context
  4. Allowing multiple interface groups to be applied to a single interface (configurations are merged)

This approach separates interface policy definition from individual interface declarations, making your network configurations more modular and maintainable.

Diagram
NameTypeConstraintMandatoryDefault Value
interface_groupsList[interface_groups]No

NameTypeConstraintMandatoryDefault Value
nameStringYes
variablesMapNo
configurationClass[configuration]No

NameTypeConstraintMandatoryDefault Value
arp_cache_limitIntegermin: 0, max: 127999No
arp_gratuitous_ignoreBooleantrue, falseNo
arp_learningChoicedisable, localNo
arp_timeoutIntegermin: 30, max: 2144448000No
bandwidthIntegermin: 0, max: 9223372036854775807No
bundle_idIntegermin: 1, max: 65535No
bundle_modeChoiceactive, inherit, on, passiveNo
bundle_port_priorityIntegermin: 1, max: 65535No
carrier_delay_downIntegermin: 0, max: 2147483647No
carrier_delay_upIntegermin: 0, max: 2147483647No
cdpBooleantrue, falseNo
dampeningBooleantrue, falseNo
dampening_decay_half_lifeIntegermin: 1, max: 45No
dampening_max_suppress_timeIntegermin: 1, max: 255No
dampening_restart_penaltyIntegermin: 0, max: 20000No
dampening_reuse_thresholdIntegermin: 1, max: 20000No
dampening_suppress_thresholdIntegermin: 1, max: 20000No
descriptionStringNo
duplexChoicefull, halfNo
encapsulation_dot1q_vlanIntegermin: 1, max: 4094No
encapsulation_dot1q_second_dot1qIntegermin: 1, max: 4094No
ethernet_cfmClass[ethernet_cfm]No
fecChoicebase-r, none, standardNo
flow_controlChoicebidirectional, egress, ingressNo
flow_monitorsClass[flow_monitors]No
frequency_synchronizationClass[frequency_synchronization]No
ipv4Class[ipv4]No
ipv6Class[ipv6]No
l2transportClass[l2transport]No
lacp_periodAnyInteger[min: 2, max: 30000] or Choice[short] or String[Regex: ^.*[\$\%]\{.*$]No
lldpBooleantrue, falseNo
lldp_receive_disableBooleantrue, falseNo
lldp_taggedBooleantrue, falseNo
lldp_transmit_disableBooleantrue, falseNo
load_intervalIntegerNo
logging_events_link_statusBooleantrue, falseNo
mac_addressStringNo
macsec_eap_policyStringNo
macsec_fallback_psk_keychainStringNo
macsec_policyStringNo
macsec_psk_keychainStringNo
monitor_sessionsList[monitor_sessions]No
mpls_mtuIntegermin: 68, max: 65535No
mtuIntegermin: 64, max: 65535No
multipointBooleantrue, falseNo
negotiation_autoBooleantrue, falseNo
negotiation_auto_allow_overridesBooleantrue, falseNo
point_to_pointBooleantrue, falseNo
proxy_arpBooleantrue, falseNo
ptpClass[ptp]No
rewrite_ingress_tag_pop_oneBooleantrue, falseNo
rewrite_ingress_tag_pop_twoBooleantrue, falseNo
speedChoice10, 100, 1000No
service_policy_inputList[service_policy_input]No
service_policy_outputList[service_policy_output]No
shutdownBooleantrue, falseNo
subinterfacesList[subinterfaces]No
vrfStringNo

ethernet_cfm (iosxr.interface_groups.configuration)

Section titled “ethernet_cfm (iosxr.interface_groups.configuration)”
NameTypeConstraintMandatoryDefault Value
ais_transmission_up_cosIntegermin: 0, max: 7No
ais_transmission_up_intervalChoice1s, 1mNo
bandwidth_notificationsClass[bandwidth_notifications]No
mep_domainsList[mep_domains]No

flow_monitors (iosxr.interface_groups.configuration)

Section titled “flow_monitors (iosxr.interface_groups.configuration)”
NameTypeConstraintMandatoryDefault Value
ipv4List[ipv4]No
ipv6List[ipv6]No

frequency_synchronization (iosxr.interface_groups.configuration)

Section titled “frequency_synchronization (iosxr.interface_groups.configuration)”
NameTypeConstraintMandatoryDefault Value
enabledBooleantrue, falseNo
priorityIntegermin: 1, max: 254No
quality_receiveClass[quality_receive]No
quality_transmitClass[quality_transmit]No
selection_inputBooleantrue, falseNo
ssm_disableBooleantrue, falseNo
time_of_day_priorityIntegermin: 1, max: 254No
wait_to_restoreIntegermin: 0, max: 12No

ipv4 (iosxr.interface_groups.configuration)

Section titled “ipv4 (iosxr.interface_groups.configuration)”
NameTypeConstraintMandatoryDefault Value
access_group_egressClass[access_group_egress]No
access_group_ingressClass[access_group_ingress]No
addressIPNo
maskIPNo
algorithmIntegermin: 128, max: 255No
forwarding_enableBooleantrue, falseNo
helper_addressesList[helper_addresses]No
mask_replyBooleantrue, falseNo
mtuIntegermin: 68, max: 65535No
point_to_pointBooleantrue, falseNo
redirectsBooleantrue, falseNo
route_tagIntegermin: 1, max: 4294967295No
secondariesList[secondaries]No
tcp_mss_adjustBooleantrue, falseNo
ttl_propagate_disableBooleantrue, falseNo
unnumberedStringNo
unreachables_disableBooleantrue, falseNo
verify_unicast_source_reachable_via_allow_defaultBooleantrue, falseNo
verify_unicast_source_reachable_via_allow_self_pingBooleantrue, falseNo
verify_unicast_source_reachable_viaChoiceany, rxNo

ipv6 (iosxr.interface_groups.configuration)

Section titled “ipv6 (iosxr.interface_groups.configuration)”
NameTypeConstraintMandatoryDefault Value
access_group_egressClass[access_group_egress]No
access_group_ingressClass[access_group_ingress]No
addressesList[addresses]No
autoconfigBooleantrue, falseNo
dhcpBooleantrue, falseNo
enableBooleantrue, falseNo
eui64_addressesList[eui64_addresses]No
link_local_addressIPNo
link_local_route_tagIntegermin: 1, max: 4294967295No
link_local_zoneStringNo
mtuIntegermin: 1280, max: 65535No
nd_cache_limitIntegermin: 0, max: 128000No
nd_dad_attemptsIntegermin: 0, max: 600No
nd_managed_config_flagBooleantrue, falseNo
nd_ns_intervalIntegermin: 1000, max: 4294967295No
nd_other_config_flagBooleantrue, falseNo
nd_prefix_default_no_advBooleantrue, falseNo
nd_prefix_default_no_autoconfigBooleantrue, falseNo
nd_ra_interval_maxIntegermin: 4, max: 1800No
nd_ra_interval_minIntegermin: 3, max: 1800No
nd_ra_lifetimeIntegermin: 0, max: 9000No
nd_reachable_timeIntegermin: 0, max: 3600000No
nd_redirectsBooleantrue, falseNo
nd_suppress_raBooleantrue, falseNo
nd_unicast_raBooleantrue, falseNo
tcp_mss_adjustBooleantrue, falseNo
ttl_propagate_disableBooleantrue, falseNo
unreachables_disableBooleantrue, falseNo
verify_unicast_source_reachable_via_allow_defaultBooleantrue, falseNo
verify_unicast_source_reachable_via_allow_self_pingBooleantrue, falseNo
verify_unicast_source_reachable_viaChoiceany, rxNo

l2transport (iosxr.interface_groups.configuration)

Section titled “l2transport (iosxr.interface_groups.configuration)”
NameTypeConstraintMandatoryDefault Value
enableBooleantrue, falseNo
encapsulation_dot1q_second_dot1qIntegermin: 1, max: 4094No
encapsulation_dot1q_vlanIntegermin: 1, max: 4094No

monitor_sessions (iosxr.interface_groups.configuration)

Section titled “monitor_sessions (iosxr.interface_groups.configuration)”
NameTypeConstraintMandatoryDefault Value
nameStringYes
directionChoicerx-only, tx-onlyNo
ipv4_aclStringNo
ipv6_aclStringNo
mirror_firstIntegermin: 1, max: 10000No
mirror_intervalChoice128, 16, 16K, 1K, 2, 256, 2K, 32, 4, 4K, 512, 64, 8, 8KNo
port_levelBooleantrue, falseNo
typeChoiceethernet, ipv4, ipv6, mpls-ipv4, mpls-ipv6No

ptp (iosxr.interface_groups.configuration)

Section titled “ptp (iosxr.interface_groups.configuration)”
NameTypeConstraintMandatoryDefault Value
enableBooleantrue, falseNo
announce_frequencyChoice1, 2, 4, 8, 16, 32, 64, 128No
announce_grant_durationIntegermin: 60, max: 1000No
announce_intervalChoice1, 2, 4, 8, 16, 32, 64, 128No
announce_timeoutIntegermin: 2, max: 10No
clock_operationChoiceone-step, two-stepNo
cosIntegermin: 0, max: 7No
cos_eventIntegermin: 0, max: 7No
cos_generalIntegermin: 0, max: 7No
delay_asymmetry_unitChoicenanoseconds, microseconds, millisecondsNo
delay_asymmetry_valueIntegermin: -500000000, max: 500000000No
delay_request_frequencyChoice1, 2, 4, 8, 16, 32, 64, 128No
delay_request_intervalChoice1, 2, 4, 8, 16, 32, 64, 128No
delay_response_grant_durationIntegermin: 60, max: 1000No
delay_response_timeoutIntegermin: 100, max: 100000No
dscpIntegermin: 0, max: 63No
dscp_eventIntegermin: 0, max: 63No
dscp_generalIntegermin: 0, max: 63No
interopClass[interop]No
ipv4_ttlIntegermin: 1, max: 255No
ipv6_hop_limitIntegermin: 1, max: 255No
local_priorityIntegermin: 1, max: 255No
mastersList[masters]No
multicastChoiceenable, disable, mixedNo
multicast_target_addressChoice01-1B-19-00-00-00, 01-80-C2-00-00-0ENo
port_stateChoiceany, master-only, slave-onlyNo
profileStringNo
slavesList[slaves]No
source_ipv4_addressAnyIP or Choice[disable] or String[Regex: ^.*[\$\%]\{.*$]No
source_ipv6_addressAnyIP or Choice[disable] or String[Regex: ^.*[\$\%]\{.*$]No
sync_frequencyChoice1, 2, 4, 8, 16, 32, 64, 128No
sync_grant_durationIntegermin: 60, max: 1000No
sync_intervalChoice1, 2, 4, 8, 16, 32, 64, 128No
sync_timeoutIntegermin: 100, max: 100000No
transportChoiceethernet, ipv4, ipv6No
unicast_grant_invalid_requestChoicedeny, reduceNo

service_policy_input (iosxr.interface_groups.configuration)

Section titled “service_policy_input (iosxr.interface_groups.configuration)”
NameTypeConstraintMandatoryDefault Value
nameStringNo

subinterfaces (iosxr.interface_groups.configuration)

Section titled “subinterfaces (iosxr.interface_groups.configuration)”
NameTypeConstraintMandatoryDefault Value
idStringRegex: ^[0-9]+(/[0-9]+)*\.[0-9]+$Yes
interface_groupsListStringNo
arp_cache_limitIntegermin: 0, max: 127999No
arp_gratuitous_ignoreBooleantrue, falseNo
arp_learningChoicedisable, localNo
arp_timeoutIntegermin: 30, max: 2144448000No
bandwidthIntegermin: 0, max: 9223372036854775807No
cdpBooleantrue, falseNo
dampeningBooleantrue, falseNo
dampening_decay_half_lifeIntegermin: 1, max: 45No
dampening_max_suppress_timeIntegermin: 1, max: 255No
dampening_reuse_thresholdIntegermin: 1, max: 20000No
dampening_suppress_thresholdIntegermin: 1, max: 20000No
descriptionStringNo
encapsulation_dot1q_vlanIntegermin: 1, max: 4094No
encapsulation_dot1q_second_dot1qIntegermin: 1, max: 4094No
ethernet_cfmClass[ethernet_cfm]No
flow_monitorsClass[flow_monitors]No
ipv4Class[ipv4]No
ipv6Class[ipv6]No
l2transportClass[l2transport]No
lldpBooleantrue, falseNo
lldp_receive_disableBooleantrue, falseNo
lldp_taggedBooleantrue, falseNo
lldp_transmit_disableBooleantrue, falseNo
load_intervalIntegerNo
logging_events_link_statusBooleantrue, falseNo
macsec_eap_policyStringNo
macsec_fallback_psk_keychainStringNo
macsec_policyStringNo
macsec_psk_keychainStringNo
monitor_sessionsList[monitor_sessions]No
mpls_mtuIntegermin: 68, max: 65535No
mtuIntegermin: 64, max: 65535No
multipointBooleantrue, falseNo
point_to_pointBooleantrue, falseNo
proxy_arpBooleantrue, falseNo
ptpClass[ptp]No
rewrite_ingress_tag_pop_oneBooleantrue, falseNo
rewrite_ingress_tag_pop_twoBooleantrue, falseNo
service_policy_inputList[service_policy_input]No
service_policy_outputList[service_policy_output]No
shutdownBooleantrue, falseNo
vrfStringNo

bandwidth_notifications (iosxr.interface_groups.configuration.ethernet_cfm)

Section titled “bandwidth_notifications (iosxr.interface_groups.configuration.ethernet_cfm)”
NameTypeConstraintMandatoryDefault Value
hold_offIntegermin: 0, max: 600No
log_changesBooleantrue, falseNo
loss_thresholdIntegermin: 2, max: 255No
wait_to_restoreIntegermin: 0, max: 600No

mep_domains (iosxr.interface_groups.configuration.ethernet_cfm)

Section titled “mep_domains (iosxr.interface_groups.configuration.ethernet_cfm)”
NameTypeConstraintMandatoryDefault Value
cosIntegerNo
domainStringYes
loss_measurement_countersClass[loss_measurement_counters]No
mep_idIntegerYes
propagate_remote_statusBooleantrue, falseNo
serviceStringYes
sla_operation_profilesList[sla_operation_profiles]No

ipv4 (iosxr.interface_groups.configuration.flow_monitors)

Section titled “ipv4 (iosxr.interface_groups.configuration.flow_monitors)”
NameTypeConstraintMandatoryDefault Value
monitor_mapStringYes
sampler_mapStringNo
directionChoiceingress, egressYes

quality_receive (iosxr.interface_groups.configuration.frequency_synchronization)

Section titled “quality_receive (iosxr.interface_groups.configuration.frequency_synchronization)”
NameTypeConstraintMandatoryDefault Value
modeChoiceexact, rangeNo
levelChoicednu, dus, eec1, eec2, e-eec, e-prtc, prc, prs, prtc, sec, smc, ssu-a, ssu-b, st2, st3, st3e, st4, stu, tncNo
highest_levelChoicednu, dus, eec1, eec2, e-eec, e-prtc, prc, prs, prtc, sec, smc, ssu-a, ssu-b, st2, st3, st3e, st4, stu, tncNo
lowest_levelChoicednu, dus, eec1, eec2, e-eec, e-prtc, prc, prs, prtc, sec, smc, ssu-a, ssu-b, st2, st3, st3e, st4, stu, tncNo
optionIntegermin: 1, max: 2No
generationIntegermin: 1, max: 2No

access_group_egress (iosxr.interface_groups.configuration.ipv4)

Section titled “access_group_egress (iosxr.interface_groups.configuration.ipv4)”
NameTypeConstraintMandatoryDefault Value
aclStringNo
compressIntegerNo
hardware_countBooleantrue, falseNo
interface_statisticsBooleantrue, falseNo

helper_addresses (iosxr.interface_groups.configuration.ipv4)

Section titled “helper_addresses (iosxr.interface_groups.configuration.ipv4)”
NameTypeConstraintMandatoryDefault Value
addressIPYes
vrfStringYes

secondaries (iosxr.interface_groups.configuration.ipv4)

Section titled “secondaries (iosxr.interface_groups.configuration.ipv4)”
NameTypeConstraintMandatoryDefault Value
addressIPYes
maskIPYes
algorithmIntegermin: 128, max: 255No
route_tagIntegermin: 1, max: 4294967295No

access_group_egress (iosxr.interface_groups.configuration.ipv6)

Section titled “access_group_egress (iosxr.interface_groups.configuration.ipv6)”
NameTypeConstraintMandatoryDefault Value
aclStringNo
compressIntegerNo
interface_statisticsBooleantrue, falseNo

addresses (iosxr.interface_groups.configuration.ipv6)

Section titled “addresses (iosxr.interface_groups.configuration.ipv6)”
NameTypeConstraintMandatoryDefault Value
addressIPYes
lengthIntegermin: 0, max: 128Yes
algorithmIntegermin: 128, max: 255No
route_tagIntegermin: 1, max: 4294967295No
zoneStringNo

eui64_addresses (iosxr.interface_groups.configuration.ipv6)

Section titled “eui64_addresses (iosxr.interface_groups.configuration.ipv6)”
NameTypeConstraintMandatoryDefault Value
addressIPYes
lengthIntegermin: 0, max: 128Yes
algorithmIntegermin: 128, max: 255No
route_tagIntegermin: 1, max: 4294967295No
zoneStringNo

interop (iosxr.interface_groups.configuration.ptp)

Section titled “interop (iosxr.interface_groups.configuration.ptp)”
NameTypeConstraintMandatoryDefault Value
domainIntegermin: 0, max: 255No
egress_conversionClass[egress_conversion]No
ingress_conversionClass[ingress_conversion]No
profileChoicedefault, g-8265-1, g-8275-1, g-8275-2No

masters (iosxr.interface_groups.configuration.ptp)

Section titled “masters (iosxr.interface_groups.configuration.ptp)”
NameTypeConstraintMandatoryDefault Value
addressStringYes
clock_classIntegermin: 0, max: 255No
delay_asymmetry_unitChoicenanoseconds, microseconds, millisecondsNo
delay_asymmetry_valueIntegermin: -500000000, max: 500000000No
multicastChoiceenable, mixedNo
non_negotiatedBooleantrue, falseNo
priorityIntegermin: 0, max: 255No

slaves (iosxr.interface_groups.configuration.ptp)

Section titled “slaves (iosxr.interface_groups.configuration.ptp)”
NameTypeConstraintMandatoryDefault Value
addressStringYes
non_negotiatedBooleantrue, falseYes

loss_measurement_counters (iosxr.interface_groups.configuration.ethernet_cfm.mep_domains)

Section titled “loss_measurement_counters (iosxr.interface_groups.configuration.ethernet_cfm.mep_domains)”
NameTypeConstraintMandatoryDefault Value
aggregateBooleantrue, falseNo
priority_cos_range_fromIntegermin: 0, max: 7No
priority_cos_range_toIntegermin: 0, max: 7No
priority_cos_valuesListInteger[min: 0, max: 7]No

sla_operation_profiles (iosxr.interface_groups.configuration.ethernet_cfm.mep_domains)

Section titled “sla_operation_profiles (iosxr.interface_groups.configuration.ethernet_cfm.mep_domains)”
NameTypeConstraintMandatoryDefault Value
mac_addressStringNo
mep_idIntegerNo
profileStringYes

egress_conversion (iosxr.interface_groups.configuration.ptp.interop)

Section titled “egress_conversion (iosxr.interface_groups.configuration.ptp.interop)”
NameTypeConstraintMandatoryDefault Value
clock_accuracyIntegermin: 0, max: 254No
clock_class_defaultIntegermin: 0, max: 255No
clock_class_mappingsList[clock_class_mappings]No
offset_scaled_log_varianceIntegermin: 0, max: 65535No
priority1Integermin: 0, max: 255No
priority2Integermin: 0, max: 255No

clock_class_mappings (iosxr.interface_groups.configuration.ptp.interop.egress_conversion)

Section titled “clock_class_mappings (iosxr.interface_groups.configuration.ptp.interop.egress_conversion)”
NameTypeConstraintMandatoryDefault Value
class_fromIntegermin: 0, max: 255Yes
class_toIntegermin: 0, max: 255Yes

iosxr:
interface_groups:
# Uplink port configuration
- name: UPLINK_PORT
configuration:
description: "Core Network Uplink"
mtu: 9216
bandwidth: 10000000
carrier_delay_up: 10
carrier_delay_down: 10
logging_events_link_status: true
# Management interface configuration
- name: MGMT_INTERFACE
configuration:
description: "Management Interface"
ipv4:
address: "${mgmt_ip}"
mask: "255.255.255.0"
lldp: true
logging_events_link_status: true
# Apply interface groups to devices
devices:
- name: Core-Router-01
variables:
mgmt_ip: "192.168.1.10"
configuration:
interfaces:
ethernets:
# Uplink ports using UPLINK_PORT group
- type: "GigabitEthernet"
id: "0/0/0/0"
interface_groups: [UPLINK_PORT]
# Management interface
- type: "MgmtEth"
id: "0/RP0/CPU0/0"
interface_groups: [MGMT_INTERFACE]