Merge pull request #72 from aplsms/feature-tap_custom_txqueuelen

Feature: automatically set txqueuelen for all tap* network interfaces
diff --git a/README.rst b/README.rst
index f9dede9..c16d319 100644
--- a/README.rst
+++ b/README.rst
@@ -888,6 +888,14 @@
           - timeout: 2
           - attempts: 2
 
+**setting custom TX queue length for tap interfaces**
+
+.. code-block:: yaml
+
+    linux:
+      network:
+        tap_custom_txqueuelen: 10000
+
 DPDK OVS interfaces
 --------------------
 
diff --git a/linux/files/60-net-txqueue.rules b/linux/files/60-net-txqueue.rules
new file mode 100644
index 0000000..7805c9c
--- /dev/null
+++ b/linux/files/60-net-txqueue.rules
@@ -0,0 +1 @@
+KERNEL==”tap[0-9a-z\-]*", RUN+="/sbin/ip link set %k txqueuelen {{ network.tap_custom_txqueuelen }}"
\ No newline at end of file
diff --git a/linux/network/interface.sls b/linux/network/interface.sls
index ad695ae..bed9a3f 100644
--- a/linux/network/interface.sls
+++ b/linux/network/interface.sls
@@ -292,3 +292,13 @@
   - enable: false
 
 {%- endif %}
+
+{%- if network.tap_custom_txqueuelen is defined %}
+
+/etc/udev/rules.d/60-net-txqueue.rules:
+  file.managed:
+  - source: salt://linux/files/60-net-txqueue.rules
+  - mode: 755
+  - template: jinja
+
+{%- endif %}