From a6991dc8471455561e155687b5b6345964202519 Mon Sep 17 00:00:00 2001
From: Patrick Holahan <patrickh@tenet.ac.za>
Date: Wed, 23 Aug 2023 15:57:22 +0200
Subject: [PATCH] Adds models for EX4600-40F, MX80-48T, and module-types for
 EX4600-EM-8F and QFX-EM-4Q (#1559)

Co-authored-by: Patrick Holahan <tjunyat@gmail.com>
---
 device-types/Juniper/EX4600-40F.yaml   | 144 +++++++++++++++++++++++++
 device-types/Juniper/MX80-48T.yaml     | 129 ++++++++++++++++++++++
 module-types/Juniper/EX4600-EM-8F.yaml |  21 ++++
 module-types/Juniper/QFX-EM-4Q.yaml    |  13 +++
 4 files changed, 307 insertions(+)
 create mode 100644 device-types/Juniper/EX4600-40F.yaml
 create mode 100644 device-types/Juniper/MX80-48T.yaml
 create mode 100644 module-types/Juniper/EX4600-EM-8F.yaml
 create mode 100644 module-types/Juniper/QFX-EM-4Q.yaml

diff --git a/device-types/Juniper/EX4600-40F.yaml b/device-types/Juniper/EX4600-40F.yaml
new file mode 100644
index 00000000..e7d1028c
--- /dev/null
+++ b/device-types/Juniper/EX4600-40F.yaml
@@ -0,0 +1,144 @@
+---
+manufacturer: Juniper
+model: EX4600-40F
+slug: juniper-ex4600-40f
+part_number: EX4600-40F
+u_height: 1
+is_full_depth: true
+airflow: front-to-rear
+weight: 9.84
+weight_unit: kg
+comments: '[Juniper EX4600 Data Sheet](https://www.juniper.net/content/dam/www/assets/datasheets/us/en/switches/ex4600-ethernet-switch-datasheet.pdf)'
+interfaces:
+  - name: ge-0/0/0
+    type: 1000base-x-sfp
+  - name: ge-0/0/1
+    type: 1000base-x-sfp
+  - name: ge-0/0/2
+    type: 1000base-x-sfp
+  - name: ge-0/0/3
+    type: 1000base-x-sfp
+  - name: ge-0/0/4
+    type: 1000base-x-sfp
+  - name: ge-0/0/5
+    type: 1000base-x-sfp
+  - name: ge-0/0/6
+    type: 1000base-x-sfp
+  - name: ge-0/0/7
+    type: 1000base-x-sfp
+  - name: ge-0/0/8
+    type: 1000base-x-sfp
+  - name: ge-0/0/9
+    type: 1000base-x-sfp
+  - name: ge-0/0/10
+    type: 1000base-x-sfp
+  - name: ge-0/0/11
+    type: 1000base-x-sfp
+  - name: ge-0/0/12
+    type: 1000base-x-sfp
+  - name: ge-0/0/13
+    type: 1000base-x-sfp
+  - name: ge-0/0/14
+    type: 1000base-x-sfp
+  - name: ge-0/0/15
+    type: 1000base-x-sfp
+  - name: ge-0/0/16
+    type: 1000base-x-sfp
+  - name: ge-0/0/17
+    type: 1000base-x-sfp
+  - name: ge-0/0/18
+    type: 1000base-x-sfp
+  - name: ge-0/0/19
+    type: 1000base-x-sfp
+  - name: ge-0/0/20
+    type: 1000base-x-sfp
+  - name: ge-0/0/21
+    type: 1000base-x-sfp
+  - name: ge-0/0/22
+    type: 1000base-x-sfp
+  - name: ge-0/0/23
+    type: 1000base-x-sfp
+  - name: xe-0/0/0
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/1
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/2
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/3
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/4
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/5
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/6
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/7
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/8
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/9
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/10
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/11
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/12
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/13
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/14
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/15
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/16
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/17
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/18
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/19
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/20
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/21
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/22
+    type: 10gbase-x-sfpp
+  - name: xe-0/0/23
+    type: 10gbase-x-sfpp
+  - name: et-0/0/24
+    type: 40gbase-x-qsfpp
+  - name: et-0/0/25
+    type: 40gbase-x-qsfpp
+  - name: et-0/0/26
+    type: 40gbase-x-qsfpp
+  - name: et-0/0/27
+    type: 40gbase-x-qsfpp
+  - name: em0
+    type: 1000base-t
+    mgmt_only: true
+  - name: em1
+    type: 1000base-t
+    mgmt_only: true
+module-bays:
+  - name: PIC 1
+    position: '1'
+  - name: PIC 2
+    position: '2'
+  - name: Power Supply 0
+    position: '0'
+  - name: Power Supply 1
+    position: '1'
+  - name: Fan tray 0
+    position: '0'
+  - name: Fan tray 1
+    position: '1'
+  - name: Fan tray 2
+    position: '2'
+  - name: Fan tray 3
+    position: '3'
+  - name: Fan tray 4
+    position: '4'
+console-ports:
+  - name: Console
+    type: rj-45
diff --git a/device-types/Juniper/MX80-48T.yaml b/device-types/Juniper/MX80-48T.yaml
new file mode 100644
index 00000000..527d7b7d
--- /dev/null
+++ b/device-types/Juniper/MX80-48T.yaml
@@ -0,0 +1,129 @@
+---
+manufacturer: Juniper
+model: MX80-48T
+slug: juniper-mx80-48t
+u_height: 2
+part_number: MX80-48T
+is_full_depth: true
+airflow: front-to-rear
+weight: 13.6
+weight_unit: kg
+comments: Data sheet not available, device is EOL
+console-ports:
+  - name: Console
+    type: rj-45
+interfaces:
+  - name: fxp0
+    type: 1000base-t
+    mgmt_only: true
+  - name: ge-1/0/0
+    type: 1000base-t
+  - name: ge-1/0/1
+    type: 1000base-t
+  - name: ge-1/0/2
+    type: 1000base-t
+  - name: ge-1/0/3
+    type: 1000base-t
+  - name: ge-1/0/4
+    type: 1000base-t
+  - name: ge-1/0/5
+    type: 1000base-t
+  - name: ge-1/0/6
+    type: 1000base-t
+  - name: ge-1/0/7
+    type: 1000base-t
+  - name: ge-1/0/8
+    type: 1000base-t
+  - name: ge-1/0/9
+    type: 1000base-t
+  - name: ge-1/0/10
+    type: 1000base-t
+  - name: ge-1/0/11
+    type: 1000base-t
+  - name: ge-1/1/0
+    type: 1000base-t
+  - name: ge-1/1/1
+    type: 1000base-t
+  - name: ge-1/1/2
+    type: 1000base-t
+  - name: ge-1/1/3
+    type: 1000base-t
+  - name: ge-1/1/4
+    type: 1000base-t
+  - name: ge-1/1/5
+    type: 1000base-t
+  - name: ge-1/1/6
+    type: 1000base-t
+  - name: ge-1/1/7
+    type: 1000base-t
+  - name: ge-1/1/8
+    type: 1000base-t
+  - name: ge-1/1/9
+    type: 1000base-t
+  - name: ge-1/1/10
+    type: 1000base-t
+  - name: ge-1/1/11
+    type: 1000base-t
+  - name: ge-1/2/0
+    type: 1000base-t
+  - name: ge-1/2/1
+    type: 1000base-t
+  - name: ge-1/2/2
+    type: 1000base-t
+  - name: ge-1/2/3
+    type: 1000base-t
+  - name: ge-1/2/4
+    type: 1000base-t
+  - name: ge-1/2/5
+    type: 1000base-t
+  - name: ge-1/2/6
+    type: 1000base-t
+  - name: ge-1/2/7
+    type: 1000base-t
+  - name: ge-1/2/8
+    type: 1000base-t
+  - name: ge-1/2/9
+    type: 1000base-t
+  - name: ge-1/2/10
+    type: 1000base-t
+  - name: ge-1/2/11
+    type: 1000base-t
+  - name: ge-1/3/0
+    type: 1000base-t
+  - name: ge-1/3/1
+    type: 1000base-t
+  - name: ge-1/3/2
+    type: 1000base-t
+  - name: ge-1/3/3
+    type: 1000base-t
+  - name: ge-1/3/4
+    type: 1000base-t
+  - name: ge-1/3/5
+    type: 1000base-t
+  - name: ge-1/3/6
+    type: 1000base-t
+  - name: ge-1/3/7
+    type: 1000base-t
+  - name: ge-1/3/8
+    type: 1000base-t
+  - name: ge-1/3/9
+    type: 1000base-t
+  - name: ge-1/3/10
+    type: 1000base-t
+  - name: ge-1/3/11
+    type: 1000base-t
+  - name: xe-0/0/0
+    type: 10gbase-x-xfp
+  - name: xe-0/0/1
+    type: 10gbase-x-xfp
+  - name: xe-0/0/2
+    type: 10gbase-x-xfp
+  - name: xe-0/0/3
+    type: 10gbase-x-xfp
+module-bays:
+  - name: Power Supply 0
+    position: '0'
+  - name: Power Supply 1
+    position: '1'
+  - name: Fan tray 0
+    position: '0'
diff --git a/module-types/Juniper/EX4600-EM-8F.yaml b/module-types/Juniper/EX4600-EM-8F.yaml
new file mode 100644
index 00000000..06ad65df
--- /dev/null
+++ b/module-types/Juniper/EX4600-EM-8F.yaml
@@ -0,0 +1,21 @@
+---
+manufacturer: Juniper
+model: EX4600-EM-8F
+part_number: EX4600-EM-8F
+interfaces:
+  - name: xe-{module}/0/0
+    type: 10gbase-x-sfpp
+  - name: xe-{module}/0/1
+    type: 10gbase-x-sfpp
+  - name: xe-{module}/0/2
+    type: 10gbase-x-sfpp
+  - name: xe-{module}/0/3
+    type: 10gbase-x-sfpp
+  - name: xe-{module}/0/4
+    type: 10gbase-x-sfpp
+  - name: xe-{module}/0/5
+    type: 10gbase-x-sfpp
+  - name: xe-{module}/0/6
+    type: 10gbase-x-sfpp
+  - name: xe-{module}/0/7
+    type: 10gbase-x-sfpp
diff --git a/module-types/Juniper/QFX-EM-4Q.yaml b/module-types/Juniper/QFX-EM-4Q.yaml
new file mode 100644
index 00000000..b31a0d78
--- /dev/null
+++ b/module-types/Juniper/QFX-EM-4Q.yaml
@@ -0,0 +1,13 @@
+---
+manufacturer: Juniper
+model: QFX-EM-4Q
+part_number: QFX-EM-4Q
+interfaces:
+  - name: et-{module}/0/0
+    type: 40gbase-x-qsfpp
+  - name: et-{module}/0/1
+    type: 40gbase-x-qsfpp
+  - name: et-{module}/0/2
+    type: 40gbase-x-qsfpp
+  - name: et-{module}/0/3
+    type: 40gbase-x-qsfpp
-- 
GitLab