From b69d1b8dfb60bb5d16aab770dc03db0d4b6c0123 Mon Sep 17 00:00:00 2001 From: rocrowe Date: Fri, 1 May 2026 16:12:45 -0400 Subject: [PATCH 1/2] feat(icmp): add Terraform module for icmp - Add iosxr_icmp.tf singleton resource with ipv4/ipv6 attribute mappings - Wire iosxr_icmp.icmp into main.tf depends_on (alphabetical order) Co-authored-by: Robert Crowe --- iosxr_icmp.tf | 13 +++++++++++++ main.tf | 1 + 2 files changed, 14 insertions(+) create mode 100644 iosxr_icmp.tf diff --git a/iosxr_icmp.tf b/iosxr_icmp.tf new file mode 100644 index 0000000..01ae12b --- /dev/null +++ b/iosxr_icmp.tf @@ -0,0 +1,13 @@ +resource "iosxr_icmp" "icmp" { + for_each = { for device in local.devices : device.name => device if try(local.device_config[device.name].icmp, null) != null || try(local.defaults.iosxr.devices.configuration.icmp, null) != null } + device = each.value.name + + ipv4_source_vrf = try(local.device_config[each.value.name].icmp.ipv4.source_vrf, local.defaults.iosxr.devices.configuration.icmp.ipv4.source_vrf, null) + ipv4_source_rfc = try(local.device_config[each.value.name].icmp.ipv4.source_rfc, local.defaults.iosxr.devices.configuration.icmp.ipv4.source_rfc, null) + ipv4_rate_limit_unreachable_rate = try(local.device_config[each.value.name].icmp.ipv4.rate_limit_unreachable_rate, local.defaults.iosxr.devices.configuration.icmp.ipv4.rate_limit_unreachable_rate, null) + ipv4_rate_limit_unreachable_disable = try(local.device_config[each.value.name].icmp.ipv4.rate_limit_unreachable_disable, local.defaults.iosxr.devices.configuration.icmp.ipv4.rate_limit_unreachable_disable, null) + ipv4_rate_limit_unreachable_df_rate = try(local.device_config[each.value.name].icmp.ipv4.rate_limit_unreachable_df_rate, local.defaults.iosxr.devices.configuration.icmp.ipv4.rate_limit_unreachable_df_rate, null) + ipv4_rate_limit_unreachable_df_disable = try(local.device_config[each.value.name].icmp.ipv4.rate_limit_unreachable_df_disable, local.defaults.iosxr.devices.configuration.icmp.ipv4.rate_limit_unreachable_df_disable, null) + ipv6_source_vrf = try(local.device_config[each.value.name].icmp.ipv6.source_vrf, local.defaults.iosxr.devices.configuration.icmp.ipv6.source_vrf, null) + ipv6_source_rfc = try(local.device_config[each.value.name].icmp.ipv6.source_rfc, local.defaults.iosxr.devices.configuration.icmp.ipv6.source_rfc, null) +} diff --git a/main.tf b/main.tf index c01d03f..1021be0 100644 --- a/main.tf +++ b/main.tf @@ -158,6 +158,7 @@ resource "iosxr_cli" "cli_0" { iosxr_ftp.ftp, iosxr_gnmi.gnmi, iosxr_hostname.hostname, + iosxr_icmp.icmp, iosxr_interface_bundle_ether.bundle_ether, iosxr_interface_bundle_ether_subinterface.bundle_ether_subinterface, iosxr_interface_bvi.bvi, From 0fc8ae40f23a517ff4de8a118d50a113a15040f2 Mon Sep 17 00:00:00 2001 From: rocrowe Date: Fri, 1 May 2026 17:24:05 -0400 Subject: [PATCH 2/2] style(icmp): apply terraform fmt alignment Co-authored-by: Robert Crowe --- iosxr_icmp.tf | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/iosxr_icmp.tf b/iosxr_icmp.tf index 01ae12b..baca3c5 100644 --- a/iosxr_icmp.tf +++ b/iosxr_icmp.tf @@ -2,12 +2,12 @@ resource "iosxr_icmp" "icmp" { for_each = { for device in local.devices : device.name => device if try(local.device_config[device.name].icmp, null) != null || try(local.defaults.iosxr.devices.configuration.icmp, null) != null } device = each.value.name - ipv4_source_vrf = try(local.device_config[each.value.name].icmp.ipv4.source_vrf, local.defaults.iosxr.devices.configuration.icmp.ipv4.source_vrf, null) - ipv4_source_rfc = try(local.device_config[each.value.name].icmp.ipv4.source_rfc, local.defaults.iosxr.devices.configuration.icmp.ipv4.source_rfc, null) - ipv4_rate_limit_unreachable_rate = try(local.device_config[each.value.name].icmp.ipv4.rate_limit_unreachable_rate, local.defaults.iosxr.devices.configuration.icmp.ipv4.rate_limit_unreachable_rate, null) - ipv4_rate_limit_unreachable_disable = try(local.device_config[each.value.name].icmp.ipv4.rate_limit_unreachable_disable, local.defaults.iosxr.devices.configuration.icmp.ipv4.rate_limit_unreachable_disable, null) + ipv4_source_vrf = try(local.device_config[each.value.name].icmp.ipv4.source_vrf, local.defaults.iosxr.devices.configuration.icmp.ipv4.source_vrf, null) + ipv4_source_rfc = try(local.device_config[each.value.name].icmp.ipv4.source_rfc, local.defaults.iosxr.devices.configuration.icmp.ipv4.source_rfc, null) + ipv4_rate_limit_unreachable_rate = try(local.device_config[each.value.name].icmp.ipv4.rate_limit_unreachable_rate, local.defaults.iosxr.devices.configuration.icmp.ipv4.rate_limit_unreachable_rate, null) + ipv4_rate_limit_unreachable_disable = try(local.device_config[each.value.name].icmp.ipv4.rate_limit_unreachable_disable, local.defaults.iosxr.devices.configuration.icmp.ipv4.rate_limit_unreachable_disable, null) ipv4_rate_limit_unreachable_df_rate = try(local.device_config[each.value.name].icmp.ipv4.rate_limit_unreachable_df_rate, local.defaults.iosxr.devices.configuration.icmp.ipv4.rate_limit_unreachable_df_rate, null) ipv4_rate_limit_unreachable_df_disable = try(local.device_config[each.value.name].icmp.ipv4.rate_limit_unreachable_df_disable, local.defaults.iosxr.devices.configuration.icmp.ipv4.rate_limit_unreachable_df_disable, null) - ipv6_source_vrf = try(local.device_config[each.value.name].icmp.ipv6.source_vrf, local.defaults.iosxr.devices.configuration.icmp.ipv6.source_vrf, null) - ipv6_source_rfc = try(local.device_config[each.value.name].icmp.ipv6.source_rfc, local.defaults.iosxr.devices.configuration.icmp.ipv6.source_rfc, null) + ipv6_source_vrf = try(local.device_config[each.value.name].icmp.ipv6.source_vrf, local.defaults.iosxr.devices.configuration.icmp.ipv6.source_vrf, null) + ipv6_source_rfc = try(local.device_config[each.value.name].icmp.ipv6.source_rfc, local.defaults.iosxr.devices.configuration.icmp.ipv6.source_rfc, null) }