diff --git a/html/images/logos/siemens.svg b/html/images/logos/siemens.svg
new file mode 100644
index 0000000000..60d1452542
--- /dev/null
+++ b/html/images/logos/siemens.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/html/images/os/siemens.svg b/html/images/os/siemens.svg
new file mode 100644
index 0000000000..70e1882b9c
--- /dev/null
+++ b/html/images/os/siemens.svg
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/includes/definitions/ros.yaml b/includes/definitions/ros.yaml
new file mode 100644
index 0000000000..d30826e0c1
--- /dev/null
+++ b/includes/definitions/ros.yaml
@@ -0,0 +1,8 @@
+os: ros
+text: 'Siemens Ruggedcom Switches (ROS)'
+type: network
+empty_ifdescr: 1
+icon: siemens
+discovery:
+ - sysObjectId:
+ - .1.3.6.1.4.1.15004.2.1
diff --git a/includes/polling/os/ros.inc.php b/includes/polling/os/ros.inc.php
new file mode 100644
index 0000000000..742de9cbad
--- /dev/null
+++ b/includes/polling/os/ros.inc.php
@@ -0,0 +1,33 @@
+.
+ *
+ * @package LibreNMS
+ * @link http://librenms.org
+ * @copyright 2017 Lorenzo Zafra
+ * @author Lorenzo Zafra
+ */
+
+preg_match('~(?\'hardware\'.*?)-(?:.*)~', $poll_device['sysDescr'], $matches);
+
+if ($matches['hardware']) {
+ $hardware = $matches['hardware'];
+}
+
+$version = trim(snmp_get($device, '.1.3.6.1.4.1.15004.4.2.3.3.0', '-Ovq'), '"');
+$serial = trim(snmp_get($device, '.1.3.6.1.4.1.15004.4.2.3.1.0', '-Ovq'), '"');
diff --git a/tests/snmpsim/ros.snmprec b/tests/snmpsim/ros.snmprec
new file mode 100644
index 0000000000..0eed3e5e4b
--- /dev/null
+++ b/tests/snmpsim/ros.snmprec
@@ -0,0 +1,2 @@
+1.3.6.1.2.1.1.1.0|4|RS900-24-D-T2-T2-T2
+1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.15004.2.1