diff --git a/zabbix_templates/Template_SNMP_Device.xml b/zabbix_templates/Template_SNMP_Device.xml
new file mode 100644
index 0000000..c442edd
--- /dev/null
+++ b/zabbix_templates/Template_SNMP_Device.xml
@@ -0,0 +1,107 @@
+
+
+ 4.4
+ 2020-03-02T14:10:14Z
+
+
+ Templates
+
+
+
+
+ Model_SNMP_Device
+ Model_SNMP_Device
+
+
+ Template_Ping
+
+
+
+
+ Templates
+
+
+
+ -
+ Contact
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ SNMPv2-MIB::sysContact.0
+ sysContact
+ 2h
+ 30d
+ 0
+ CHAR
+ POST
+
+ -
+ Description
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ SNMPv2-MIB::sysDescr.0
+ sysDescr
+ 2h
+ 30d
+ 0
+ CHAR
+ POST
+
+ -
+ Location
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ SNMPv2-MIB::sysLocation.0
+ sysLocation
+ 2h
+ 30d
+ 0
+ CHAR
+ POST
+
+ -
+ Device name
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ SNMPv2-MIB::sysName.0
+ sysName
+ 2h
+ 30d
+ 0
+ CHAR
+ POST
+
+ -
+ Uptime
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ DISMAN-EVENT-MIB::sysUpTimeInstance
+ sysUpTimeInstance
+ 10m
+ 30d
+ 730d
+ s
+
+
+ MULTIPLIER
+ 0.01
+
+
+ POST
+
+
+ {last()}<7200
+ Device rebooted {ITEM.LASTVALUE1} ago
+ WARNING
+
+
+
+
+
+
+ {$SNMP_COMMUNITY}
+ public
+
+
+
+
+
diff --git a/zabbix_templates/Template_SNMP_Interfaces.xml b/zabbix_templates/Template_SNMP_Interfaces.xml
new file mode 100644
index 0000000..7ba11ed
--- /dev/null
+++ b/zabbix_templates/Template_SNMP_Interfaces.xml
@@ -0,0 +1,423 @@
+
+
+ 4.4
+ 2020-03-02T14:10:38Z
+
+
+ Templates
+
+
+
+
+ Model_SNMP_Interfaces
+ Model_SNMP_Interfaces
+
+
+ Model_SNMP_Device
+
+
+
+
+ Templates
+
+
+
+
+ Interface(s)
+
+
+
+
+ Interfaces
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ discovery[{#IFINDEX},IF-MIB::ifIndex,{#IFNAME},IF-MIB::ifName,{#IFDESCR},IF-MIB::ifDescr,{#IFSTATUS},IF-MIB::ifOperStatus]
+ ifIndex.discovery
+ 1h
+
+
+
+ {#IFSTATUS}
+ ^(1|2)$
+ B
+
+
+ {#IFNAME}
+ ^Po[1-9]\d\d?
+ NOT_MATCHES_REGEX
+ A
+
+
+
+ 2d
+
+
+ Admin status of {#IFNAME}
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifAdminStatus.{#SNMPINDEX}
+ ifAdminStatus[{#IFINDEX},{#SNMPINDEX}]
+ 6h
+ 30d
+ 0
+
+
+ Interface(s)
+
+
+
+
+ DISCARD_UNCHANGED_HEARTBEAT
+ 1d
+
+
+ POST
+
+
+ {#IFNAME} interface alias
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifAlias.{#SNMPINDEX}
+ ifAlias[{#IFINDEX},{#SNMPINDEX}]
+ 6h
+ 30d
+ 0
+ CHAR
+
+
+ Interface(s)
+
+
+
+
+ DISCARD_UNCHANGED_HEARTBEAT
+ 1d
+
+
+ POST
+
+
+ {#IFNAME} interface description
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifDescr.{#SNMPINDEX}
+ ifDescr[{#IFINDEX},{#SNMPINDEX}]
+ 6h
+ 30d
+ 0
+ CHAR
+
+
+ Interface(s)
+
+
+
+
+ DISCARD_UNCHANGED_HEARTBEAT
+ 1d
+
+
+ POST
+
+
+ Rejected inbound packets on {#IFNAME}
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifInDiscards.{#SNMPINDEX}
+ ifInDiscards[{#IFINDEX},{#SNMPINDEX}]
+ 1h
+ 30d
+ 730d
+
+
+ Interface(s)
+
+
+
+
+ SIMPLE_CHANGE
+
+
+
+ DISCARD_UNCHANGED_HEARTBEAT
+ 1d
+
+
+ POST
+
+
+ Inbound errors on {#IFNAME}
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifInErrors.{#SNMPINDEX}
+ ifInErrors[{#IFINDEX},{#SNMPINDEX}]
+ 15m
+ 30d
+ 730d
+
+
+ Interface(s)
+
+
+
+
+ SIMPLE_CHANGE
+
+
+
+ DISCARD_UNCHANGED_HEARTBEAT
+ 1d
+
+
+ POST
+
+
+ Inbound trafic on {#IFNAME}
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifHCInOctets.{#SNMPINDEX}
+ ifInOctets[{#IFINDEX},{#SNMPINDEX}]
+ 5m
+ 30d
+ 730d
+ bps
+
+
+ Interface(s)
+
+
+
+
+ CHANGE_PER_SECOND
+
+
+
+ MULTIPLIER
+ 8
+
+
+ DISCARD_UNCHANGED_HEARTBEAT
+ 3200
+
+
+ POST
+
+
+ Last state change for {#IFNAME}
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifLastChange.{#SNMPINDEX}
+ ifLastChange[{#IFINDEX},{#SNMPINDEX}]
+ 10m
+ 30d
+ 0
+ s
+
+
+ Interface(s)
+
+
+
+
+ MULTIPLIER
+ 0.01
+
+
+ POST
+
+
+ Operational status of {#IFNAME}
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifOperStatus.{#SNMPINDEX}
+ ifOperStatus[{#IFINDEX},{#SNMPINDEX}]
+ 10m
+ 30d
+ 0
+
+
+ Interface(s)
+
+
+
+
+ DISCARD_UNCHANGED_HEARTBEAT
+ 1d
+
+
+ POST
+
+
+ Rejected outbound packets on {#IFNAME}
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifOutDiscards.{#SNMPINDEX}
+ ifOutDiscards[{#IFINDEX},{#SNMPINDEX}]
+ 1h
+ 30d
+ 730d
+
+
+ Interface(s)
+
+
+
+
+ SIMPLE_CHANGE
+
+
+
+ DISCARD_UNCHANGED_HEARTBEAT
+ 1d
+
+
+ POST
+
+
+ Outbound errors on {#IFNAME}
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifOutErrors.{#SNMPINDEX}
+ ifOutErrors[{#IFINDEX},{#SNMPINDEX}]
+ 15m
+ 30d
+ 730d
+
+
+ Interface(s)
+
+
+
+
+ SIMPLE_CHANGE
+
+
+
+ DISCARD_UNCHANGED_HEARTBEAT
+ 1d
+
+
+ POST
+
+
+ Outbound trafic on {#IFNAME}
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IF-MIB::ifHCOutOctets.{#SNMPINDEX}
+ ifOutOctets[{#IFINDEX},{#SNMPINDEX}]
+ 5m
+ 30d
+ 730d
+ bps
+
+
+ Interface(s)
+
+
+
+
+ CHANGE_PER_SECOND
+
+
+
+ MULTIPLIER
+ 8
+
+
+ DISCARD_UNCHANGED_HEARTBEAT
+ 3200
+
+
+ POST
+
+
+
+
+ {$ALERT_ON_IF_CHANGE}=1 and ({Model_SNMP_Interfaces:sysUpTimeInstance.last()}-{Model_SNMP_Interfaces:ifLastChange[{#IFINDEX},{#SNMPINDEX}].last()})<1800 and {Model_SNMP_Interfaces:ifLastChange[{#IFINDEX},{#SNMPINDEX}].last()} > 0
+ {#IFNAME} state changed
+ AVERAGE
+
+
+
+
+ Trafic on {#IFNAME} ({#IFINDEX} - {#IFDESCR})
+ 0.9500
+ 0.9500
+
+
+ FILLED_REGION
+ 00CF00
+ -
+ Model_SNMP_Interfaces
+ ifInOctets[{#IFINDEX},{#SNMPINDEX}]
+
+
+
+ 1
+ BOLD_LINE
+ 002A97
+ RIGHT
+ -
+ Model_SNMP_Interfaces
+ ifOutOctets[{#IFINDEX},{#SNMPINDEX}]
+
+
+
+ 2
+ GRADIENT_LINE
+ FFAB00
+ RIGHT
+ -
+ Model_SNMP_Interfaces
+ ifInDiscards[{#IFINDEX},{#SNMPINDEX}]
+
+
+
+ 3
+ GRADIENT_LINE
+ F51D30
+ RIGHT
+ -
+ Model_SNMP_Interfaces
+ ifInErrors[{#IFINDEX},{#SNMPINDEX}]
+
+
+
+ 4
+ GRADIENT_LINE
+ C4FD3D
+ RIGHT
+ -
+ Model_SNMP_Interfaces
+ ifOutDiscards[{#IFINDEX},{#SNMPINDEX}]
+
+
+
+ 5
+ GRADIENT_LINE
+ 00694A
+ RIGHT
+ -
+ Model_SNMP_Interfaces
+ ifOutErrors[{#IFINDEX},{#SNMPINDEX}]
+
+
+
+
+
+ POST
+
+
+
+
+ {$ALERT_ON_IF_CHANGE}
+ 0
+
+
+ {$SNMP_COMMUNITY}
+ public
+
+
+
+
+
diff --git a/zabbix_templates/Template_SNMP_Switch_Generic.xml b/zabbix_templates/Template_SNMP_Switch_Generic.xml
new file mode 100644
index 0000000..f533167
--- /dev/null
+++ b/zabbix_templates/Template_SNMP_Switch_Generic.xml
@@ -0,0 +1,46 @@
+
+
+ 4.4
+ 2020-03-02T14:11:04Z
+
+
+ Templates
+
+
+
+
+ Model_Switch_Generic
+ Model_Switch_Generic
+
+
+ Model_SNMP_Interfaces
+
+
+
+
+ Templates
+
+
+
+ -
+ IP Forwarding
+ SNMPV2
+ {$SNMP_COMMUNITY}
+ IP-MIB::ipForwarding.0
+ ipForwarding
+ 15m
+ 30d
+ 0
+ POST
+
+
+ {diff()}=1
+ La configuration de l'IP forwarding a changé
+ WARNING
+
+
+
+
+
+
+