Merge "Add ability to configure VLAN tag on patch port"
diff --git a/README.rst b/README.rst
index 45139c4..45c045d 100644
--- a/README.rst
+++ b/README.rst
@@ -1146,6 +1146,7 @@
             bridge: br-ens7
             port_type: patch
             peer: prv-ens7
+            tag: 109 # [] to unset a tag
             mtu: 65000
           patch-br-prv-br-ens7:
             enabled: true
@@ -1155,6 +1156,7 @@
             type: ovs_port
             port_type: patch
             peer: ens7-prv
+            tag: 109
             mtu: 65000
           ens7:
             enabled: true
diff --git a/linux/network/interface.sls b/linux/network/interface.sls
index f2691a5..c2d2a23 100644
--- a/linux/network/interface.sls
+++ b/linux/network/interface.sls
@@ -133,6 +133,13 @@
   - name: ovs-vsctl{%- if network.ovs_nowait %} --no-wait{%- endif %} set interface {{ interface_name }} options:peer={{ interface.peer }}
   - unless: ovs-vsctl show | grep -A 2 'Interface {{ interface_name }}' | grep {{ interface.peer }}
 
+{% if interface.tag is defined %}
+ovs_port_set_tag_{{ interface_name }}:
+  cmd.run:
+  - name: ovs-vsctl{%- if network.ovs_nowait %} --no-wait{%- endif %} set port {{ interface_name }} tag={{ interface.tag }}
+  - unless: ovs-vsctl get Port {{ interface_name }} tag | grep -Fx {{ interface.tag }}
+{%- endif %}
+
 {%- else %}
 
 linux_interfaces_include_{{ interface_name }}:
diff --git a/tests/pillar/network_openvswitch.sls b/tests/pillar/network_openvswitch.sls
new file mode 100644
index 0000000..56aa92d
--- /dev/null
+++ b/tests/pillar/network_openvswitch.sls
@@ -0,0 +1,49 @@
+linux:
+  system:
+    enabled: true
+    domain: local
+  network:
+    enabled: true
+    hostname: test01
+    fqdn: test01.local
+    network_manager: false
+    bridge: openvswitch
+    interface:
+      br-prv:
+        enabled: true
+        type: ovs_bridge
+        mtu: 65000
+      br-ens0:
+        enabled: true
+        type: ovs_bridge
+        proto: manual
+        mtu: 9000
+        use_interfaces:
+        - ens0
+      patch-br-ens0-br-prv:
+        enabled: true
+        name: ens0-prv
+        ovs_type: ovs_port
+        type: ovs_port
+        bridge: br-ens0
+        port_type: patch
+        peer: prv-ens0
+        tag: 107
+        mtu: 65000
+      patch-br-prv-br-ens0:
+        enabled: true
+        name: prv-ens0
+        bridge: br-prv
+        ovs_type: ovs_port
+        type: ovs_port
+        port_type: patch
+        peer: ens0-prv
+        tag: 107
+        mtu: 65000
+      ens0:
+        enabled: true
+        proto: manual
+        ovs_port_type: OVSPort
+        type: ovs_port
+        ovs_bridge: br-ens0
+        bridge: br-ens0