Merge "Fix permissions of ContrailPlugin.ini"
diff --git a/README.rst b/README.rst
index 281b710..c682b23 100644
--- a/README.rst
+++ b/README.rst
@@ -991,6 +991,7 @@
         backend:
           engine: ovn
           ovsdb_connection: tcp:127.0.0.1:6640
+          mac_table_size: 16384
         metadata:
           enabled: true
           ovsdb_server_iface: ptcp:6640:127.0.0.1
diff --git a/metadata/service/compute/ovn/single.yml b/metadata/service/compute/ovn/single.yml
index 187f180..644e76b 100644
--- a/metadata/service/compute/ovn/single.yml
+++ b/metadata/service/compute/ovn/single.yml
@@ -19,6 +19,7 @@
       backend:
         engine: ovn
         ovsdb_connection: tcp:127.0.0.1:6640
+        mac_table_size: 16384
       metadata:
         enabled: true
         ovsdb_server_iface: ptcp:6640:127.0.0.1
diff --git a/neutron/compute.sls b/neutron/compute.sls
index e815410..708a51d 100644
--- a/neutron/compute.sls
+++ b/neutron/compute.sls
@@ -148,6 +148,13 @@
   - name: "ovs-vsctl set open .
    external-ids:ovn-bridge-mappings=physnet1:{{ compute.external_bridge }}"
 
+        {%- if compute.backend.mac_table_size is defined %}
+set_bridge_mactable_size:
+  cmd.run:
+  - name: ovs-vsctl set Bridge {{ compute.external_bridge }} other-config:mac-table-size={{ compute.backend.mac_table_size }}
+  - unless: ovs-vsctl get Bridge {{ compute.external_bridge }} other-config:mac-table-size | grep -qF {{ compute.backend.mac_table_size }}
+        {%- endif %}
+
       {%- endif %}
 
 ovn_services:
diff --git a/tests/pillar/compute_ovn.sls b/tests/pillar/compute_ovn.sls
index f3fbaf1..8ced50d 100644
--- a/tests/pillar/compute_ovn.sls
+++ b/tests/pillar/compute_ovn.sls
@@ -8,6 +8,7 @@
     backend:
       engine: ovn
       ovsdb_connection: tcp:127.0.0.1:6640
+      mac_table_size: 8192
     metadata:
       enabled: true
       ovsdb_server_iface: ptcp:6640:127.0.0.1