diff --git a/aci_tenants.tf b/aci_tenants.tf
index 13a070ff..b3a62f1a 100644
--- a/aci_tenants.tf
+++ b/aci_tenants.tf
@@ -176,6 +176,8 @@ locals {
ep_move_detection = try(bd.ep_move_detection, local.defaults.apic.tenants.bridge_domains.ep_move_detection)
clear_remote_mac_entries = try(bd.clear_remote_mac_entries, local.defaults.apic.tenants.bridge_domains.clear_remote_mac_entries)
l3_multicast = try(bd.l3_multicast, local.defaults.apic.tenants.bridge_domains.l3_multicast)
+ pim_source_filter = try(bd.pim_source_filter, "")
+ pim_destination_filter = try(bd.pim_destination_filter, "")
multi_destination_flooding = try(bd.multi_destination_flooding, local.defaults.apic.tenants.bridge_domains.multi_destination_flooding)
unicast_routing = try(bd.unicast_routing, local.defaults.apic.tenants.bridge_domains.unicast_routing)
unknown_unicast = try(bd.unknown_unicast, local.defaults.apic.tenants.bridge_domains.unknown_unicast)
@@ -223,6 +225,8 @@ module "aci_bridge_domain" {
ep_move_detection = each.value.ep_move_detection
clear_remote_mac_entries = each.value.clear_remote_mac_entries
l3_multicast = each.value.l3_multicast
+ pim_source_filter = each.value.pim_source_filter
+ pim_destination_filter = each.value.pim_destination_filter
multi_destination_flooding = each.value.multi_destination_flooding
unicast_routing = each.value.unicast_routing
unknown_unicast = each.value.unknown_unicast
diff --git a/modules/terraform-aci-bridge-domain/README.md b/modules/terraform-aci-bridge-domain/README.md
index e6e43ab8..0f671d2d 100644
--- a/modules/terraform-aci-bridge-domain/README.md
+++ b/modules/terraform-aci-bridge-domain/README.md
@@ -85,6 +85,8 @@ module "aci_bridge_domain" {
| [clear\_remote\_mac\_entries](#input\_clear\_remote\_mac\_entries) | Clear remote MAC entries flag. | `bool` | `false` | no |
| [virtual\_mac](#input\_virtual\_mac) | Virtual MAC address. Format: `12:34:56:78:9A:BC`. | `string` | `"not-applicable"` | no |
| [l3\_multicast](#input\_l3\_multicast) | L3 multicast. | `bool` | `false` | no |
+| [pim\_source\_filter](#input\_pim\_source\_filter) | PIM source filter. | `string` | `""` | no |
+| [pim\_destination\_filter](#input\_pim\_destination\_filter) | PIM destination filter. | `string` | `""` | no |
| [multi\_destination\_flooding](#input\_multi\_destination\_flooding) | Multi destination flooding. Choices: `bd-flood`, `encap-flood`, `drop`. | `string` | `"bd-flood"` | no |
| [unicast\_routing](#input\_unicast\_routing) | Unicast routing. | `bool` | `true` | no |
| [unknown\_unicast](#input\_unknown\_unicast) | Unknown unicast forwarding behavior. Choices: `flood`, `proxy`. | `string` | `"proxy"` | no |
@@ -118,5 +120,7 @@ module "aci_bridge_domain" {
| [aci_rest_managed.fvSubnet](https://registry.terraform.io/providers/CiscoDevNet/aci/latest/docs/resources/rest_managed) | resource |
| [aci_rest_managed.igmpIfP](https://registry.terraform.io/providers/CiscoDevNet/aci/latest/docs/resources/rest_managed) | resource |
| [aci_rest_managed.igmpRsIfPol](https://registry.terraform.io/providers/CiscoDevNet/aci/latest/docs/resources/rest_managed) | resource |
+| [aci_rest_managed.rtdmcRsFilterToRtMapPol_destination](https://registry.terraform.io/providers/CiscoDevNet/aci/latest/docs/resources/rest_managed) | resource |
+| [aci_rest_managed.rtdmcRsFilterToRtMapPol_source](https://registry.terraform.io/providers/CiscoDevNet/aci/latest/docs/resources/rest_managed) | resource |
| [aci_rest_managed.tagTag](https://registry.terraform.io/providers/CiscoDevNet/aci/latest/docs/resources/rest_managed) | resource |
\ No newline at end of file
diff --git a/modules/terraform-aci-bridge-domain/main.tf b/modules/terraform-aci-bridge-domain/main.tf
index aa7d238a..ba534e5f 100644
--- a/modules/terraform-aci-bridge-domain/main.tf
+++ b/modules/terraform-aci-bridge-domain/main.tf
@@ -139,3 +139,21 @@ resource "aci_rest_managed" "fvRsIgmpsn" {
tnIgmpSnoopPolName = var.igmp_snooping_policy
}
}
+
+resource "aci_rest_managed" "rtdmcRsFilterToRtMapPol_source" {
+ count = var.pim_source_filter != "" ? 1 : 0
+ dn = "${aci_rest_managed.fvBD.dn}/pimbdp/pimbdfilterp/pimbdsrcfilterp/rsfilterToRtMapPol"
+ class_name = "rtdmcRsFilterToRtMapPol"
+ content = {
+ tDn = "uni/tn-${var.tenant}/rtmap-${var.pim_source_filter}"
+ }
+}
+
+resource "aci_rest_managed" "rtdmcRsFilterToRtMapPol_destination" {
+ count = var.pim_destination_filter != "" ? 1 : 0
+ dn = "${aci_rest_managed.fvBD.dn}/pimbdp/pimbdfilterp/pimbddestfilterp/rsfilterToRtMapPol"
+ class_name = "rtdmcRsFilterToRtMapPol"
+ content = {
+ tDn = "uni/tn-${var.tenant}/rtmap-${var.pim_destination_filter}"
+ }
+}
\ No newline at end of file
diff --git a/modules/terraform-aci-bridge-domain/variables.tf b/modules/terraform-aci-bridge-domain/variables.tf
index 2657d706..b324601b 100644
--- a/modules/terraform-aci-bridge-domain/variables.tf
+++ b/modules/terraform-aci-bridge-domain/variables.tf
@@ -104,6 +104,18 @@ variable "l3_multicast" {
default = false
}
+variable "pim_source_filter" {
+ description = "PIM source filter."
+ type = string
+ default = ""
+}
+
+variable "pim_destination_filter" {
+ description = "PIM destination filter."
+ type = string
+ default = ""
+}
+
variable "multi_destination_flooding" {
description = "Multi destination flooding. Choices: `bd-flood`, `encap-flood`, `drop`."
type = string