From adfb590ad299778bfc5ed3f22073982f2d55d11a Mon Sep 17 00:00:00 2001 From: Rene Fichtmueller Date: Thu, 14 May 2026 22:31:43 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20Transceiver=20Academy=20=E2=80=94=20ful?= =?UTF-8?q?l=20API-backed=20customer=20&=20employee=20training=20platform?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces the old LLM-training inline data module with a proper interactive training platform for annual employee onboarding and customer education. Content (236 KB of structured training data): - 5 categories: Standards, Form Factors, Switches & Compatibility, Fiber & Infrastructure, Testing & Buying - 22 detailed lessons with bilingual content (EN + DE) - 74 quiz questions with explanations in both languages - Lesson types: beginner / intermediate / advanced - Content blocks: paragraphs, tables, callouts, code blocks, formulas, lists API route (GET /api/training/*): - /categories — all 5 categories with lesson/quiz counts - /lessons?category= — lesson metadata for category - /lessons/:id — full lesson content (sections + blocks) - /quiz?lesson=&category= — quiz questions with bilingual answers - /stats — aggregate stats - Public route (no auth token required) Dashboard (Transceiver Academy UI): - Language toggle EN/DE (persisted in localStorage) - Category selector tabs with lesson counts - Lesson cards with level badge, summary, duration, completion indicator - Full lesson viewer: renders all block types with bilingual support - Per-lesson quiz and per-category quiz - Question-by-question quiz engine with auto-advance, dots progress indicator - Results screen with grade (A-F), wrong answers + explanations - Progress tracking in localStorage, global progress bar - Reset progress button --- .../api/src/data/training/form-factors.ts | 709 +++++++++ .../api/src/data/training/infrastructure.ts | 772 ++++++++++ packages/api/src/data/training/standards.ts | 1039 +++++++++++++ packages/api/src/data/training/switches.ts | 672 +++++++++ .../api/src/data/training/testing-buying.ts | 713 +++++++++ packages/api/src/data/training/types.ts | 55 + packages/api/src/index.ts | 4 + packages/api/src/routes/training.ts | 146 ++ packages/dashboard/index.html | 1342 +++++++---------- 9 files changed, 4680 insertions(+), 772 deletions(-) create mode 100644 packages/api/src/data/training/form-factors.ts create mode 100644 packages/api/src/data/training/infrastructure.ts create mode 100644 packages/api/src/data/training/standards.ts create mode 100644 packages/api/src/data/training/switches.ts create mode 100644 packages/api/src/data/training/testing-buying.ts create mode 100644 packages/api/src/data/training/types.ts create mode 100644 packages/api/src/routes/training.ts diff --git a/packages/api/src/data/training/form-factors.ts b/packages/api/src/data/training/form-factors.ts new file mode 100644 index 0000000..e5d3b84 --- /dev/null +++ b/packages/api/src/data/training/form-factors.ts @@ -0,0 +1,709 @@ +import type { TrainingLesson } from "./types"; + +export const formFactorLessons: TrainingLesson[] = [ + { + id: "ff-sfp-family", + category: "form-factors", + title: "SFP Family: SFP to SFP-DD", + title_de: "SFP-Familie: SFP bis SFP-DD", + level: "beginner", + duration_min: 15, + summary: + "The SFP family covers 1G through 100G in a compact single-lane or dual-lane pluggable. Learn the physical and electrical differences between SFP, SFP+, SFP28, SFP56, and SFP-DD.", + summary_de: + "Die SFP-Familie umfasst 1G bis 100G in einem kompakten ein- oder zweilanigen Pluggable. Lernen Sie die physikalischen und elektrischen Unterschiede zwischen SFP, SFP+, SFP28, SFP56 und SFP-DD.", + tags: ["sfp", "sfp+", "sfp28", "sfp-dd", "form-factor"], + sections: [ + { + heading: "SFP Physical Characteristics", + heading_de: "Physikalische Eigenschaften des SFP", + blocks: [ + { + type: "p", + text: "All SFP variants share the same mechanical housing: 56.5mm long × 13.4mm wide × 8.5mm tall. They all use the same MSA-defined edge connector and latch mechanism, which is why an SFP+ port can physically accept an SFP module (though data rate won't match). The key differences are in the electrical interface, EEPROM identifier, and maximum power consumption.", + text_de: + "Alle SFP-Varianten teilen dasselbe mechanische Gehaeuse: 56,5 mm lang × 13,4 mm breit × 8,5 mm hoch. Sie verwenden alle denselben MSA-definierten Kantenstecker und Verriegelungsmechanismus, weshalb ein SFP+-Port physikalisch ein SFP-Modul aufnehmen kann (die Datenrate stimmt jedoch nicht ueberein). Die wesentlichen Unterschiede liegen in der elektrischen Schnittstelle, dem EEPROM-Identifikator und dem maximalen Stromverbrauch.", + }, + { + type: "callout", + variant: "warning", + text: "Physical compatibility does NOT equal data rate compatibility. An SFP module in an SFP28 port will only link at 1G. The port must be configured for the correct speed. Never assume inserting any SFP-sized module will work at the port's rated speed.", + text_de: + "Physikalische Kompatibilitaet bedeutet NICHT Datenraten-Kompatibilitaet. Ein SFP-Modul in einem SFP28-Port wird nur mit 1G verbinden. Der Port muss fuer die korrekte Geschwindigkeit konfiguriert werden.", + }, + ], + }, + { + heading: "SFP Family Comparison", + heading_de: "SFP-Familie im Vergleich", + blocks: [ + { + type: "table", + headers: ["Form Factor", "Speed", "Electrical Lanes", "Max Power", "SFF Standard", "Introduced"], + headers_de: ["Formfaktor", "Geschwindigkeit", "Elektrische Lanes", "Max. Leistung", "SFF-Standard", "Eingefuehrt"], + rows: [ + ["SFP", "up to 4.25 Gbps", "1×NRZ", "≤1.0W", "SFF-8472", "2003"], + ["SFP+", "up to 10.3 Gbps", "1×NRZ", "≤2.5W (Class 3)", "SFF-8431", "2006"], + ["SFP28", "up to 28 Gbps", "1×NRZ", "≤3.5W", "SFF-8402", "2015"], + ["SFP56", "up to 56 Gbps", "1×PAM4 (or 2×NRZ)", "≤3.5W", "SFF-8024", "2019"], + ["SFP-DD", "up to 100 Gbps", "2×PAM4", "≤5.0W", "SFF-8024", "2019"], + ], + }, + { + type: "p", + text: "SFP (Small Form-factor Pluggable) was defined in the original SFP MSA (2003) for rates up to 4.25 Gbps, covering 1GbE, 2GFC, 4GFC, and SONET/SDH. SFP+ (Enhanced SFP) extended this to 10 Gbps for 10GbE and 8GFC/10GFC. The same mechanical housing with a faster electrical interface.", + text_de: + "SFP (Small Form-factor Pluggable) wurde in der urspruenglichen SFP-MSA (2003) fuer Raten bis 4,25 Gbps definiert, fuer 1GbE, 2GFC, 4GFC und SONET/SDH. SFP+ (Enhanced SFP) erweiterte dies auf 10 Gbps fuer 10GbE und 8GFC/10GFC. Dasselbe mechanische Gehaeuse mit einer schnelleren elektrischen Schnittstelle.", + }, + { + type: "callout", + variant: "tip", + text: "SFP-DD (Double Density) adds a second row of contacts to the bottom of the standard SFP connector, enabling 2 electrical lanes = 2×50G PAM4 = 100G total. SFP-DD cages are NOT backward compatible with standard SFP.", + text_de: + "SFP-DD (Double Density) fuegt eine zweite Kontaktreihe am Boden des Standard-SFP-Steckers hinzu und ermoeglicht 2 elektrische Lanes = 2×50G PAM4 = 100G gesamt. SFP-DD-Kaefige sind NICHT abwaertskompatibel zu Standard-SFP.", + }, + ], + }, + { + heading: "Connector Types Used with SFP", + heading_de: "Mit SFP verwendete Steckertypen", + blocks: [ + { + type: "ul", + items: [ + "LC duplex: standard for most fiber SFP variants (1G, 10G, 25G)", + "LC simplex: for BiDi modules (single fiber bidirectional, e.g., 1000BASE-BX10, 10GBASE-BX)", + "RJ-45: for copper SFP/SFP+ (1000BASE-T, 10GBASE-T) — these are active and consume more power", + "No connector (copper DAC): DAC (Direct Attach Copper) is a twinax cable with SFP+ or SFP28 heads — NOT an optical module", + ], + items_de: [ + "LC-Duplex: Standard fuer die meisten Glasfaser-SFP-Varianten (1G, 10G, 25G)", + "LC-Simplex: fuer BiDi-Module (eine Faser bidirektional, z. B. 1000BASE-BX10, 10GBASE-BX)", + "RJ-45: fuer Kupfer-SFP/SFP+ (1000BASE-T, 10GBASE-T) — diese sind aktiv und verbrauchen mehr Leistung", + "Kein Stecker (Kupfer-DAC): DAC (Direct Attach Copper) ist ein Twinax-Kabel mit SFP+- oder SFP28-Koepfen — KEIN optisches Modul", + ], + }, + ], + }, + { + heading: "Choosing the Right SFP Variant", + heading_de: "Die richtige SFP-Variante waehlen", + blocks: [ + { + type: "ul", + items: [ + "SFP (1G): access switches to end devices, management ports, storage replication", + "SFP+ (10G): most common for server access, ToR switches, campus aggregation uplinks", + "SFP28 (25G): high-performance server access, AI/GPU clusters, NVMe storage", + "SFP56 (50G): emerging, used in dense 50G server deployments", + "SFP-DD (100G): high-density 100G panels and patch points", + ], + items_de: [ + "SFP (1G): Access-Switches zu Endgeraeten, Management-Ports, Storage-Replikation", + "SFP+ (10G): am haeufigsten fuer Server-Zugang, ToR-Switches, Campus-Aggregations-Uplinks", + "SFP28 (25G): Hochleistungs-Server-Zugang, KI/GPU-Cluster, NVMe-Storage", + "SFP56 (50G): aufkommend, in dichten 50G-Server-Deployments verwendet", + "SFP-DD (100G): Hochdichte 100G-Panels und Patch-Punkte", + ], + }, + ], + }, + ], + quiz: [ + { + id: "ff-sfp-q1", + lesson: "ff-sfp-family", + q: "What is the maximum data rate of an SFP+ module?", + q_de: "Was ist die maximale Datenrate eines SFP+-Moduls?", + options: ["1 Gbps", "4.25 Gbps", "10.3 Gbps", "25 Gbps"], + options_de: ["1 Gbps", "4,25 Gbps", "10,3 Gbps", "25 Gbps"], + answer: 2, + explanation: + "SFP+ (Enhanced SFP) supports up to 10.3125 Gbps — covering 10GbE and 10GFC. SFP is limited to 4.25 Gbps; SFP28 covers up to 28 Gbps.", + explanation_de: + "SFP+ (Enhanced SFP) unterstuetzt bis zu 10,3125 Gbps — fuer 10GbE und 10GFC. SFP ist auf 4,25 Gbps begrenzt; SFP28 erreicht bis zu 28 Gbps.", + }, + { + id: "ff-sfp-q2", + lesson: "ff-sfp-family", + q: "SFP-DD achieves 100G by using how many electrical lanes?", + q_de: "Wie viele elektrische Lanes verwendet SFP-DD, um 100G zu erreichen?", + options: ["1 lane at 100G PAM4", "2 lanes at 50G PAM4 each", "4 lanes at 25G NRZ each", "8 lanes at 12.5G NRZ each"], + options_de: [ + "1 Lane mit 100G PAM4", + "2 Lanes mit je 50G PAM4", + "4 Lanes mit je 25G NRZ", + "8 Lanes mit je 12,5G NRZ", + ], + answer: 1, + explanation: + "SFP-DD adds a second row of contacts for 2 lanes total. Each lane carries 50G PAM4, yielding 2×50G = 100G.", + explanation_de: + "SFP-DD fuegt eine zweite Kontaktreihe fuer insgesamt 2 Lanes hinzu. Jede Lane traegt 50G PAM4, ergibt 2×50G = 100G.", + }, + { + id: "ff-sfp-q3", + lesson: "ff-sfp-family", + q: "Can you insert an SFP module into an SFP28 port?", + q_de: "Koennen Sie ein SFP-Modul in einen SFP28-Port einfuehren?", + options: [ + "No — the connector shape is different", + "Yes — physically compatible, but the port will only run at 1G", + "Yes — the port automatically adapts to full 25G", + "No — SFP modules use a different latch mechanism", + ], + options_de: [ + "Nein — die Steckerform ist unterschiedlich", + "Ja — physisch kompatibel, aber der Port laeuft nur mit 1G", + "Ja — der Port passt sich automatisch auf 25G an", + "Nein — SFP-Module verwenden einen anderen Verriegelungsmechanismus", + ], + answer: 1, + explanation: + "All SFP variants share the same mechanical housing, so an SFP physically fits in an SFP28 slot. However, the port will negotiate at the module's rated speed (1G for SFP), not 25G.", + explanation_de: + "Alle SFP-Varianten teilen dasselbe mechanische Gehaeuse, daher passt ein SFP physisch in einen SFP28-Steckplatz. Der Port verhandelt jedoch auf die Nenngeschwindigkeit des Moduls (1G fuer SFP), nicht 25G.", + }, + { + id: "ff-sfp-q4", + lesson: "ff-sfp-family", + q: "What connector does a BiDi SFP module use?", + q_de: "Welchen Stecker verwendet ein BiDi-SFP-Modul?", + options: ["LC duplex (2 fibers)", "LC simplex (1 fiber)", "SC duplex (2 fibers)", "MPO-12"], + options_de: ["LC-Duplex (2 Fasern)", "LC-Simplex (1 Faser)", "SC-Duplex (2 Fasern)", "MPO-12"], + answer: 1, + explanation: + "BiDi (Bidirectional) modules transmit and receive on different wavelengths on the same single fiber — requiring only an LC simplex connector.", + explanation_de: + "BiDi-Module senden und empfangen auf verschiedenen Wellenlaengen ueber dieselbe einzelne Faser — daher genuegt ein LC-Simplex-Stecker.", + }, + ], + }, + + { + id: "ff-qsfp-family", + category: "form-factors", + title: "QSFP Family: QSFP to QSFP-DD", + title_de: "QSFP-Familie: QSFP bis QSFP-DD", + level: "beginner", + duration_min: 15, + summary: + "QSFP is the dominant form factor for 40G, 100G, 200G, and 400G networking. Understand the full QSFP family, from QSFP+ to the 800G QSFP-DD800.", + summary_de: + "QSFP ist der dominante Formfaktor fuer 40G-, 100G-, 200G- und 400G-Netzwerke. Verstehen Sie die vollstaendige QSFP-Familie, von QSFP+ bis zum 800G QSFP-DD800.", + tags: ["qsfp", "qsfp28", "qsfp-dd", "40g", "100g", "400g", "form-factor"], + sections: [ + { + heading: "QSFP Physical Overview", + heading_de: "Physikalischer Ueberblick des QSFP", + blocks: [ + { + type: "p", + text: "QSFP (Quad Small Form-factor Pluggable) uses a wider housing than SFP — approximately 72.4mm × 18.4mm. It has 4 electrical transmit lanes and 4 receive lanes, enabling higher aggregate bandwidth than SFP. The QSFP connector uses 38 signal contacts compared to SFP's 20.", + text_de: + "QSFP (Quad Small Form-factor Pluggable) verwendet ein breiteres Gehaeuse als SFP — ca. 72,4 mm × 18,4 mm. Es hat 4 elektrische Sende-Lanes und 4 Empfangs-Lanes, was eine hoehere Bandbreite als SFP ermoeglicht. Der QSFP-Stecker hat 38 Signalkontakte im Vergleich zu 20 bei SFP.", + }, + { + type: "callout", + variant: "info", + text: "QSFP-DD is backward compatible with QSFP28 in most modern switch ports. The QSFP-DD cage accepts QSFP28 modules and will run them at 100G. Always verify with your switch vendor's compatibility matrix.", + text_de: + "QSFP-DD ist in den meisten modernen Switch-Ports abwaertskompatibel zu QSFP28. Der QSFP-DD-Kaefig nimmt QSFP28-Module auf und betreibt sie mit 100G. Stets die Kompatibilitaetsmatrix des Switch-Herstellers pruefen.", + }, + ], + }, + { + heading: "QSFP Family Comparison", + heading_de: "QSFP-Familie im Vergleich", + blocks: [ + { + type: "table", + headers: ["Form Factor", "Speed", "Lanes (Tx+Rx)", "Max Power", "Standard", "Typical Connector"], + headers_de: ["Formfaktor", "Geschwindigkeit", "Lanes (Tx+Rx)", "Max. Leistung", "Standard", "Typischer Stecker"], + rows: [ + ["QSFP+", "40 Gbps", "4×10G NRZ", "≤4W (Class 4)", "SFF-8436", "LC duplex or MPO-12"], + ["QSFP28", "100 Gbps", "4×25G NRZ", "≤4W (Class 4)", "SFF-8665/SFF-8636", "LC duplex or MPO-12"], + ["QSFP56", "200 Gbps", "4×50G PAM4", "≤6W (Class 6)", "SFF-8024", "LC duplex or MPO-12"], + ["QSFP-DD", "400 Gbps", "8×50G PAM4", "≤12W (Class 8)", "CMIS 4.0", "LC duplex or MPO-16"], + ["QSFP-DD800", "800 Gbps", "8×100G PAM4", "≤20W (Ext. Class 8)", "CMIS 5.0", "LC duplex or MPO-16"], + ], + }, + ], + }, + { + heading: "Breakout Configurations", + heading_de: "Breakout-Konfigurationen", + blocks: [ + { + type: "p", + text: "QSFP modules support breakout — splitting one high-speed port into multiple lower-speed ports. This is common when connecting servers (25G SFP28) to a spine switch (100G QSFP28 port). A breakout cable has one QSFP28 on one end and 4×SFP28 on the other.", + text_de: + "QSFP-Module unterstuetzen Breakout — Aufteilung eines Hochgeschwindigkeitsports in mehrere langsamere Ports. Dies ist ueblich beim Anschluss von Servern (25G SFP28) an einen Spine-Switch (100G QSFP28-Port). Ein Breakout-Kabel hat ein QSFP28 auf einer Seite und 4×SFP28 auf der anderen.", + }, + { + type: "table", + headers: ["Source Module", "Breakout Result", "Cable Type", "Common Use Case"], + headers_de: ["Quell-Modul", "Breakout-Ergebnis", "Kabeltyp", "Typischer Anwendungsfall"], + rows: [ + ["QSFP28 (100G)", "4×SFP28 (25G)", "MPO-12 to 4×LC duplex DAC or AOC", "Spine→Server 100G to 4×25G"], + ["QSFP28 (100G)", "2×QSFP+ (2×40G)", "Optical breakout", "100G migration, legacy 40G switches"], + ["QSFP-DD (400G)", "2×QSFP28 (2×200G)", "Cable or optics", "400G leaf to dual 200G servers"], + ["QSFP-DD (400G)", "4×QSFP28 (4×100G)", "Breakout cable", "Spine to multiple 100G leaf switches"], + ["QSFP-DD800 (800G)", "2×QSFP-DD (2×400G)", "Breakout optics", "800G spine to dual 400G leaves"], + ], + }, + { + type: "callout", + variant: "tip", + text: "Breakout cables are usually DAC (Direct Attach Copper, ≤5m) or AOC (Active Optical Cable, ≤100m). For longer breakout runs, use a QSFP28 SR4 on one end and 4×SFP28 on the other with a patch panel and MPO-to-LC cassette.", + text_de: + "Breakout-Kabel sind meist DAC (Direct Attach Copper, ≤5m) oder AOC (Active Optical Cable, ≤100m). Fuer laengere Breakout-Verbindungen ein QSFP28 SR4 auf einer Seite und 4×SFP28 auf der anderen Seite mit Patchfeld und MPO-zu-LC-Kassette verwenden.", + }, + ], + }, + { + heading: "QSFP-DD: The 400G Workhorse", + heading_de: "QSFP-DD: Das 400G-Arbeitstier", + blocks: [ + { + type: "p", + text: "QSFP-DD (Double Density) adds a second row of 8 contacts below the original 8 QSFP contacts, enabling 8 electrical lanes in the same width housing. Each lane carries 50G PAM4, yielding 400G total. QSFP-DD is the dominant form factor in 400G hyperscale data centers.", + text_de: + "QSFP-DD (Double Density) fuegt eine zweite Reihe von 8 Kontakten unterhalb der urspruenglichen 8 QSFP-Kontakte hinzu, was 8 elektrische Lanes im gleichen Gehaeuse ermoeglicht. Jede Lane traegt 50G PAM4, ergibt 400G gesamt. QSFP-DD ist der dominante Formfaktor in 400G-Hyperscale-Rechenzentren.", + }, + { + type: "ul", + items: [ + "QSFP-DD cage is physically backward compatible with QSFP28, QSFP+, and QSFP modules", + "Power: standard Class 8 = 12W, Extended Class 8 = 14W, up to ~20W for some ZR modules", + "Cage requires heatsink; high-power ZR modules may need active cooling clip", + "CMIS 4.0 or 5.0 management interface — more complex than SFF-8636", + ], + items_de: [ + "QSFP-DD-Kaefig ist physisch abwaertskompatibel zu QSFP28, QSFP+ und QSFP-Modulen", + "Leistung: Standard Klasse 8 = 12W, Erweiterte Klasse 8 = 14W, bis zu ~20W fuer manche ZR-Module", + "Kaefig benoetigt Kuehlkoerper; Hochleistungs-ZR-Module benoetigen moeglicherweise aktiven Kuehlklemme", + "CMIS 4.0 oder 5.0 Management-Schnittstelle — komplexer als SFF-8636", + ], + }, + ], + }, + ], + quiz: [ + { + id: "ff-qsfp-q1", + lesson: "ff-qsfp-family", + q: "How many electrical lanes does a QSFP-DD module have?", + q_de: "Wie viele elektrische Lanes hat ein QSFP-DD-Modul?", + options: ["4 lanes (same as QSFP28)", "6 lanes", "8 lanes (2 rows)", "16 lanes"], + options_de: ["4 Lanes (wie QSFP28)", "6 Lanes", "8 Lanes (2 Reihen)", "16 Lanes"], + answer: 2, + explanation: + "QSFP-DD has 8 lanes (two rows of 4 contacts each). Each lane carries 50G PAM4 for a total of 400G.", + explanation_de: + "QSFP-DD hat 8 Lanes (zwei Reihen mit je 4 Kontakten). Jede Lane traegt 50G PAM4 fuer insgesamt 400G.", + }, + { + id: "ff-qsfp-q2", + lesson: "ff-qsfp-family", + q: "A QSFP-DD cage in a new switch — can you insert a QSFP28 module?", + q_de: "Ein QSFP-DD-Kaefig in einem neuen Switch — koennen Sie ein QSFP28-Modul einfuehren?", + options: [ + "No — different physical size", + "Yes — QSFP-DD is backward compatible with QSFP28", + "Yes — but only if configured in 4-lane mode", + "No — different management interface prevents it", + ], + options_de: [ + "Nein — unterschiedliche physische Groesse", + "Ja — QSFP-DD ist abwaertskompatibel zu QSFP28", + "Ja — aber nur im 4-Lane-Modus konfiguriert", + "Nein — unterschiedliche Managementschnittstelle verhindert es", + ], + answer: 1, + explanation: + "QSFP-DD cages are designed to accept QSFP28, QSFP+, and QSFP modules for backward compatibility. The port will run at 100G with a QSFP28 module.", + explanation_de: + "QSFP-DD-Kaefige sind fuer die Aufnahme von QSFP28-, QSFP+- und QSFP-Modulen fuer Abwaertskompatibilitaet ausgelegt. Der Port laeuft mit 100G bei einem QSFP28-Modul.", + }, + { + id: "ff-qsfp-q3", + lesson: "ff-qsfp-family", + q: "A QSFP28 100G module split into 4×SFP28 — this is called what?", + q_de: "Ein QSFP28 100G-Modul aufgeteilt in 4×SFP28 — wie nennt man das?", + options: ["Multiplexing", "Breakout", "Trunking", "Bonding"], + options_de: ["Multiplexing", "Breakout", "Trunking", "Bonding"], + answer: 1, + explanation: + "Breaking a high-speed port (e.g., 100G QSFP28) into multiple lower-speed ports (e.g., 4×25G SFP28) is called 'breakout'. Breakout cables (DAC or AOC) are used for short distances.", + explanation_de: + "Das Aufteilen eines Hochgeschwindigkeitsports (z. B. 100G QSFP28) in mehrere langsamere Ports (z. B. 4×25G SFP28) heisst 'Breakout'. Breakout-Kabel (DAC oder AOC) werden fuer kurze Distanzen verwendet.", + }, + { + id: "ff-qsfp-q4", + lesson: "ff-qsfp-family", + q: "What is the maximum power of a QSFP-DD module in Extended Class 8?", + q_de: "Was ist die maximale Leistung eines QSFP-DD-Moduls in Extended Class 8?", + options: ["4W", "8W", "12W", "Up to ~20W"], + options_de: ["4W", "8W", "12W", "Bis zu ~20W"], + answer: 3, + explanation: + "Standard QSFP-DD Class 8 is 12W. Extended Class 8 can reach up to ~20W — needed for 400G-ZR coherent modules with DSP ASICs.", + explanation_de: + "Standard QSFP-DD Klasse 8 ist 12W. Erweiterte Klasse 8 kann bis zu ~20W erreichen — benoetigt fuer 400G-ZR Coherent-Module mit DSP-ASICs.", + }, + { + id: "ff-qsfp-q5", + lesson: "ff-qsfp-family", + q: "Which QSFP form factor is rated for 800G?", + q_de: "Welcher QSFP-Formfaktor ist fuer 800G ausgelegt?", + options: ["QSFP56", "QSFP-DD", "QSFP-DD800", "QSFP-XD"], + options_de: ["QSFP56", "QSFP-DD", "QSFP-DD800", "QSFP-XD"], + answer: 2, + explanation: + "QSFP-DD800 is the 800G version of QSFP-DD, using 8×100G PAM4 lanes with Extended Class 8 power (up to ~20W).", + explanation_de: + "QSFP-DD800 ist die 800G-Version von QSFP-DD mit 8×100G PAM4-Lanes und Extended Class 8-Leistung (bis zu ~20W).", + }, + ], + }, + + { + id: "ff-connectors", + category: "form-factors", + title: "Fiber Connectors and Polarity", + title_de: "Glasfaserstecker und Polaritaet", + level: "beginner", + duration_min: 12, + summary: + "Master the connector types used in fiber optic networks — LC, SC, MPO/MTP — and understand the critical concept of polarity that determines whether an MPO link works correctly.", + summary_de: + "Beherrschen Sie die in Glasfasernetzwerken verwendeten Steckertypen — LC, SC, MPO/MTP — und verstehen Sie das kritische Konzept der Polaritaet, das bestimmt, ob eine MPO-Verbindung korrekt funktioniert.", + tags: ["lc", "sc", "mpo", "mtp", "polarity", "connector"], + sections: [ + { + heading: "LC, SC, and Other Common Connectors", + heading_de: "LC, SC und andere gaengige Stecker", + blocks: [ + { + type: "table", + headers: ["Connector", "Ferrule Diameter", "Form Factor", "Typical Use", "Key Characteristic"], + headers_de: ["Stecker", "Ferrule-Durchmesser", "Formfaktor", "Typische Anwendung", "Wesentliches Merkmal"], + rows: [ + ["LC (Lucent Connector)", "1.25 mm", "Duplex clip", "SFP, SFP+, SFP28, QSFP28 LR4", "Most common in data centers"], + ["SC (Subscriber Connector)", "2.5 mm", "Push-pull, duplex", "Telecom, older switches, GPON OLT", "Large, but very low loss"], + ["FC (Ferrule Connector)", "2.5 mm", "Threaded", "Instruments, OTDR test ports", "Mechanical stability"], + ["ST (Straight Tip)", "2.5 mm", "Bayonet", "Legacy MMF, campus LANs", "Older, being phased out"], + ["MPO/MTP", "Multi-fiber", "Push-pull (12-32 fibers)", "SR4, SR8, parallel SMF (DR4)", "High-density, used with breakout"], + ], + }, + { + type: "p", + text: "LC connectors are the de facto standard for modern transceiver connections. The 1.25mm ferrule fits two connectors into the same panel space as one SC, enabling higher port density. The plastic housing clip snaps into the port and must be pressed to release — always check for the latch before pulling.", + text_de: + "LC-Stecker sind der De-facto-Standard fuer moderne Transceiver-Verbindungen. Die 1,25-mm-Ferrule ermoeglicht zwei Stecker im gleichen Panelplatz wie ein SC, was eine hoehere Portdichte ergibt. Der Kunststoffgehaeuse-Clip rastet im Port ein und muss zum Loesen gedrueckt werden.", + }, + { + type: "callout", + variant: "warning", + text: "APC (Angled Physical Contact) connectors have a green boot and 8° angled ferrule — they MUST NOT be mated with UPC (flat) connectors. Always verify connector type before plugging. Mixing APC and UPC causes high return loss and can damage the module.", + text_de: + "APC-Stecker (Angled Physical Contact) haben einen gruenen Mantel und eine 8°-Winkelferrule — sie DUERFEN NICHT mit UPC-Steckern (flach) gekoppelt werden. Immer den Steckertyp pruefen. Das Mischen von APC und UPC verursacht hohe Rueckflussdaempfung und kann das Modul beschaedigen.", + }, + ], + }, + { + heading: "MPO/MTP Connectors", + heading_de: "MPO/MTP-Stecker", + blocks: [ + { + type: "p", + text: "MPO (Multi-fiber Push-On) is defined in IEC 61754-7. It carries multiple fibers in one ferrule — commonly 12, 16, or 24. MTP is the brand name for high-precision MPO connectors from US Conec, offering lower insertion loss. MTP Elite provides ultra-low insertion loss (≤0.15 dB per mating) suitable for 400G.", + text_de: + "MPO (Multi-fiber Push-On) ist in IEC 61754-7 definiert. Es traegt mehrere Fasern in einer Ferrule — ueblicherweise 12, 16 oder 24. MTP ist der Markenname fuer hochpraezise MPO-Stecker von US Conec mit geringerem Einfuegungsverlust. MTP Elite bietet ultra-niedrigen Einfuegungsverlust (≤0,15 dB pro Kopplung) fuer 400G.", + }, + { + type: "table", + headers: ["Fiber Count", "Standard Use Case", "Compatible Transceiver"], + headers_de: ["Faseranzahl", "Standard-Anwendungsfall", "Kompatibler Transceiver"], + rows: [ + ["MPO-12 (12 fibers)", "40GBASE-SR4, 100GBASE-SR4, 400GBASE-DR4", "QSFP+, QSFP28, QSFP-DD (parallel SMF)"], + ["MPO-16 (16 fibers)", "400GBASE-SR8, 800GBASE-SR8", "QSFP-DD, OSFP"], + ["MPO-24 (24 fibers)", "2× 100GBASE-SR4 (breakout), trunk cabling", "2× QSFP28"], + ["MPO-32 (32 fibers)", "High-density trunk cabling", "Multiple modules via breakout"], + ], + }, + ], + }, + { + heading: "Polarity — The Most Common MPO Mistake", + heading_de: "Polaritaet — Der haeufigste MPO-Fehler", + blocks: [ + { + type: "p", + text: "In MPO links, the transmit fibers of one end must connect to the receive fibers of the other end. The way fibers are arranged in the MPO connector determines whether this works correctly — this arrangement is called 'polarity'. Get it wrong and every port shows 'link down'.", + text_de: + "In MPO-Verbindungen muessen die Sendefasern eines Endes mit den Empfangsfasern des anderen Endes verbunden werden. Die Anordnung der Fasern im MPO-Stecker bestimmt, ob dies korrekt funktioniert — diese Anordnung heisst 'Polaritaet'. Wenn sie falsch ist, zeigt jeder Port 'Link Down'.", + }, + { + type: "table", + headers: ["Polarity Type", "Fiber Arrangement", "When to Use"], + headers_de: ["Polaritaetstyp", "Faseranordnung", "Wann verwenden"], + rows: [ + ["Type A (Straight)", "Fiber 1 connects to Fiber 1 on opposite end", "With type B breakout cassettes or flip patch cords"], + ["Type B (Reversed)", "Fiber 1 connects to Fiber 12 on opposite end", "Most common trunk cable; works with standard breakout cassettes"], + ["Type C (Pair-flipped)", "Pairs of fibers (1-2) swap positions", "For 40GBASE-SR4 with specific cabling systems"], + ], + }, + { + type: "callout", + variant: "key", + text: "Wrong polarity is the #1 cause of 'link down' on first MPO installation. Always document your polarity scheme before cabling. Most modern data centers standardize on Type B trunk cables with Type A cassettes, which produces correct polarity without manual flipping.", + text_de: + "Falsche Polaritaet ist die haeufigste Ursache fuer 'Link Down' bei der ersten MPO-Installation. Immer das Polaritaetsschema vor der Verkabelung dokumentieren. Die meisten modernen Rechenzentren standardisieren auf Type-B-Trunk-Kabel mit Type-A-Kassetten, was korrekte Polaritaet ohne manuelles Spiegeln erzeugt.", + }, + ], + }, + ], + quiz: [ + { + id: "ff-conn-q1", + lesson: "ff-connectors", + q: "What is the ferrule diameter of an LC connector?", + q_de: "Was ist der Ferrule-Durchmesser eines LC-Steckers?", + options: ["2.5 mm", "1.25 mm", "0.9 mm", "3.5 mm"], + options_de: ["2,5 mm", "1,25 mm", "0,9 mm", "3,5 mm"], + answer: 1, + explanation: + "LC connectors have a 1.25mm ferrule, half the size of SC/FC/ST (2.5mm). This allows higher port density — two LC in the same panel space as one SC.", + explanation_de: + "LC-Stecker haben eine 1,25-mm-Ferrule, halb so gross wie SC/FC/ST (2,5 mm). Das ermoeglicht hoehere Portdichte — zwei LC im gleichen Panelplatz wie ein SC.", + }, + { + id: "ff-conn-q2", + lesson: "ff-connectors", + q: "An APC connector has a green boot. What does this indicate?", + q_de: "Ein APC-Stecker hat einen gruenen Mantel. Was zeigt das an?", + options: [ + "It is a multimode fiber connector", + "The ferrule is angled at 8° — not compatible with flat UPC connectors", + "It is certified for 10G and above", + "It contains a shutter for laser safety", + ], + options_de: [ + "Es ist ein Mehrmodefaser-Stecker", + "Die Ferrule ist um 8° geneigt — nicht kompatibel mit flachen UPC-Steckern", + "Es ist fuer 10G und hoeher zertifiziert", + "Es enthaelt einen Verschluss fuer Lasersicherheit", + ], + answer: 1, + explanation: + "APC (Angled Physical Contact) connectors have an 8° angled ferrule that reflects backreflections away from the fiber. Green boot = APC. Never mate APC with UPC.", + explanation_de: + "APC (Angled Physical Contact)-Stecker haben eine 8°-Winkelferrule, die Rueckreflexionen von der Faser weglenkt. Gruener Mantel = APC. APC niemals mit UPC koppeln.", + }, + { + id: "ff-conn-q3", + lesson: "ff-connectors", + q: "400GBASE-SR8 requires which MPO fiber count?", + q_de: "Welche MPO-Faseranzahl erfordert 400GBASE-SR8?", + options: ["MPO-8", "MPO-12", "MPO-16", "MPO-24"], + options_de: ["MPO-8", "MPO-12", "MPO-16", "MPO-24"], + answer: 2, + explanation: + "400GBASE-SR8 uses 8 transmit + 8 receive MMF lanes, requiring MPO-16 connectors (16 fibers per MPO).", + explanation_de: + "400GBASE-SR8 verwendet 8 Sende- und 8 Empfangs-MMF-Lanes und benoetigt MPO-16-Stecker (16 Fasern pro MPO).", + }, + { + id: "ff-conn-q4", + lesson: "ff-connectors", + q: "What causes 'link down' on first MPO installation in most cases?", + q_de: "Was verursacht in den meisten Faellen 'Link Down' bei der ersten MPO-Installation?", + options: [ + "Incorrect fiber attenuation specification", + "Wrong polarity — Tx fibers connected to Tx instead of Rx", + "Insufficient laser power in the module", + "Incompatible EEPROM version", + ], + options_de: [ + "Falsche Faseraempfungsspezifikation", + "Falsche Polaritaet — Sendefasern mit Sendefasern statt Empfangsfasern verbunden", + "Ungenuegend Laserleistung im Modul", + "Inkompatible EEPROM-Version", + ], + answer: 1, + explanation: + "Wrong polarity means Tx fibers connect to the Tx side of the opposite module instead of Rx — both modules can only transmit or only receive. Polarity must be verified before or after cabling.", + explanation_de: + "Falsche Polaritaet bedeutet, dass Sendefasern mit der Sendeseite des gegenueberliegenden Moduls verbunden werden statt mit Empfangsseite — beide Module koennen nur senden oder nur empfangen. Polaritaet muss vor oder nach der Verkabelung geprueft werden.", + }, + ], + }, + + { + id: "ff-osfp-nextgen", + category: "form-factors", + title: "OSFP and Next-Generation Form Factors", + title_de: "OSFP und naechste Formfaktor-Generationen", + level: "intermediate", + duration_min: 10, + summary: + "OSFP was created for 800G and high-power coherent modules where QSFP-DD's thermal design is insufficient. Learn OSFP specifications, limitations, and where the industry is headed with co-packaged optics.", + summary_de: + "OSFP wurde fuer 800G und hochleistungsstarke Coherent-Module entwickelt, bei denen das thermische Design von QSFP-DD ungenuegend ist. Lernen Sie OSFP-Spezifikationen, Einschraenkungen und wohin die Branche mit Co-packaged Optics geht.", + tags: ["osfp", "800g", "co-packaged", "form-factor", "next-gen"], + sections: [ + { + heading: "Why OSFP Was Needed", + heading_de: "Warum OSFP benoetigt wurde", + blocks: [ + { + type: "p", + text: "QSFP-DD supports up to 12–14W in standard configurations. As 800G modules and coherent ZR modules demand 20–35W, the QSFP-DD thermal envelope becomes insufficient. OSFP (Octal SFP) was designed with a larger footprint to accommodate higher power budgets and more efficient heatsinking.", + text_de: + "QSFP-DD unterstuetzt bis zu 12–14W in Standardkonfigurationen. Da 800G-Module und Coherent-ZR-Module 20–35W benoetigen, wird das thermische QSFP-DD-Envelope ungenuegend. OSFP (Octal SFP) wurde mit einem groesseren Footprint entwickelt, um hoehere Leistungsbudgets und effizientere Waermeableitung zu ermoeglichen.", + }, + { + type: "table", + headers: ["Spec", "QSFP-DD", "OSFP"], + headers_de: ["Spezifikation", "QSFP-DD", "OSFP"], + rows: [ + ["Electrical lanes", "8", "8"], + ["Max speed", "400G (800G-DD800)", "800G"], + ["Max power (std)", "12W (Class 8)", "15W (Class 1)"], + ["Max power (ext)", "~20W (Ext. Class 8)", "35W (Class 9)"], + ["Width", "18.4 mm", "22.6 mm"], + ["Length", "72.4 mm", "107.8 mm"], + ["Backward compat", "QSFP28, QSFP+", "No backward compat"], + ["MSA body", "QSFP-DD MSA", "OSFP MSA"], + ], + }, + { + type: "callout", + variant: "warning", + text: "OSFP and QSFP-DD slots are physically incompatible. Never try to insert one into the other. When choosing a switch for 400G-ZR or 800G coherent, verify which slot type it has — some switches offer both types on different port groups.", + text_de: + "OSFP- und QSFP-DD-Steckplaetze sind physisch nicht kompatibel. Niemals eines in das andere einstecken versuchen. Beim Auswaehlen eines Switches fuer 400G-ZR oder 800G Coherent prufen, welchen Steckplatztyp er hat — einige Switches bieten beide Typen in verschiedenen Portgruppen.", + }, + ], + }, + { + heading: "Where OSFP Is Used", + heading_de: "Wo OSFP eingesetzt wird", + blocks: [ + { + type: "ul", + items: [ + "800G direct-detect: 800GBASE-SR8, 800GBASE-DR8 — datacenter spine switches", + "400G-ZR coherent at high density: where 35W per port is needed and QSFP-DD thermal is insufficient", + "Hyperscaler leaf-spine at 800G (Meta, Google building 800G fabrics with OSFP)", + "Service provider core routers with 800G line cards", + ], + items_de: [ + "800G Direct-Detect: 800GBASE-SR8, 800GBASE-DR8 — Rechenzentrum-Spine-Switches", + "400G-ZR Coherent bei hoher Dichte: wo 35W pro Port benoetigt werden und QSFP-DD thermisch ungenuegend ist", + "Hyperscaler Leaf-Spine bei 800G (Meta, Google bauen 800G-Fabrics mit OSFP)", + "Service Provider Core-Router mit 800G Line Cards", + ], + }, + ], + }, + { + heading: "Co-Packaged Optics: The Next Frontier", + heading_de: "Co-packaged Optics: Die naechste Grenze", + blocks: [ + { + type: "p", + text: "Beyond pluggables, the industry is developing Co-Packaged Optics (CPO) — where the optical engines are integrated directly onto the switch ASIC package, eliminating the electrical copper lanes between ASIC and pluggable cage. This dramatically reduces power and signal loss.", + text_de: + "Jenseits von Pluggables entwickelt die Branche Co-packaged Optics (CPO) — wo die optischen Engines direkt in das Switch-ASIC-Paket integriert werden, sodass die elektrischen Kupferleitungen zwischen ASIC und Pluggable-Kaefig entfallen. Das reduziert Leistung und Signalverlust erheblich.", + }, + { + type: "ul", + items: [ + "CPO: optical engine co-packaged with ASIC on the same PCB substrate", + "On-Board Optics (OBO): optics on the PCB, not co-packaged with ASIC", + "Silicon Photonics: using CMOS fab processes to build optical components in silicon", + "Timeline: CPO in hyperscale production 2025–2027; pluggables will remain dominant for 5–10+ years", + ], + items_de: [ + "CPO: optische Engine co-packaged mit ASIC auf demselben PCB-Substrat", + "On-Board Optics (OBO): Optiken auf der Leiterplatte, nicht mit dem ASIC co-packaged", + "Silicon Photonics: Verwendung von CMOS-Fab-Prozessen zum Aufbau optischer Komponenten in Silizium", + "Timeline: CPO in Hyperscale-Produktion 2025–2027; Pluggables bleiben 5–10+ Jahre dominant", + ], + }, + { + type: "callout", + variant: "info", + text: "For enterprise networks and most service providers, pluggable form factors (QSFP-DD, OSFP) will remain the standard for the foreseeable future. CPO is primarily a hyperscaler concern at 2025+ timescales.", + text_de: + "Fuer Enterprise-Netzwerke und die meisten Service-Provider bleiben Pluggable-Formfaktoren (QSFP-DD, OSFP) auf absehbare Zeit der Standard. CPO ist hauptsaechlich ein Hyperscaler-Thema ab 2025+.", + }, + ], + }, + ], + quiz: [ + { + id: "ff-osfp-q1", + lesson: "ff-osfp-nextgen", + q: "What is the maximum power consumption of an OSFP Class 9 module?", + q_de: "Was ist der maximale Stromverbrauch eines OSFP Klasse 9 Moduls?", + options: ["12W", "20W", "35W", "50W"], + options_de: ["12W", "20W", "35W", "50W"], + answer: 2, + explanation: + "OSFP Class 9 supports up to 35W per port — enabling 800G coherent DSP modules and high-power ZR+ implementations.", + explanation_de: + "OSFP Klasse 9 unterstuetzt bis zu 35W pro Port — fuer 800G Coherent-DSP-Module und Hochleistungs-ZR+-Implementierungen.", + }, + { + id: "ff-osfp-q2", + lesson: "ff-osfp-nextgen", + q: "Can OSFP modules be inserted into QSFP-DD cages?", + q_de: "Koennen OSFP-Module in QSFP-DD-Kaefige eingesteckt werden?", + options: [ + "Yes — same electrical interface", + "Yes — with an adapter", + "No — physically incompatible, different width", + "Only for 400G modules", + ], + options_de: [ + "Ja — gleiche elektrische Schnittstelle", + "Ja — mit einem Adapter", + "Nein — physisch inkompatibel, unterschiedliche Breite", + "Nur fuer 400G-Module", + ], + answer: 2, + explanation: + "OSFP (22.6mm wide) and QSFP-DD (18.4mm wide) are physically incompatible. The larger OSFP slot exists specifically to support higher power without backtracking compatibility.", + explanation_de: + "OSFP (22,6 mm breit) und QSFP-DD (18,4 mm breit) sind physisch inkompatibel. Der groessere OSFP-Steckplatz existiert speziell zur Unterstuetzung hoeherer Leistung.", + }, + { + id: "ff-osfp-q3", + lesson: "ff-osfp-nextgen", + q: "What is Co-Packaged Optics (CPO)?", + q_de: "Was sind Co-packaged Optics (CPO)?", + options: [ + "A new form factor that combines SFP and QSFP in one slot", + "Optical engines integrated directly onto the switch ASIC package", + "A type of coherent module for 400G-ZR", + "Copper DAC cables with optical connectors at the ends", + ], + options_de: [ + "Ein neuer Formfaktor, der SFP und QSFP in einem Steckplatz kombiniert", + "Optische Engines, die direkt in das Switch-ASIC-Paket integriert sind", + "Eine Art Coherent-Modul fuer 400G-ZR", + "Kupfer-DAC-Kabel mit optischen Steckern an den Enden", + ], + answer: 1, + explanation: + "CPO integrates optical transceivers directly with the switch ASIC on the same package, eliminating the copper electrical lanes between ASIC and pluggable cage that limit bandwidth at 1.6T+.", + explanation_de: + "CPO integriert optische Transceiver direkt mit dem Switch-ASIC auf demselben Paket und eliminiert die elektrischen Kupferleitungen zwischen ASIC und Pluggable-Kaefig, die bei 1,6T+ die Bandbreite begrenzen.", + }, + ], + }, +]; diff --git a/packages/api/src/data/training/infrastructure.ts b/packages/api/src/data/training/infrastructure.ts new file mode 100644 index 0000000..5190566 --- /dev/null +++ b/packages/api/src/data/training/infrastructure.ts @@ -0,0 +1,772 @@ +import type { TrainingLesson } from "./types"; + +export const infrastructureLessons: TrainingLesson[] = [ + { + id: "infra-mmf", + category: "infrastructure", + title: "Multimode Fiber: OM1 through OM5", + title_de: "Mehrmodefaser: OM1 bis OM5", + level: "beginner", + duration_min: 12, + summary: + "Multimode fiber is the backbone of short-reach data center connections. Learn the differences between OM grades, what each supports, and how to choose the right fiber for your deployment.", + summary_de: + "Mehrmodefaser ist die Grundlage kurzreichweitiger Rechenzentrumsverbindungen. Lernen Sie die Unterschiede zwischen OM-Graden, was jede unterstuetzt und wie Sie die richtige Faser fuer Ihre Installation auswaehlen.", + tags: ["mmf", "om3", "om4", "om5", "fiber", "multimode"], + sections: [ + { + heading: "What is Multimode Fiber?", + heading_de: "Was ist Mehrmodefaser?", + blocks: [ + { + type: "p", + text: "Multimode fiber (MMF) has a large core (50µm or 62.5µm) that allows multiple modes (light paths) to propagate simultaneously. This makes it easier to couple light into the fiber and allows the use of inexpensive VCSEL (Vertical Cavity Surface Emitting Laser) sources at 850nm. The tradeoff: modal dispersion limits bandwidth and reach compared to single-mode fiber.", + text_de: + "Mehrmodefaser (MMF) hat einen grossen Kern (50 µm oder 62,5 µm), der mehrere Moden (Lichtpfade) gleichzeitig propagieren laesst. Das erleichtert die Lichteinkopplung und erlaubt den Einsatz guenstiger VCSEL-Quellen (Vertical Cavity Surface Emitting Laser) bei 850 nm. Der Kompromiss: Modendispersion begrenzt Bandbreite und Reichweite im Vergleich zu Einzelmodefaser.", + }, + { + type: "table", + headers: ["OM Grade", "Core Diameter", "Jacket Color", "Bandwidth (850nm)", "Max Reach 10G", "Max Reach 100G", "Status"], + headers_de: ["OM-Grad", "Kerndurchmesser", "Mantelfarbe", "Bandbreite (850 nm)", "Max. Reichweite 10G", "Max. Reichweite 100G", "Status"], + rows: [ + ["OM1", "62.5 µm", "Orange", "200 MHz·km", "33 m", "Not supported", "Legacy — do not install"], + ["OM2", "50 µm", "Orange", "500 MHz·km", "82 m", "Not supported", "Legacy — do not install"], + ["OM3", "50 µm", "Aqua", "2000 MHz·km", "300 m", "70 m (SR4)", "Active — suitable for most DCs"], + ["OM4", "50 µm", "Aqua or Violet", "4700 MHz·km", "400 m", "100 m (SR4)", "Active — recommended"], + ["OM5", "50 µm", "Lime Green", "28000 MHz·km (at 953nm)", "400 m", "150 m (SWDM4)", "Active — 400G capable"], + ], + }, + { + type: "callout", + variant: "warning", + text: "Never mix OM1 (62.5µm) patch leads with OM3/OM4 (50µm) trunk cabling. The core size mismatch causes a significant insertion loss penalty (typically 3–5 dB extra loss) that will fail the link budget.", + text_de: + "Niemals OM1-Patchkabel (62,5 µm) mit OM3/OM4-Stammleitungen (50 µm) mischen. Die Kerngrossendifferenz verursacht einen erheblichen Einfuegungsverlustzuschlag (typisch 3–5 dB), der das Linkbudget zum Scheitern bringt.", + }, + ], + }, + { + heading: "OM3 vs OM4: Which Should You Install?", + heading_de: "OM3 vs OM4: Was soll installiert werden?", + blocks: [ + { + type: "p", + text: "For new installations, OM4 is the clear choice. It costs only slightly more than OM3 but provides significantly higher bandwidth and longer reach at 40G and 100G. For existing OM3 installations, it is not necessary to rip and replace — OM3 is sufficient for most data center distances (≤70m for 100G SR4).", + text_de: + "Fuer Neuinstallationen ist OM4 die klare Wahl. Es kostet nur geringfuegig mehr als OM3, bietet aber deutlich hoehere Bandbreite und laengere Reichweite bei 40G und 100G. Fuer bestehende OM3-Installationen ist ein Austausch nicht notwendig — OM3 genuegt fuer die meisten Rechenzentrumsabstaende (≤70 m fuer 100G SR4).", + }, + { + type: "callout", + variant: "tip", + text: "OM5 adds support for SWDM (Short Wavelength Division Multiplexing) at 4 wavelengths (850, 880, 910, 950nm), enabling 100G on a single OM5 fiber pair. If you are planning for 400G over MMF, OM5 is the only option.", + text_de: + "OM5 fuegt Unterstuetzung fuer SWDM (Short Wavelength Division Multiplexing) mit 4 Wellenlaengen (850, 880, 910, 950 nm) hinzu und ermoeglicht 100G auf einem einzigen OM5-Faserpaar. Wenn Sie 400G ueber MMF planen, ist OM5 die einzige Option.", + }, + ], + }, + { + heading: "Bend-Insensitive MMF", + heading_de: "Biegeunempfindliche MMF", + blocks: [ + { + type: "p", + text: "Standard MMF is sensitive to tight bends — bending below the minimum bend radius causes light to escape the fiber core, increasing attenuation. Bend-insensitive OM3 (BI-OM3) and OM4 (BI-OM4) use a special coating that maintains performance at tighter bends, making them ideal for structured cabling in cabinets and bend-intensive routes.", + text_de: + "Standard-MMF ist empfindlich gegenueber engen Biegungen — Biegen unterhalb des Mindestbiegeradius fuehrt dazu, dass Licht den Faserkern verlaesst, was die Daempfung erhoet. Biegeunempfindliche OM3 (BI-OM3) und OM4 (BI-OM4) verwenden eine spezielle Beschichtung, die die Leistung bei engeren Biegungen aufrechterhaelt.", + }, + { + type: "ul", + items: [ + "Standard OM3/OM4: minimum bend radius 7.5mm (deployed), 30mm (installed)", + "Bend-insensitive OM3/OM4: minimum bend radius 2.0mm for short runs", + "Recommended for cabinet cable management, tight conduit runs, and under-floor routing", + "Cost premium: ~10–20% over standard OM3/OM4 — usually worth it for complex routes", + ], + items_de: [ + "Standard OM3/OM4: Mindestbiegeradius 7,5 mm (verlegt), 30 mm (installiert)", + "Biegeunempfindliche OM3/OM4: Mindestbiegeradius 2,0 mm fuer kurze Laeufe", + "Empfohlen fuer Schrankkabelmanagement, enge Rohrleitungen und Unterbodenverlegung", + "Kostenaufschlag: ~10–20 % gegenueber Standard-OM3/OM4 — lohnt sich meist bei komplexen Wegen", + ], + }, + ], + }, + ], + quiz: [ + { + id: "infra-mmf-q1", + lesson: "infra-mmf", + q: "What is the maximum reach of 100GBASE-SR4 over OM4 fiber?", + q_de: "Welche maximale Reichweite hat 100GBASE-SR4 ueber OM4-Faser?", + options: ["70 m", "100 m", "150 m", "300 m"], + options_de: ["70 m", "100 m", "150 m", "300 m"], + answer: 1, + explanation: "100GBASE-SR4 reaches 100m on OM4. On OM3, it's limited to 70m.", + explanation_de: "100GBASE-SR4 erreicht 100 m auf OM4. Auf OM3 ist es auf 70 m begrenzt.", + }, + { + id: "infra-mmf-q2", + lesson: "infra-mmf", + q: "What colour jacket identifies OM5 fiber?", + q_de: "Welche Mantelfarbe kennzeichnet OM5-Faser?", + options: ["Orange", "Aqua (blue-green)", "Lime Green", "Yellow"], + options_de: ["Orange", "Aqua (blau-gruen)", "Gelbgruen (Lime)", "Gelb"], + answer: 2, + explanation: "OM5 is identified by a lime green jacket. Aqua is OM3/OM4. Orange is OM1/OM2. Yellow is single-mode.", + explanation_de: "OM5 wird durch einen gelbgruenen Mantel identifiziert. Aqua ist OM3/OM4. Orange ist OM1/OM2. Gelb ist Einzelmodefaser.", + }, + { + id: "infra-mmf-q3", + lesson: "infra-mmf", + q: "What happens when you mix OM1 (62.5µm) patch cords with OM4 (50µm) trunk cable?", + q_de: "Was passiert, wenn OM1-Patchkabel (62,5 µm) mit OM4-Stammkabel (50 µm) gemischt werden?", + options: [ + "No impact — fibers auto-adapt", + "3–5 dB additional insertion loss due to core size mismatch", + "The connector will not physically mate", + "The fiber will operate at OM1 bandwidth only", + ], + options_de: [ + "Kein Einfluss — Fasern passen sich automatisch an", + "3–5 dB zusaetzlicher Einfuegungsverlust durch Kerngrossendifferenz", + "Der Stecker kann physisch nicht gekoppelt werden", + "Die Faser arbeitet nur mit OM1-Bandbreite", + ], + answer: 1, + explanation: + "Mismatching core sizes causes significant insertion loss (typically 3–5 dB) at the coupling point, which can exceed the module's link budget and cause link failure.", + explanation_de: + "Das Mischen von Kerngrossenmassen verursacht erheblichen Einfuegungsverlust (typisch 3–5 dB) an der Kupplungsstelle, was das Linkbudget des Moduls ueberschreiten und zu Verbindungsausfaellen fuehren kann.", + }, + { + id: "infra-mmf-q4", + lesson: "infra-mmf", + q: "OM5 fiber enables 400G over MMF using which technology?", + q_de: "Welche Technologie ermoeglicht OM5-Faser fuer 400G ueber MMF?", + options: [ + "PAM4 on a single 850nm wavelength", + "SWDM4 — 4 wavelengths from 850 to 950nm", + "CWDM4 — same as single-mode", + "Coherent optics on MMF", + ], + options_de: [ + "PAM4 auf einer einzigen 850-nm-Wellenlaenge", + "SWDM4 — 4 Wellenlaengen von 850 bis 950 nm", + "CWDM4 — wie bei Einzelmodefaser", + "Coherent-Optik auf MMF", + ], + answer: 1, + explanation: + "OM5 supports SWDM (Short Wavelength Division Multiplexing) with 4 wavelengths (850, 880, 910, 950nm), enabling 100G or 400G on a single OM5 fiber pair with SWDM4 modules.", + explanation_de: + "OM5 unterstuetzt SWDM (Short Wavelength Division Multiplexing) mit 4 Wellenlaengen (850, 880, 910, 950 nm) und ermoeglicht 100G oder 400G auf einem einzigen OM5-Faserpaar mit SWDM4-Modulen.", + }, + ], + }, + + { + id: "infra-smf", + category: "infrastructure", + title: "Single-Mode Fiber: OS1, OS2, and Specialty Types", + title_de: "Einzelmodefaser: OS1, OS2 und Spezialtypen", + level: "beginner", + duration_min: 12, + summary: + "Single-mode fiber carries signals over campus, metro, and long-haul distances. Understand the OS grades, ITU-T classifications, and how to choose the right fiber for long-reach applications.", + summary_de: + "Einzelmodefaser uebertraegt Signale ueber Campus-, Metro- und Langstrecken. Verstehen Sie OS-Grade, ITU-T-Klassifizierungen und wie Sie die richtige Faser fuer Langstreckenanwendungen auswaehlen.", + tags: ["smf", "os1", "os2", "g652", "g654", "single-mode", "fiber"], + sections: [ + { + heading: "Single-Mode Fiber Fundamentals", + heading_de: "Einzelmodefaser-Grundlagen", + blocks: [ + { + type: "p", + text: "Single-mode fiber (SMF) has a very small core (typically 9µm) that supports only one propagation mode at a given wavelength. This eliminates modal dispersion, resulting in much lower attenuation and much longer reach than multimode fiber. SMF requires laser sources (not LEDs) and precision connectors, making it more expensive than MMF for short links.", + text_de: + "Einzelmodefaser (SMF) hat einen sehr kleinen Kern (typischerweise 9 µm), der nur eine Ausbreitungsmode bei einer gegebenen Wellenlaenge unterstuetzt. Das eliminiert Modendispersion und ergibt wesentlich geringere Daempfung und viel laengere Reichweiten als Mehrmodefaser. SMF erfordert Laserquellen (keine LEDs) und Praezisionsstecker, was sie fuer kurze Verbindungen teurer macht als MMF.", + }, + { + type: "table", + headers: ["Grade", "Standard", "Loss (1310nm)", "Loss (1550nm)", "Jacket Color", "Application"], + headers_de: ["Grad", "Standard", "Verlust (1310 nm)", "Verlust (1550 nm)", "Mantelfarbe", "Anwendung"], + rows: [ + ["OS1", "IEC 60793-2-50", "≤1.0 dB/km", "≤1.0 dB/km", "Yellow", "Indoor tight-buffered cable"], + ["OS2", "IEC 60793-2-50", "≤0.4 dB/km", "≤0.3 dB/km", "Yellow", "Outdoor loose-tube cable, lower loss"], + ], + }, + { + type: "callout", + variant: "info", + text: "OS1 and OS2 use the same 9µm core — the difference is the cable construction and resulting loss spec. OS2 (loose-tube outdoor) achieves ≤0.3 dB/km at 1550nm; OS1 (indoor tight-buffered) allows up to 1.0 dB/km. Always use OS2 for inter-building or outdoor runs.", + text_de: + "OS1 und OS2 verwenden denselben 9-µm-Kern — der Unterschied ist die Kabelkonstruktion und resultierende Verlustspezifikation. OS2 (Loose-Tube-Aussenbereich) erreicht ≤0,3 dB/km bei 1550 nm; OS1 (Innenbereich eng gepuffert) erlaubt bis zu 1,0 dB/km. Immer OS2 fuer Gebaeude- oder Aussenverbindungen verwenden.", + }, + ], + }, + { + heading: "ITU-T Fiber Classifications", + heading_de: "ITU-T Faserklassifizierungen", + blocks: [ + { + type: "table", + headers: ["ITU-T Type", "Common Name", "Attenuation", "Key Property", "Typical Application"], + headers_de: ["ITU-T-Typ", "Haeufiger Name", "Daempfung", "Wesentliche Eigenschaft", "Typische Anwendung"], + rows: [ + ["G.652D", "Standard SMF", "0.38 dB/km @1310nm", "Most widely deployed", "Campus, metro, LAN, WAN"], + ["G.654E", "Ultra-Low Loss (ULL)", "≤0.17 dB/km @1550nm", "Lowest attenuation", "Submarine, long-haul coherent"], + ["G.657A1/A2", "Bend-insensitive SMF", "Same as G.652", "Tight bend tolerance", "Indoor, FTTH, cabinet routing"], + ["G.655", "Non-zero dispersion", "~0.35 dB/km", "Reduced nonlinear effects", "Legacy DWDM (being replaced by G.652D+DCM)"], + ], + }, + { + type: "callout", + variant: "key", + text: "For 400G and 800G coherent applications over long distances, G.654E (Ultra-Low Loss) fiber dramatically increases reach. If you are quoting coherent modules for a customer, ask about their fiber type — G.652D vs G.654E can mean the difference between a workable link budget and a failing one.", + text_de: + "Fuer 400G und 800G Coherent-Anwendungen ueber lange Distanzen erhoet G.654E-Faser (Ultra-Low Loss) die Reichweite erheblich. Wenn Sie einem Kunden Coherent-Module anbieten, nach dem Fasertyp fragen — G.652D vs G.654E kann den Unterschied zwischen einem funktionierenden Linkbudget und einem fehlschlagenden bedeuten.", + }, + ], + }, + { + heading: "Chromatic and Polarization Mode Dispersion", + heading_de: "Chromatische und Polarisationsmodendispersion", + blocks: [ + { + type: "p", + text: "At 10G and below, dispersion is rarely a problem on standard G.652D fiber. At 100G and above, two types of dispersion become important: Chromatic Dispersion (CD) — different wavelengths travel at slightly different speeds — and Polarization Mode Dispersion (PMD) — the two polarization states of a single-mode signal travel at different speeds.", + text_de: + "Bei 10G und darunter ist Dispersion auf Standard-G.652D-Faser selten ein Problem. Bei 100G und hoeher werden zwei Dispersionstypen wichtig: Chromatische Dispersion (CD) — verschiedene Wellenlaengen propagieren mit leicht unterschiedlichen Geschwindigkeiten — und Polarisationsmodendispersion (PMD) — die beiden Polarisationszustaende eines Einzelmode-Signals propagieren mit verschiedenen Geschwindigkeiten.", + }, + { + type: "ul", + items: [ + "CD (Chromatic Dispersion): 17 ps/(nm·km) on G.652D at 1550nm — compensated by DCM (Dispersion Compensating Module) or coherent DSP", + "PMD: legacy older fiber may have high PMD (>0.5 ps/√km) — problematic at 100G+; modern fiber <0.1 ps/√km", + "Coherent 100G/400G/ZR: DSP handles both CD and PMD electronically — no physical DCM needed", + "Direct-detect 100G (DR, FR, LR): no CD/PMD compensation — limited to moderate distances", + ], + items_de: [ + "CD (Chromatische Dispersion): 17 ps/(nm·km) auf G.652D bei 1550 nm — kompensiert durch DCM (Dispersion Compensating Module) oder Coherent-DSP", + "PMD: aeltere Legacy-Faser kann hohe PMD haben (>0,5 ps/√km) — problematisch bei 100G+; moderne Faser <0,1 ps/√km", + "Coherent 100G/400G/ZR: DSP behandelt sowohl CD als auch PMD elektronisch — kein physisches DCM benoetigt", + "Direct-Detect 100G (DR, FR, LR): keine CD/PMD-Kompensation — auf maessige Distanzen begrenzt", + ], + }, + ], + }, + ], + quiz: [ + { + id: "infra-smf-q1", + lesson: "infra-smf", + q: "What is the key difference between OS1 and OS2 single-mode fiber?", + q_de: "Was ist der wesentliche Unterschied zwischen OS1- und OS2-Einzelmodefaser?", + options: [ + "OS1 has a 9µm core; OS2 has a 50µm core", + "OS1 is indoor tight-buffered with higher loss; OS2 is outdoor loose-tube with lower loss", + "OS1 supports 10G; OS2 supports 100G", + "OS1 is single-mode; OS2 is multimode", + ], + options_de: [ + "OS1 hat einen 9-µm-Kern; OS2 einen 50-µm-Kern", + "OS1 ist innen eng gepuffert mit hoeherer Daempfung; OS2 ist aussen loose-tube mit geringerer Daempfung", + "OS1 unterstuetzt 10G; OS2 unterstuetzt 100G", + "OS1 ist Einzelmode; OS2 ist Mehrmode", + ], + answer: 1, + explanation: + "Both OS1 and OS2 have 9µm cores. OS1 (indoor tight-buffered) allows up to 1.0 dB/km loss. OS2 (outdoor loose-tube) achieves ≤0.3 dB/km at 1550nm — much lower loss.", + explanation_de: + "Beide OS1 und OS2 haben 9-µm-Kerne. OS1 (innen eng gepuffert) erlaubt bis zu 1,0 dB/km Verlust. OS2 (aussen loose-tube) erreicht ≤0,3 dB/km bei 1550 nm — viel geringerer Verlust.", + }, + { + id: "infra-smf-q2", + lesson: "infra-smf", + q: "Which ITU-T fiber type has the lowest attenuation — suitable for submarine and ultra-long-haul?", + q_de: "Welcher ITU-T-Fasertyp hat die geringste Daempfung — geeignet fuer Unterwasser und Ultra-Langstrecke?", + options: ["G.652D (Standard SMF)", "G.657A2 (Bend-insensitive)", "G.654E (Ultra-Low Loss)", "G.655 (Non-zero dispersion)"], + options_de: [ + "G.652D (Standard SMF)", + "G.657A2 (Biegeunempfindlich)", + "G.654E (Ultra-Low Loss)", + "G.655 (Nicht-null Dispersion)", + ], + answer: 2, + explanation: + "G.654E (Ultra-Low Loss fiber) achieves ≤0.17 dB/km at 1550nm — the lowest attenuation of any standard fiber. Used for submarine cables and coherent long-haul systems.", + explanation_de: + "G.654E (Ultra-Low Loss-Faser) erreicht ≤0,17 dB/km bei 1550 nm — die geringste Daempfung aller Standardfasern. Verwendet fuer Unterwasserkabel und Coherent-Langstreckensysteme.", + }, + { + id: "infra-smf-q3", + lesson: "infra-smf", + q: "At 100G+ speeds, which dispersion type can be compensated electronically by coherent DSP?", + q_de: "Bei 100G+ Geschwindigkeiten welchen Dispersionstyp kann Coherent-DSP elektronisch kompensieren?", + options: [ + "Neither — physical DCM modules are always required", + "CD only, not PMD", + "Both Chromatic Dispersion (CD) and Polarization Mode Dispersion (PMD)", + "PMD only, not CD", + ], + options_de: [ + "Keinen — physische DCM-Module sind immer erforderlich", + "Nur CD, nicht PMD", + "Sowohl chromatische Dispersion (CD) als auch Polarisationsmodendispersion (PMD)", + "Nur PMD, nicht CD", + ], + answer: 2, + explanation: + "Coherent 100G/400G/ZR modules include a DSP that electronically compensates both CD and PMD. This eliminates the need for physical DCM (Dispersion Compensating Modules) that were required for earlier 10G systems.", + explanation_de: + "Coherent 100G/400G/ZR-Module enthalten einen DSP, der sowohl CD als auch PMD elektronisch kompensiert. Das eliminiert die Notwendigkeit physischer DCM (Dispersion Compensating Modules), die fuer frueherer 10G-Systeme erforderlich waren.", + }, + ], + }, + + { + id: "infra-link-budget", + category: "infrastructure", + title: "Link Budget Calculation", + title_de: "Linkbudget-Berechnung", + level: "intermediate", + duration_min: 15, + summary: + "Link budget is the most fundamental calculation in fiber optic design — it determines whether a link will work reliably. Learn to calculate link budget step by step with real examples.", + summary_de: + "Das Linkbudget ist die grundlegendste Berechnung im Glasfaserdesign — es bestimmt, ob eine Verbindung zuverlaessig funktioniert. Lernen Sie, das Linkbudget Schritt fuer Schritt mit echten Beispielen zu berechnen.", + tags: ["link-budget", "attenuation", "power-budget", "fiber", "calculation"], + sections: [ + { + heading: "The Link Budget Equation", + heading_de: "Die Linkbudget-Gleichung", + blocks: [ + { + type: "p", + text: "A link budget calculates whether the optical power reaching the receiver is sufficient for reliable operation. The module's transmit power (TX min) must exceed the receiver sensitivity (RX sens) by enough margin to overcome all fiber losses in the path.", + text_de: + "Ein Linkbudget berechnet, ob die am Empfaenger ankommende optische Leistung fuer zuverlaessigen Betrieb ausreicht. Die Sendeleistung des Moduls (TX min) muss die Empfaengerempfindlichkeit (RX sens) um genug Spielraum uebertreffen, um alle Faserverluste im Pfad auszugleichen.", + }, + { + type: "formula", + text: "Link Budget (dB) = TX_min (dBm) − RX_sensitivity (dBm)\nMargin (dB) = Link Budget − Total Path Loss\nRequired: Margin ≥ 3 dB (minimum), ≥ 4 dB recommended", + desc: "TX_min = minimum guaranteed TX power from datasheet; RX_sensitivity = minimum received power at target BER (10⁻¹²); Total Path Loss = fiber loss + connector losses + splice losses + any other elements", + desc_de: + "TX_min = garantierte Mindest-TX-Leistung laut Datenblatt; RX_sensitivity = mindest empfangene Leistung bei Ziel-BER (10⁻¹²); Gesamtpfadverlust = Faserverlust + Steckerverluste + Spleissverluste + sonstige Elemente", + }, + { + type: "callout", + variant: "key", + text: "Always use the MINIMUM values from the datasheet for TX power and MAXIMUM values for path loss when calculating. This ensures your link works even under worst-case conditions (aging, temperature extremes, manufacturing tolerances).", + text_de: + "Immer die MINDEST-Werte aus dem Datenblatt fuer TX-Leistung und MAXIMAL-Werte fuer Pfadverlust verwenden. Das stellt sicher, dass die Verbindung auch unter Worst-Case-Bedingungen (Alterung, Temperaturaenderungen, Fertigungstoleranzen) funktioniert.", + }, + ], + }, + { + heading: "Typical Loss Values", + heading_de: "Typische Verlustswerte", + blocks: [ + { + type: "table", + headers: ["Component", "Loss per Event", "Notes"], + headers_de: ["Komponente", "Verlust pro Ereignis", "Hinweise"], + rows: [ + ["OS2 SMF (1310nm)", "0.35 dB/km", "G.652D typical; use 0.4 for budget"], + ["OS2 SMF (1550nm)", "0.25 dB/km", "G.652D typical; use 0.3 for budget"], + ["OM3 (850nm)", "3.5 dB/km", "Much higher than SMF"], + ["OM4 (850nm)", "3.0 dB/km", "Typical"], + ["LC/PC or LC/UPC connector mating", "0.3–0.5 dB", "Use 0.5 dB for budget"], + ["LC/APC connector mating", "0.1–0.3 dB", "Better return loss"], + ["Fusion splice", "0.05–0.15 dB", "Good splice; use 0.1 dB"], + ["Mechanical splice", "0.2–0.5 dB", "Avoid where possible"], + ["Patch panel (2 connectors)", "0.6–1.0 dB total", "2× connector losses"], + ["MPO-to-LC cassette (12-fiber)", "0.7–1.5 dB", "Per breakout connection"], + ], + }, + ], + }, + { + heading: "Worked Example: 10GBASE-LR over 8km", + heading_de: "Berechnetes Beispiel: 10GBASE-LR ueber 8 km", + blocks: [ + { + type: "p", + text: "Scenario: We have an 8km OS2 single-mode fiber run between two buildings. The path goes through 2 patch panels (4 connectors total) and has 3 fusion splices. We want to use 10GBASE-LR modules. Can the link work?", + text_de: + "Szenario: Wir haben eine 8-km-OS2-Einzelmodefaserverbindung zwischen zwei Gebaeuden. Der Pfad durchlaeuft 2 Patchfelder (4 Stecker insgesamt) und hat 3 Fusionsspleisse. Wir moechten 10GBASE-LR-Module verwenden. Funktioniert die Verbindung?", + }, + { + type: "code", + text: "10GBASE-LR Datasheet:\n TX Output Power (min): -8.2 dBm\n RX Sensitivity (max): -14.4 dBm\n Link Budget = -8.2 - (-14.4) = 6.2 dB\n\nPath Loss Calculation:\n Fiber: 8 km × 0.4 dB/km = 3.2 dB\n Connectors: 4 × 0.5 dB = 2.0 dB\n Splices: 3 × 0.1 dB = 0.3 dB\n Total Path Loss = 5.5 dB\n\nMargin = Link Budget - Path Loss\n = 6.2 - 5.5 = 0.7 dB\n\nResult: MARGINAL — only 0.7 dB margin.\nRecommendation: Clean connectors, verify splice quality.\nAlternative: Use a module with higher TX power (Extended Reach).", + }, + { + type: "callout", + variant: "warning", + text: "A margin of 0.7 dB is dangerously thin. Dirty connectors add 0.5–3 dB, making this link unreliable. Always target ≥3 dB margin. If the margin is under 3 dB, upgrade the module TX power, reduce connector count, or shorten the path.", + text_de: + "Ein Spielraum von 0,7 dB ist gefaehrlich gering. Schmutzige Stecker fuegen 0,5–3 dB hinzu und machen diese Verbindung unzuverlaessig. Immer ≥3 dB Spielraum anstreben. Wenn der Spielraum unter 3 dB liegt, Modul-TX-Leistung erhoehen, Steckeranzahl reduzieren oder Pfad verkuerzen.", + }, + ], + }, + { + heading: "Overpower: The Short Link Problem", + heading_de: "Ueberleistung: Das Kurzstrecken-Problem", + blocks: [ + { + type: "p", + text: "For very short links, the received power may EXCEED the receiver's maximum input power, causing saturation and bit errors. This is called 'overpower'. It commonly occurs when using a long-reach module (e.g., LR, ZR) on a very short fiber run (e.g., 1m within a cabinet).", + text_de: + "Bei sehr kurzen Verbindungen kann die empfangene Leistung die maximale Eingangsleistung des Empfaengers UEBERSCHREITEN, was zu Saettigung und Bitfehlern fuehrt. Das nennt sich 'Ueberleistung'. Es tritt haeufig auf, wenn ein Langstreckenmodul (z. B. LR, ZR) auf einer sehr kurzen Faserverbindung verwendet wird (z. B. 1 m im Schrank).", + }, + { + type: "ul", + items: [ + "Symptom: link comes up but shows high BER / input errors — same as underpower", + "Diagnosis: check RX power via DOM — if above RX max, overpower is the cause", + "Solution: use inline fiber attenuator (e.g., 5 dB, 10 dB, LC/LC in-line)", + "Tip: for same-rack connections, use SR modules (designed for short reach) or DAC/AOC cables", + ], + items_de: [ + "Symptom: Verbindung kommt hoch, zeigt aber hohe BER/Eingabefehler — wie Unterleistung", + "Diagnose: RX-Leistung ueber DOM pruefen — wenn oberhalb RX max, ist Ueberleistung die Ursache", + "Loesung: Inline-Faser-Daempfungsglied verwenden (z. B. 5 dB, 10 dB, LC/LC In-line)", + "Tipp: Fuer Verbindungen im gleichen Rack SR-Module (fuer kurze Reichweite ausgelegt) oder DAC/AOC-Kabel verwenden", + ], + }, + ], + }, + ], + quiz: [ + { + id: "infra-lb-q1", + lesson: "infra-link-budget", + q: "A module has TX min = -5 dBm and RX sensitivity = -18 dBm. What is the link budget?", + q_de: "Ein Modul hat TX min = -5 dBm und RX-Empfindlichkeit = -18 dBm. Wie gross ist das Linkbudget?", + options: ["5 dB", "13 dB", "18 dB", "23 dB"], + options_de: ["5 dB", "13 dB", "18 dB", "23 dB"], + answer: 1, + explanation: + "Link Budget = TX_min − RX_sens = -5 − (-18) = 13 dB. This means the path can have up to 13 dB of total loss before the link fails.", + explanation_de: + "Linkbudget = TX_min − RX_sens = -5 − (-18) = 13 dB. Das bedeutet, der Pfad kann bis zu 13 dB Gesamtverlust haben, bevor die Verbindung ausfaellt.", + }, + { + id: "infra-lb-q2", + lesson: "infra-link-budget", + q: "What minimum margin is recommended for a reliable fiber link?", + q_de: "Welcher Mindestspielraum wird fuer eine zuverlaessige Glasfaserverbindung empfohlen?", + options: ["0 dB (link budget = path loss exactly)", "1 dB", "3 dB", "10 dB"], + options_de: ["0 dB (Linkbudget = Pfadverlust exakt)", "1 dB", "3 dB", "10 dB"], + answer: 2, + explanation: + "A minimum of 3 dB margin is recommended to account for fiber aging, temperature variation, connector degradation, and measurement uncertainty. 4 dB is preferred.", + explanation_de: + "Ein Mindestspielraum von 3 dB wird empfohlen, um Faseralterung, Temperaturschwankungen, Steckerverschlechterung und Messunsicherheit zu beruecksichtigen. 4 dB wird bevorzugt.", + }, + { + id: "infra-lb-q3", + lesson: "infra-link-budget", + q: "A link shows high input errors but the fiber appears undamaged. DOM shows RX power is above the maximum receiver input level. What is the issue?", + q_de: "Eine Verbindung zeigt hohe Eingabefehler, aber die Faser erscheint unbeschaedigt. DOM zeigt, dass die RX-Leistung ueber dem maximalen Empfaenger-Eingangsleistungspegel liegt. Was ist das Problem?", + options: [ + "The module is defective", + "Overpower — receiver is saturated by too much optical power", + "The fiber is too long", + "FEC mismatch between the two ends", + ], + options_de: [ + "Das Modul ist defekt", + "Ueberleistung — Empfaenger ist durch zu viel optische Leistung gesaettigt", + "Die Faser ist zu lang", + "FEC-Fehlanpassung zwischen beiden Enden", + ], + answer: 1, + explanation: + "Overpower (receiver saturation) causes bit errors just like underpower. If DOM shows RX power above the maximum input level, add an inline fiber attenuator or switch to a short-reach module.", + explanation_de: + "Ueberleistung (Empfaengersiettigung) verursacht Bitfehler wie Unterleistung. Wenn DOM zeigt, dass RX-Leistung ueber dem maximalen Eingangspegel liegt, ein Inline-Faser-Daempfungsglied hinzufuegen oder auf ein Kurzstreckenmodul wechseln.", + }, + ], + }, + + { + id: "infra-mpo", + category: "infrastructure", + title: "MPO/MTP Cabling and Polarity", + title_de: "MPO/MTP-Verkabelung und Polaritaet", + level: "intermediate", + duration_min: 12, + summary: + "MPO/MTP cables carry 12–32 fibers in one connector and are essential for high-density 40G, 100G, and 400G connections. Master the polarity rules that determine whether your link works.", + summary_de: + "MPO/MTP-Kabel fuehren 12–32 Fasern in einem Stecker und sind fuer hochdichte 40G-, 100G- und 400G-Verbindungen unabdingbar. Beherrschen Sie die Polaritaetsregeln, die bestimmen, ob Ihre Verbindung funktioniert.", + tags: ["mpo", "mtp", "polarity", "40g", "100g", "400g", "cabling"], + sections: [ + { + heading: "MPO Cable Architecture", + heading_de: "MPO-Kabelarchitektur", + blocks: [ + { + type: "p", + text: "A typical data center MPO system consists of: (1) Pre-terminated MPO trunk cables running from patch panel to patch panel, (2) Breakout cassettes that convert MPO to LC duplex ports, and (3) LC duplex patch cords to transceivers. The MPO connector has a 'key up' or 'key down' orientation — this determines fiber numbering and directly affects polarity.", + text_de: + "Ein typisches Rechenzentrum-MPO-System besteht aus: (1) vorkonfekktionierten MPO-Trunk-Kabeln von Patchfeld zu Patchfeld, (2) Breakout-Kassetten, die MPO auf LC-Duplex-Ports konvertieren, und (3) LC-Duplex-Patchkabeln zu Transceivern. Der MPO-Stecker hat eine 'Key-Up'- oder 'Key-Down'-Ausrichtung — das bestimmt die Fasernummerierung und beeinflusst direkt die Polaritaet.", + }, + { + type: "callout", + variant: "warning", + text: "The MOST COMMON cause of 'link down' on new 40G/100G MPO installations is incorrect polarity. Before declaring a module faulty, always verify the polarity of the entire MPO path including trunk cable type and cassette type.", + text_de: + "Die HAEUFIGSTE Ursache fuer 'Link Down' bei neuen 40G/100G MPO-Installationen ist falsche Polaritaet. Bevor Sie ein Modul als defekt erklaeren, immer die Polaritaet des gesamten MPO-Pfads einschliesslich Trunk-Kabeltyp und Kassettentyp pruefen.", + }, + ], + }, + { + heading: "Polarity Types", + heading_de: "Polaritaetstypen", + blocks: [ + { + type: "table", + headers: ["Type", "Description", "Fiber 1 → Connects to", "Common Application"], + headers_de: ["Typ", "Beschreibung", "Faser 1 → verbindet mit", "Haeufige Anwendung"], + rows: [ + ["Type A (Straight-through)", "Fiber positions preserved end-to-end", "Fiber 1 at far end", "Used with Type B cassettes or flip patch cord"], + ["Type B (Reversed)", "Fiber array flipped — Fiber 1 ↔ Fiber 12", "Fiber 12 at far end", "Most common trunk cable; works with standard Type A cassettes"], + ["Type C (Pair-flipped)", "Adjacent fiber pairs swapped: 1↔2, 3↔4...", "Fiber 2 at far end", "Less common; used in specific legacy WDM systems"], + ], + }, + { + type: "p", + text: "The industry has converged on a standard approach: Type B trunk cables + Type A (straight) breakout cassettes = correct end-to-end polarity for SR4/SR8 transceivers. This is specified in TIA-568-C.0 Method B. Most modern pre-terminated cabling systems are pre-configured for this.", + text_de: + "Die Branche hat sich auf einen Standardansatz geeinigt: Type-B-Trunk-Kabel + Type-A-(Durchgangs-)Breakout-Kassetten = korrekte End-zu-End-Polaritaet fuer SR4/SR8-Transceiver. Das ist in TIA-568-C.0 Methode B spezifiziert. Die meisten modernen vorkonfekktionierten Verkabelungssysteme sind dafuer vorkonfiguriert.", + }, + ], + }, + { + heading: "Verifying Polarity", + heading_de: "Polaritaet pruefen", + blocks: [ + { + type: "ul", + items: [ + "Use a VFL (Visual Fault Locator) red laser: shine it in fiber 1 at one end and check which fiber lights up at the other end", + "For MPO-12: fiber 1 of transmit should appear at fiber 1 of the receive connector of the far transceiver", + "Use a fiber identifier / polarity checker tool for quick verification", + "Document your polarity scheme before deploying large cable runs — saves hours of debugging", + ], + items_de: [ + "VFL (Visual Fault Locator) Rotlaser verwenden: Faser 1 an einem Ende beleuchten und pruefen, welche Faser am anderen Ende leuchtet", + "Fuer MPO-12: Faser 1 des Senders sollte an Faser 1 des Empfaengesteckers des entfernten Transceivers erscheinen", + "Faser-Identifier/Polaritaetsprueger-Werkzeug fuer schnelle Verifizierung verwenden", + "Polaritaetsschema vor der Verlegung grosser Kabelmengen dokumentieren — spart Stunden Debugging", + ], + }, + ], + }, + ], + quiz: [ + { + id: "infra-mpo-q1", + lesson: "infra-mpo", + q: "What is the industry standard combination of trunk cable and cassette type for correct SR4 polarity?", + q_de: "Welche Standardkombination aus Trunk-Kabel und Kassettentyp ergibt korrekte SR4-Polaritaet?", + options: [ + "Type A trunk + Type A cassette", + "Type B trunk + Type A cassette", + "Type C trunk + Type B cassette", + "Any combination works", + ], + options_de: [ + "Type-A-Trunk + Type-A-Kassette", + "Type-B-Trunk + Type-A-Kassette", + "Type-C-Trunk + Type-B-Kassette", + "Jede Kombination funktioniert", + ], + answer: 1, + explanation: + "TIA-568-C.0 Method B specifies Type B trunk cables with Type A (straight) breakout cassettes for correct end-to-end polarity with parallel-optics transceivers (SR4, SR8).", + explanation_de: + "TIA-568-C.0 Methode B spezifiziert Type-B-Trunk-Kabel mit Type-A-(Durchgangs-)Breakout-Kassetten fuer korrekte End-zu-End-Polaritaet mit Parallel-Optik-Transceivern (SR4, SR8).", + }, + { + id: "infra-mpo-q2", + lesson: "infra-mpo", + q: "In a Type B MPO cable, fiber 1 at one end connects to which fiber at the far end?", + q_de: "In einem Type-B-MPO-Kabel verbindet sich Faser 1 an einem Ende mit welcher Faser am anderen Ende?", + options: ["Fiber 1 (straight-through)", "Fiber 6", "Fiber 12 (reversed)", "Fiber 7"], + options_de: ["Faser 1 (Durchgang)", "Faser 6", "Faser 12 (umgekehrt)", "Faser 7"], + answer: 2, + explanation: + "Type B (reversed) cables flip the fiber array: Fiber 1 at one end connects to Fiber 12 at the other end. This is intentional and works correctly when paired with the right cassette type.", + explanation_de: + "Type-B-(umgekehrte) Kabel spiegeln das Faser-Array: Faser 1 an einem Ende verbindet sich mit Faser 12 am anderen Ende. Das ist beabsichtigt und funktioniert korrekt, wenn mit dem richtigen Kassettentyp gepaart.", + }, + { + id: "infra-mpo-q3", + lesson: "infra-mpo", + q: "A 40GBASE-SR4 link shows 'link down' immediately after MPO installation. What should you check first?", + q_de: "Eine 40GBASE-SR4-Verbindung zeigt sofort nach der MPO-Installation 'Link Down'. Was sollten Sie zuerst pruefen?", + options: [ + "Replace both transceivers", + "Check MPO polarity — TX fibers may be connected to TX instead of RX", + "Check if the switch supports 40G", + "Verify the fiber is OM4 not OM3", + ], + options_de: [ + "Beide Transceiver austauschen", + "MPO-Polaritaet pruefen — TX-Fasern koennten mit TX statt RX verbunden sein", + "Pruefen, ob der Switch 40G unterstuetzt", + "Verifizieren, ob die Faser OM4 und nicht OM3 ist", + ], + answer: 1, + explanation: + "Wrong polarity (TX→TX instead of TX→RX) is the #1 cause of 'link down' with new MPO installations. Use a VFL or polarity checker before concluding the modules are faulty.", + explanation_de: + "Falsche Polaritaet (TX→TX statt TX→RX) ist die haeufigste Ursache fuer 'Link Down' bei neuen MPO-Installationen. VFL oder Polaritaetsprueger verwenden, bevor Module als defekt eingestuft werden.", + }, + ], + }, + + { + id: "infra-wavelengths", + category: "infrastructure", + title: "CWDM and DWDM Wavelengths", + title_de: "CWDM- und DWDM-Wellenlaengen", + level: "intermediate", + duration_min: 15, + summary: + "WDM (Wavelength Division Multiplexing) multiplies fiber capacity by carrying multiple wavelengths simultaneously. Learn CWDM and DWDM grids, when to use each, and the amplification technologies that enable long-haul DWDM.", + summary_de: + "WDM (Wavelength Division Multiplexing) multipliziert die Faserkapazitaet, indem mehrere Wellenlaengen gleichzeitig uebertragen werden. Lernen Sie CWDM- und DWDM-Raster, wann welches zu verwenden ist und die Verstaerkertechnologien fuer DWDM-Langstrecken.", + tags: ["cwdm", "dwdm", "wavelength", "wdm", "edfa", "mux"], + sections: [ + { + heading: "WDM Concept", + heading_de: "WDM-Konzept", + blocks: [ + { + type: "p", + text: "WDM carries multiple data streams on different wavelengths (colors of light) simultaneously on the same fiber. A passive MUX (multiplexer) combines the wavelengths at the transmit end; a DEMUX separates them at the receive end. This multiplies fiber capacity without laying new fiber — extremely cost-effective for existing cable routes.", + text_de: + "WDM uebertraegt mehrere Datenstroeme auf verschiedenen Wellenlaengen (Lichtfarben) gleichzeitig auf derselben Faser. Ein passiver MUX (Multiplexer) kombiniert die Wellenlaengen am Sendeende; ein DEMUX trennt sie am Empfangsende. Das multipliziert die Faserkapazitaet ohne neue Faser zu verlegen — extrem kosteneffizient fuer bestehende Kabelrouten.", + }, + ], + }, + { + heading: "CWDM: Coarse Wavelength Division Multiplexing", + heading_de: "CWDM: Grob-Wellenlaengenmultiplex", + blocks: [ + { + type: "p", + text: "CWDM uses 20nm channel spacing, allowing 18 channels from 1270nm to 1610nm. CWDM does not require temperature stabilization (the wider channel spacing tolerates wavelength drift), making CWDM transceivers significantly cheaper than DWDM modules. CWDM signals cannot be amplified with standard EDFA (which only covers the C-band), limiting reach to approximately 80km.", + text_de: + "CWDM verwendet 20-nm-Kanalabstand und erlaubt 18 Kanaele von 1270 nm bis 1610 nm. CWDM erfordert keine Temperaturstabilisierung (der groessere Kanalabstand toleriert Wellenlaengendrift), was CWDM-Transceiver erheblich guenstiger als DWDM-Module macht. CWDM-Signale koennen nicht mit Standard-EDFA verstaerkt werden (der nur das C-Band abdeckt), was die Reichweite auf ca. 80 km begrenzt.", + }, + { + type: "table", + headers: ["CWDM Channel", "Wavelength", "ITU Band", "Typical Use"], + headers_de: ["CWDM-Kanal", "Wellenlaenge", "ITU-Band", "Typische Nutzung"], + rows: [ + ["CWDM-1", "1270 nm", "O-band", "Short reach in transceiver WDM (LR4)"], + ["CWDM-2", "1290 nm", "O-band", "Short reach WDM"], + ["CWDM-3", "1310 nm", "O-band", "Standard 1G/10G wavelength"], + ["CWDM-4", "1330 nm", "O-band", "Metro"], + ["CWDM-5", "1350 nm", "O-band", "Metro"], + ["CWDM-6", "1370 nm", "E-band (water peak)", "Often avoided — high loss"], + ["CWDM-7", "1390 nm", "E-band", "Avoid on non-ZWP fiber"], + ["CWDM-8", "1410 nm", "E-band", "Avoid on non-ZWP fiber"], + ["CWDM-9", "1430 nm", "S-band", "Metro CWDM systems"], + ["CWDM-10", "1450 nm", "S-band", "Metro CWDM systems"], + ["CWDM-11", "1470 nm", "S-band", "Metro CWDM"], + ["CWDM-12", "1490 nm", "S-band", "PON downstream (GPON)"], + ["CWDM-13", "1510 nm", "C-band edge", "Metro"], + ["CWDM-14", "1530 nm", "C-band", "Near DWDM C-band"], + ["CWDM-15", "1550 nm", "C-band", "Standard ZR/ER wavelength"], + ["CWDM-16", "1570 nm", "C-band/L-band", "Metro"], + ["CWDM-17", "1590 nm", "L-band", "Metro"], + ["CWDM-18", "1610 nm", "L-band", "Metro, monitoring"], + ], + }, + ], + }, + { + heading: "DWDM: Dense Wavelength Division Multiplexing", + heading_de: "DWDM: Dicht-Wellenlaengenmultiplex", + blocks: [ + { + type: "p", + text: "DWDM uses much tighter channel spacing — 100GHz (0.8nm), 50GHz (0.4nm), or flexgrid down to 12.5GHz — enabling 40, 80, or 160+ channels in the C-band (1530–1565nm) or L-band (1565–1625nm). DWDM channels can be amplified by EDFA (Erbium-Doped Fiber Amplifiers), enabling transmission of thousands of kilometers.", + text_de: + "DWDM verwendet viel engere Kanalabstaende — 100GHz (0,8 nm), 50GHz (0,4 nm) oder Flexgrid bis 12,5 GHz — und ermoeglicht 40, 80 oder 160+ Kanaele im C-Band (1530–1565 nm) oder L-Band (1565–1625 nm). DWDM-Kanaele koennen durch EDFA (Erbium-dotierte Faserverstaerker) verstaerkt werden und ermoeglichen Uebertragungen ueber Tausende von Kilometern.", + }, + { + type: "callout", + variant: "key", + text: "CWDM vs DWDM decision rule: Link under 80km without amplification → CWDM (3× cheaper modules). Link over 80km or requiring amplification → DWDM. Metro networks with 400G coherent ZR → DWDM required.", + text_de: + "CWDM vs DWDM Entscheidungsregel: Verbindung unter 80 km ohne Verstaerkung → CWDM (3× guenstigere Module). Verbindung ueber 80 km oder Verstaerkung erforderlich → DWDM. Metro-Netzwerke mit 400G Coherent ZR → DWDM erforderlich.", + }, + ], + }, + ], + quiz: [ + { + id: "infra-wdm-q1", + lesson: "infra-wavelengths", + q: "What channel spacing does CWDM use?", + q_de: "Welchen Kanalabstand verwendet CWDM?", + options: ["0.8 nm (100 GHz)", "20 nm", "50 GHz", "1 nm"], + options_de: ["0,8 nm (100 GHz)", "20 nm", "50 GHz", "1 nm"], + answer: 1, + explanation: + "CWDM uses 20nm channel spacing, enabling 18 channels from 1270 to 1610nm. This wider spacing allows uncooled lasers and cheaper modules.", + explanation_de: + "CWDM verwendet 20-nm-Kanalabstand und ermoeglicht 18 Kanaele von 1270 bis 1610 nm. Dieser groessere Abstand erlaubt ungekuehlte Laser und guenstigere Module.", + }, + { + id: "infra-wdm-q2", + lesson: "infra-wavelengths", + q: "Why can DWDM links be much longer than CWDM links?", + q_de: "Warum koennen DWDM-Verbindungen viel laenger als CWDM-Verbindungen sein?", + options: [ + "DWDM uses lower wavelengths which have less fiber attenuation", + "DWDM channels can be amplified by EDFA in the C-band; CWDM cannot", + "DWDM modules have higher TX power", + "DWDM uses single-mode fiber; CWDM uses multimode", + ], + options_de: [ + "DWDM verwendet niedrigere Wellenlaengen mit geringerer Faserdeampfung", + "DWDM-Kanaele koennen im C-Band durch EDFA verstaerkt werden; CWDM nicht", + "DWDM-Module haben hoehere TX-Leistung", + "DWDM verwendet Einzelmodefaser; CWDM Mehrmodefaser", + ], + answer: 1, + explanation: + "DWDM channels in the C-band (1530-1565nm) can be amplified by EDFA (Erbium-Doped Fiber Amplifiers), enabling transmission over thousands of km. CWDM channels (many outside C-band) cannot use standard EDFA amplification.", + explanation_de: + "DWDM-Kanaele im C-Band (1530–1565 nm) koennen durch EDFA (Erbium-dotierte Faserverstaerker) verstaerkt werden und ermoeglichen Uebertragungen ueber Tausende von km. CWDM-Kanaele (viele ausserhalb des C-Bandes) koennen keine Standard-EDFA-Verstaerkung nutzen.", + }, + { + id: "infra-wdm-q3", + lesson: "infra-wavelengths", + q: "For a 50km metro link requiring just 4 channels, which WDM approach is more cost-effective?", + q_de: "Fuer eine 50-km-Metro-Verbindung mit nur 4 Kanaelen — welcher WDM-Ansatz ist kostenguenstiger?", + options: ["DWDM with 100GHz spacing", "CWDM (20nm spacing, uncooled lasers)", "Coherent ZR", "PAM4 direct detect"], + options_de: [ + "DWDM mit 100-GHz-Abstand", + "CWDM (20-nm-Abstand, ungekuehlte Laser)", + "Coherent ZR", + "PAM4 Direct Detect", + ], + answer: 1, + explanation: + "CWDM is the right choice for 50km (within the 80km unamplified limit) with few channels. CWDM modules are 3× cheaper than DWDM due to uncooled lasers and wider filter tolerances.", + explanation_de: + "CWDM ist die richtige Wahl fuer 50 km (innerhalb des 80-km-unverstaerkten Limits) mit wenigen Kanaelen. CWDM-Module sind 3× guenstiger als DWDM durch ungekuehlte Laser und groessere Filtertoleranzen.", + }, + ], + }, +]; diff --git a/packages/api/src/data/training/standards.ts b/packages/api/src/data/training/standards.ts new file mode 100644 index 0000000..cfb2c1c --- /dev/null +++ b/packages/api/src/data/training/standards.ts @@ -0,0 +1,1039 @@ +import type { TrainingLesson } from "./types"; + +export const standardsLessons: TrainingLesson[] = [ + { + id: "std-ieee-intro", + category: "standards", + title: "IEEE 802.3 Overview", + title_de: "IEEE 802.3 Grundlagen", + level: "beginner", + duration_min: 10, + summary: + "Learn how the IEEE 802.3 Ethernet standard is organized, how new amendments are developed, and how to decode transceiver naming conventions.", + summary_de: + "Verstehen Sie, wie der IEEE 802.3 Ethernet-Standard aufgebaut ist, wie neue Ergaenzungen entstehen und wie Sie Transceiver-Bezeichnungen entschluesseln.", + tags: ["standards", "ieee", "ethernet", "naming"], + sections: [ + { + heading: "What Is IEEE 802.3?", + heading_de: "Was ist IEEE 802.3?", + blocks: [ + { + type: "p", + text: "IEEE 802.3 is the international standard that defines Ethernet — the most widely deployed networking technology in the world. It specifies everything from the electrical signaling at the physical layer to the frame format at the MAC layer. Published by the Institute of Electrical and Electronics Engineers (IEEE), the standard is maintained by a working group of vendors, operators, and academic researchers.", + text_de: + "IEEE 802.3 ist der internationale Standard, der Ethernet definiert — die weltweit am weitesten verbreitete Netzwerktechnologie. Er legt alles fest, von der elektrischen Signalisierung auf der physikalischen Schicht bis zum Frame-Format auf der MAC-Schicht. Der Standard wird von einem IEEE-Gremium aus Herstellern, Betreibern und Forschern gepflegt.", + }, + { + type: "p", + text: "The base standard was published in 1983 as a 10 Mbps CSMA/CD LAN. Since then, it has been extended through amendments (denoted by lower-case letters, e.g., 802.3ae) that add new physical layers while keeping the MAC layer backward compatible. Every few years, all active amendments are consolidated into a new base edition.", + text_de: + "Der Grundstandard wurde 1983 als 10-Mbit/s-CSMA/CD-LAN veroeffentlicht. Seitdem wurde er durch Ergaenzungen (mit Kleinbuchstaben bezeichnet, z. B. 802.3ae) erweitert, die neue physikalische Schichten hinzufuegen, waehrend die MAC-Schicht abwaertskompatibel bleibt.", + }, + { + type: "callout", + variant: "info", + text: "The current consolidated base edition is IEEE 802.3-2022. It incorporates all amendments up to and including 802.3ct. Always reference this if you need the full standard text.", + text_de: + "Die aktuelle konsolidierte Basisausgabe ist IEEE 802.3-2022. Sie umfasst alle Ergaenzungen bis einschliesslich 802.3ct.", + }, + ], + }, + { + heading: "How the Standard Is Developed", + heading_de: "Wie der Standard entwickelt wird", + blocks: [ + { + type: "p", + text: "New Ethernet standards go through a formal IEEE process. First, a Study Group investigates whether there is industry demand. If approved, a Task Force is formed and a Project Authorization Request (PAR) is submitted. The Task Force meets (typically quarterly) and develops draft specifications. After letter ballot and sponsor ballot, the amendment is published.", + text_de: + "Neue Ethernet-Standards durchlaufen einen formalen IEEE-Prozess. Zuerst untersucht eine Study Group den Bedarf. Wenn genehmigt, wird eine Task Force gebildet und ein Project Authorization Request (PAR) eingereicht. Nach Abstimmungen wird die Ergaenzung veroeffentlicht.", + }, + { + type: "ul", + items: [ + "Study Group → feasibility and requirements (6–18 months)", + "Task Force → draft specification development (2–4 years)", + "Letter Ballot → 75% approval required from voting members", + "Sponsor Ballot → broader IEEE-SA review", + "Publication → typically 4–6 years from start to published standard", + ], + items_de: [ + "Study Group → Machbarkeit und Anforderungen (6–18 Monate)", + "Task Force → Entwicklung des Entwurfs (2–4 Jahre)", + "Letter Ballot → 75 % Zustimmung erforderlich", + "Sponsor Ballot → breitere IEEE-SA-Pruefung", + "Veroeffentlichung → typisch 4–6 Jahre vom Start bis zur Publikation", + ], + }, + ], + }, + { + heading: "How to Read IEEE 802.3 Names", + heading_de: "IEEE 802.3 Bezeichnungen lesen", + blocks: [ + { + type: "p", + text: "Optical transceiver names follow the pattern: Speed + BASE + Medium. For example, 10GBASE-LR means 10 Gigabit Ethernet, baseband (BASE), Long Reach single-mode fiber. Understanding this notation lets you quickly identify what a module does.", + text_de: + "Optische Transceiver folgen dem Schema: Geschwindigkeit + BASE + Medium. Zum Beispiel bedeutet 10GBASE-LR: 10-Gigabit-Ethernet, Basisbandmodulation (BASE), Einzelmode-Faser mit langer Reichweite (Long Reach).", + }, + { + type: "table", + headers: ["Code", "Meaning", "Examples"], + headers_de: ["Kuerzel", "Bedeutung", "Beispiele"], + rows: [ + ["S", "Short reach (multimode, typically ≤300m)", "10GBASE-SR, 100GBASE-SR4"], + ["L", "Long reach (single-mode, typically ≤10km)", "10GBASE-LR, 100GBASE-LR4"], + ["E", "Extended reach (≤40km SMF)", "10GBASE-ER, 400GBASE-ER8"], + ["Z", "Ultra-long reach (≥70km SMF)", "10GBASE-ZR"], + ["D", "Direct attach / PSM (parallel SMF, ≤500m)", "100GBASE-DR, 400GBASE-DR4"], + ["F", "Far reach (2–10km SMF, typically CWDM4)", "100GBASE-FR, 400GBASE-FR4"], + ["R", "NRZ encoding (single-lane at full rate)", "100GBASE-DR"], + ["4", "4 lanes (WDM or parallel)", "100GBASE-LR4, 40GBASE-SR4"], + ["8", "8 lanes", "400GBASE-SR8, 800GBASE-DR8"], + ["T", "Twisted pair copper", "1000BASE-T, 10GBASE-T"], + ], + }, + { + type: "callout", + variant: "tip", + text: "The number after the reach code (SR4, LR4) indicates how many fiber lanes or WDM channels are used. SR4 uses 4 parallel fibers (MPO connector). LR4 uses 4 WDM wavelengths on 2 fibers (LC connector).", + text_de: + "Die Zahl nach dem Reichweitencode (SR4, LR4) gibt an, wie viele Fasern oder WDM-Kanaele verwendet werden. SR4 nutzt 4 parallele Fasern (MPO-Stecker). LR4 verwendet 4 WDM-Wellenlaengen auf 2 Fasern (LC-Stecker).", + }, + ], + }, + { + heading: "Major IEEE 802.3 Amendments", + heading_de: "Wichtige IEEE 802.3 Ergaenzungen", + blocks: [ + { + type: "table", + headers: ["Amendment", "Year", "Key Addition", "Max Speed"], + headers_de: ["Ergaenzung", "Jahr", "Neuerung", "Max. Geschwindigkeit"], + rows: [ + ["802.3z", "1998", "1000BASE-SX/LX (Gigabit Fiber)", "1 Gbps"], + ["802.3ae", "2002", "10GBASE-SR/LR/ER/LRM (10G Fiber)", "10 Gbps"], + ["802.3an", "2006", "10GBASE-T (10G Copper)", "10 Gbps"], + ["802.3ba", "2010", "40GBASE/100GBASE (first 40G and 100G)", "100 Gbps"], + ["802.3bj", "2014", "100GBASE-CR4/KR4 (backplane and DAC)", "100 Gbps"], + ["802.3bm", "2015", "100GBASE-SR4, 40GBASE-SR4 improvements", "100 Gbps"], + ["802.3bq", "2016", "25GBASE-T, 40GBASE-T (copper)", "40 Gbps"], + ["802.3cd", "2018", "50GBASE-SR/FR/LR, 100/200G PAM4", "200 Gbps"], + ["802.3ck", "2022", "100GBASE-CR1/KR1/DR, 400G electrical", "400 Gbps"], + ["802.3df", "2023", "800GBASE-DR8/SR8/VR8, 1.6T roadmap", "800 Gbps"], + ["802.3dj", "In progress", "1.6TBASE-DX16 and beyond", "1600 Gbps"], + ], + }, + ], + }, + ], + quiz: [ + { + id: "std-ieee-q1", + lesson: "std-ieee-intro", + q: "What does 'BASE' in 10GBASE-LR mean?", + q_de: "Was bedeutet 'BASE' in 10GBASE-LR?", + options: [ + "Baseband transmission (not modulated onto a carrier)", + "Basic Access Standard Ethernet", + "Bidirectional Access to Single-mode Ethernet", + "Broadband Analog Signal Encoding", + ], + options_de: [ + "Basisband-Uebertragung (nicht auf einen Traeger moduliert)", + "Basic Access Standard Ethernet", + "Bidirektionaler Zugang zu Einzelmode-Ethernet", + "Breitband-Analogsignalcodierung", + ], + answer: 0, + explanation: + "BASE indicates baseband signaling — the full channel bandwidth is used for a single signal. This is in contrast to broadband systems that modulate onto a carrier frequency.", + explanation_de: + "BASE steht fuer Basisband-Signalisierung — die gesamte Kanalbandbreite wird fuer ein einzelnes Signal genutzt.", + }, + { + id: "std-ieee-q2", + lesson: "std-ieee-intro", + q: "Which IEEE 802.3 amendment first introduced 100 Gigabit Ethernet?", + q_de: "Welche IEEE 802.3 Ergaenzung fuehrte 100-Gigabit-Ethernet erstmals ein?", + options: ["802.3ae", "802.3bm", "802.3ba", "802.3ck"], + options_de: ["802.3ae", "802.3bm", "802.3ba", "802.3ck"], + answer: 2, + explanation: + "802.3ba (2010) was the first amendment to define both 40GbE and 100GbE physical layers.", + explanation_de: + "802.3ba (2010) war die erste Ergaenzung, die sowohl 40-GbE- als auch 100-GbE-Physical-Layer definierte.", + }, + { + id: "std-ieee-q3", + lesson: "std-ieee-intro", + q: "What does the '4' in 100GBASE-SR4 indicate?", + q_de: "Was bedeutet die '4' in 100GBASE-SR4?", + options: [ + "The module operates at 400 Gbps total", + "4 fiber lanes or WDM channels carry the 100G signal", + "The module version is 4th generation", + "The cable can be up to 4 km long", + ], + options_de: [ + "Das Modul uebertraegt insgesamt 400 Gbps", + "4 Fasern oder WDM-Kanaele uebertragen das 100G-Signal", + "Es handelt sich um die 4. Modulgeneration", + "Das Kabel kann bis zu 4 km lang sein", + ], + answer: 1, + explanation: + "The suffix '4' means 4 lanes. 100GBASE-SR4 uses 4 parallel MMF lanes at 25 Gbps each via an MPO-12 connector.", + explanation_de: + "Das Suffix '4' bedeutet 4 Faserlaenge oder Kanaele. 100GBASE-SR4 verwendet 4 parallele Mehrmode-Fasern mit je 25 Gbps ueber einen MPO-12-Stecker.", + }, + { + id: "std-ieee-q4", + lesson: "std-ieee-intro", + q: "How long does it typically take from forming an IEEE 802.3 Task Force to a published standard?", + q_de: "Wie lange dauert es typischerweise von der Task-Force-Gruendung bis zur Veroeffentlichung eines IEEE 802.3 Standards?", + options: ["6–12 months", "1–2 years", "4–6 years", "10+ years"], + options_de: ["6–12 Monate", "1–2 Jahre", "4–6 Jahre", "Mehr als 10 Jahre"], + answer: 2, + explanation: + "The IEEE process is thorough. From Task Force formation through balloting to publication typically takes 4–6 years.", + explanation_de: + "Der IEEE-Prozess ist gruendlich. Von der Task-Force-Gruendung bis zur Veroeffentlichung dauert es typischerweise 4–6 Jahre.", + }, + { + id: "std-ieee-q5", + lesson: "std-ieee-intro", + q: "A module labeled 400GBASE-DR4 uses how many fiber lanes?", + q_de: "Wie viele Faserkanaele verwendet ein Modul der Bezeichnung 400GBASE-DR4?", + options: ["1 lane (single-mode PAM4)", "2 lanes (bidirectional)", "4 lanes (parallel SMF)", "8 lanes (parallel MMF)"], + options_de: [ + "1 Lane (Einzelmode PAM4)", + "2 Lanes (bidirektional)", + "4 Lanes (parallele Einzelmodefasern)", + "8 Lanes (parallele Mehrmofasern)", + ], + answer: 2, + explanation: + "DR4 = 4 parallel single-mode fiber lanes (PSM4), each carrying 100G, via an MPO-12 connector. Reach is 500m.", + explanation_de: + "DR4 = 4 parallele Einzelmodefasern (PSM4), jede mit 100 Gbps, ueber einen MPO-12-Stecker. Reichweite: 500 m.", + }, + ], + }, + + { + id: "std-1g-10g", + category: "standards", + title: "1G and 10G Ethernet Standards", + title_de: "1G- und 10G-Ethernet-Standards", + level: "beginner", + duration_min: 12, + summary: + "A detailed look at 1 Gigabit and 10 Gigabit Ethernet optical standards — variants, fiber requirements, wavelengths, and maximum reach.", + summary_de: + "Ein detaillierter Ueberblick ueber 1-Gigabit- und 10-Gigabit-Ethernet-optische Standards: Varianten, Faseranforderungen, Wellenlaengen und maximale Reichweiten.", + tags: ["1g", "10g", "sfp", "sfp+", "standards"], + sections: [ + { + heading: "1 Gigabit Ethernet Optical Standards", + heading_de: "1-Gigabit-Ethernet optische Standards", + blocks: [ + { + type: "p", + text: "Gigabit Ethernet (1000BASE-X) was standardized in IEEE 802.3z (1998). It was the first major fiber Ethernet standard and remains widely deployed — particularly in access and aggregation layers, storage networks (as 1GFC base), and legacy infrastructure.", + text_de: + "Gigabit Ethernet (1000BASE-X) wurde in IEEE 802.3z (1998) standardisiert. Es war der erste grosse Glasfaser-Ethernet-Standard und ist nach wie vor weit verbreitet, insbesondere im Zugangsnetz, in Storage-Netzwerken und in Legacy-Infrastrukturen.", + }, + { + type: "table", + headers: ["Standard", "Wavelength", "Fiber Type", "Max Reach", "Connector"], + headers_de: ["Standard", "Wellenlaenge", "Fasertyp", "Max. Reichweite", "Stecker"], + rows: [ + ["1000BASE-SX", "850 nm", "OM1 (62.5µm)", "220 m", "LC duplex"], + ["1000BASE-SX", "850 nm", "OM2 (50µm)", "550 m", "LC duplex"], + ["1000BASE-LX", "1310 nm", "OM1/OM2 (with conditioner)", "550 m", "LC duplex"], + ["1000BASE-LX", "1310 nm", "OS1/OS2 single-mode", "10 km", "LC duplex"], + ["1000BASE-EX", "1310 nm", "OS1/OS2 single-mode", "40 km", "LC duplex"], + ["1000BASE-ZX", "1550 nm", "OS1/OS2 single-mode", "70–80 km", "LC duplex"], + ["1000BASE-BX10", "1310/1490 nm", "OS1/OS2 (BiDi)", "10 km", "LC simplex"], + ["1000BASE-T", "N/A (copper)", "Cat5e/Cat6", "100 m", "RJ-45"], + ], + }, + { + type: "callout", + variant: "warning", + text: "Do not confuse 1000BASE-LX with 10GBASE-LR. LX is 1G on single-mode at 1310nm; LR is 10G on single-mode at 1310nm. Mixing them up in an order is a very common mistake.", + text_de: + "Verwechseln Sie nicht 1000BASE-LX mit 10GBASE-LR. LX ist 1G auf Einzelmodefaser bei 1310 nm; LR ist 10G bei 1310 nm. Diese Verwechslung ist einer der haeufigsten Bestellfehler.", + }, + ], + }, + { + heading: "10 Gigabit Ethernet Optical Standards", + heading_de: "10-Gigabit-Ethernet optische Standards", + blocks: [ + { + type: "p", + text: "10GbE was standardized in IEEE 802.3ae (2002) and dramatically expanded data center and WAN capacity. The SFP+ form factor made 10G the workhorse of modern networks. 10G remains heavily deployed and remains the most cost-effective port for most applications.", + text_de: + "10GbE wurde in IEEE 802.3ae (2002) standardisiert und erweiterte Data-Center- und WAN-Kapazitaeten erheblich. Das SFP+-Formfaktor machte 10G zur Arbeitsgrundlage moderner Netzwerke.", + }, + { + type: "table", + headers: ["Standard", "Wavelength", "Fiber Type", "Max Reach", "Typical Use"], + headers_de: ["Standard", "Wellenlaenge", "Fasertyp", "Max. Reichweite", "Typische Anwendung"], + rows: [ + ["10GBASE-SR", "850 nm", "OM3 (50µm)", "300 m", "Data center server access"], + ["10GBASE-SR", "850 nm", "OM4 (50µm)", "400 m", "Data center, long runs"], + ["10GBASE-LR", "1310 nm", "OS1/OS2 SMF", "10 km", "Campus, MAN, inter-building"], + ["10GBASE-ER", "1550 nm", "OS1/OS2 SMF", "40 km", "Metro / edge aggregation"], + ["10GBASE-ZR", "1550 nm", "OS2 SMF (low loss)", "80 km", "Long-haul SONET/SDH replacement"], + ["10GBASE-LRM", "1310 nm", "OM1/OM2 legacy MMF", "220 m", "Upgrading legacy MMF links"], + ["10GBASE-T", "N/A (copper)", "Cat6A / Cat7", "100 m", "Server access with existing copper"], + ], + }, + { + type: "callout", + variant: "key", + text: "10GBASE-LRM was designed specifically to allow 10G upgrades over legacy 62.5µm OM1 fiber — at the cost of higher module price and shorter reach than SR. If you have OM3/OM4, always prefer SR.", + text_de: + "10GBASE-LRM wurde speziell fuer 10G-Upgrades ueber aeltere 62,5-µm-OM1-Fasern entwickelt — auf Kosten eines hoeheren Modulpreises und kuerzerer Reichweite als SR. Mit OM3/OM4 immer SR bevorzugen.", + }, + { + type: "p", + text: "10GBASE-ZR is not formally defined in IEEE 802.3 — it is an industry-standard extension widely adopted by vendors. The actual IEEE standard stops at ER (40km). ZR modules are tested to 80km but specifications vary by manufacturer.", + text_de: + "10GBASE-ZR ist nicht offiziell in IEEE 802.3 definiert — es handelt sich um eine von der Industrie weitgehend akzeptierte Erweiterung. Der eigentliche IEEE-Standard endet bei ER (40 km). ZR-Module werden auf 80 km getestet, die Spezifikationen variieren jedoch je nach Hersteller.", + }, + ], + }, + { + heading: "Choosing Between 1G and 10G", + heading_de: "Wahl zwischen 1G und 10G", + blocks: [ + { + type: "ul", + items: [ + "Access layer to servers: 10G SFP+ SR is the standard choice (100m typical, $30-80 module)", + "Storage (iSCSI, FCoE): 10G minimum, often jumping directly to 25G for new deployments", + "IP phones, IoT, PoE: 1G copper (1000BASE-T) suffices", + "Aggregation uplinks: 10G→40G→100G depending on server count", + "Campus backbone: 10G if buildings are within 10km, otherwise ZR/ER for distance", + ], + items_de: [ + "Zugangsnetz zu Servern: 10G SFP+ SR ist Standard (100m typisch, 30–80 EUR/Modul)", + "Storage (iSCSI, FCoE): Mindestens 10G, neue Deployments oft direkt 25G", + "IP-Telefone, IoT, PoE: 1G Kupfer (1000BASE-T) genuegt", + "Aggregations-Uplinks: 10G→40G→100G je nach Server-Anzahl", + "Campus-Backbone: 10G bis 10 km, sonst ZR/ER fuer groessere Distanzen", + ], + }, + ], + }, + ], + quiz: [ + { + id: "std-1g10g-q1", + lesson: "std-1g-10g", + q: "What is the maximum reach of 1000BASE-SX over OM3 fiber?", + q_de: "Welche maximale Reichweite hat 1000BASE-SX ueber OM3-Faser?", + options: ["220 m", "550 m", "10 km", "40 km"], + options_de: ["220 m", "550 m", "10 km", "40 km"], + answer: 1, + explanation: + "1000BASE-SX achieves 550m over OM2 (50µm) or OM3/OM4 fiber. Over legacy OM1 (62.5µm), reach drops to 220m.", + explanation_de: + "1000BASE-SX erreicht 550 m ueber OM2 (50µm) oder OM3/OM4-Faser. Ueber Legacy-OM1 (62,5µm) sinkt die Reichweite auf 220 m.", + }, + { + id: "std-1g10g-q2", + lesson: "std-1g-10g", + q: "Which 10G standard was designed specifically for upgrading legacy OM1 multimode fiber?", + q_de: "Welcher 10G-Standard wurde speziell fuer Upgrades ueber aeltere OM1-Mehrmodefasern entwickelt?", + options: ["10GBASE-SR", "10GBASE-LR", "10GBASE-LRM", "10GBASE-ER"], + options_de: ["10GBASE-SR", "10GBASE-LR", "10GBASE-LRM", "10GBASE-ER"], + answer: 2, + explanation: + "10GBASE-LRM (Long Reach Multimode) was designed to achieve 220m over legacy 62.5µm OM1 fiber, enabling 10G upgrades without replacing existing cable.", + explanation_de: + "10GBASE-LRM (Long Reach Multimode) wurde entwickelt, um 220 m ueber aeltere 62,5-µm-OM1-Fasern zu erreichen.", + }, + { + id: "std-1g10g-q3", + lesson: "std-1g-10g", + q: "10GBASE-ZR is formally defined in which IEEE standard?", + q_de: "In welchem IEEE-Standard ist 10GBASE-ZR formal definiert?", + options: [ + "IEEE 802.3ae", + "IEEE 802.3bm", + "It is NOT formally defined in IEEE 802.3 — it's an industry extension", + "IEEE 802.3an", + ], + options_de: [ + "IEEE 802.3ae", + "IEEE 802.3bm", + "Es ist NICHT formal in IEEE 802.3 definiert — es handelt sich um eine Industrie-Erweiterung", + "IEEE 802.3an", + ], + answer: 2, + explanation: + "ZR (80km) is NOT in the IEEE standard. The standard ends at ER (40km, 802.3ae). ZR is a de-facto industry specification implemented consistently by major vendors but without formal standardization.", + explanation_de: + "ZR (80 km) ist NICHT im IEEE-Standard enthalten. Der Standard endet bei ER (40 km, 802.3ae). ZR ist eine de-facto Industriespezifikation.", + }, + { + id: "std-1g10g-q4", + lesson: "std-1g-10g", + q: "What is the maximum reach of 10GBASE-ER?", + q_de: "Welche maximale Reichweite hat 10GBASE-ER?", + options: ["10 km", "40 km", "80 km", "120 km"], + options_de: ["10 km", "40 km", "80 km", "120 km"], + answer: 1, + explanation: + "10GBASE-ER (Extended Reach) operates at 1550nm on single-mode fiber with a maximum reach of 40km.", + explanation_de: + "10GBASE-ER (Extended Reach) arbeitet bei 1550 nm auf Einzelmodefaser mit maximal 40 km Reichweite.", + }, + { + id: "std-1g10g-q5", + lesson: "std-1g-10g", + q: "A 1000BASE-BX10 module uses which connector type and why?", + q_de: "Welchen Steckertyp verwendet ein 1000BASE-BX10-Modul und warum?", + options: [ + "LC duplex — because it uses two fibers for Tx and Rx", + "MPO-12 — because it uses 12 parallel fibers", + "LC simplex — because BiDi uses different wavelengths on a single fiber", + "SC duplex — because SC is required for BiDi signaling", + ], + options_de: [ + "LC duplex — weil es zwei Fasern fuer Senden und Empfangen verwendet", + "MPO-12 — weil 12 parallele Fasern genutzt werden", + "LC simplex — weil BiDi unterschiedliche Wellenlaengen auf einer einzigen Faser nutzt", + "SC duplex — weil SC fuer BiDi-Signalisierung erforderlich ist", + ], + answer: 2, + explanation: + "BiDi (Bidirectional) modules use two different wavelengths (1310nm Tx, 1490nm Rx) multiplexed onto a single fiber — requiring only one fiber and therefore a simplex LC connector.", + explanation_de: + "BiDi-Module verwenden zwei verschiedene Wellenlaengen (1310 nm Senden, 1490 nm Empfangen) auf einer einzigen Faser — daher nur ein Faserkanal und ein LC-Simplex-Stecker.", + }, + ], + }, + + { + id: "std-100g", + category: "standards", + title: "100G Ethernet Standards", + title_de: "100G-Ethernet-Standards", + level: "intermediate", + duration_min: 15, + summary: + "Deep dive into the many variants of 100 Gigabit Ethernet — from SR4 in data centers to ZR coherent for long-haul — with form factors, fiber requirements, and cost trade-offs.", + summary_de: + "Detaillierter Ueberblick ueber die vielen Varianten von 100-Gigabit-Ethernet — von SR4 im Rechenzentrum bis ZR-Coherent fuer Langstrecken — mit Formfaktoren, Faseranforderungen und Kostenvergleichen.", + tags: ["100g", "qsfp28", "cwdm4", "dr", "fr", "lr4", "coherent"], + sections: [ + { + heading: "Why So Many 100G Variants?", + heading_de: "Warum so viele 100G-Varianten?", + blocks: [ + { + type: "p", + text: "100G is the most fragmented speed tier in Ethernet history, with standards from multiple bodies (IEEE, OIF, MSA groups) and a wide range of reach requirements — from 100m in a data center to 80km for metro DWDM. Each application required a different optical design, leading to many variants.", + text_de: + "100G ist die fragmentierteste Geschwindigkeitsstufe in der Ethernet-Geschichte, mit Standards von mehreren Gremien (IEEE, OIF, MSA-Gruppen) und einem breiten Bereich von Reichweitenanforderungen — von 100 m im Rechenzentrum bis zu 80 km fuer Metro-DWDM. Jede Anwendung erforderte ein anderes optisches Design.", + }, + { + type: "callout", + variant: "info", + text: "The dominant 100G variants by volume are: SR4 (data center servers), CWDM4/LR4 (campus/MAN, 10km), DR (campus 500m), and ZR (metro coherent). Know these four and you cover 90%+ of deployments.", + text_de: + "Die volumenstarksten 100G-Varianten sind: SR4 (Rechenzentrum-Server), CWDM4/LR4 (Campus/MAN, 10 km), DR (Campus 500 m) und ZR (Metro Coherent). Diese vier abzudecken genuegt fuer 90 %+ aller Installationen.", + }, + ], + }, + { + heading: "100G Variants Comparison Table", + heading_de: "Vergleichstabelle 100G-Varianten", + blocks: [ + { + type: "table", + headers: ["Standard", "Lanes", "Encoding", "Wavelength", "Fiber", "Max Reach", "Connector", "Form Factor"], + headers_de: ["Standard", "Lanes", "Kodierung", "Wellenlaenge", "Faser", "Max. Reichweite", "Stecker", "Formfaktor"], + rows: [ + ["100GBASE-SR4", "4×25G", "NRZ", "850 nm", "OM3/OM4 MMF", "70m/100m", "MPO-12", "QSFP28"], + ["100GBASE-LR4", "4×25G WDM", "NRZ", "1295–1310 nm", "OS2 SMF", "10 km", "LC duplex", "QSFP28"], + ["100GBASE-ER4", "4×25G WDM", "NRZ", "LWDM (1295–1310nm)", "OS2 SMF", "40 km", "LC duplex", "QSFP28/CFP2"], + ["100GBASE-DR", "1×100G", "PAM4", "1310 nm", "OS2 SMF", "500 m", "LC duplex", "QSFP28"], + ["100GBASE-FR", "1×100G", "PAM4", "1310 nm", "OS2 SMF", "2 km", "LC duplex", "QSFP28"], + ["100GBASE-LR", "1×100G", "PAM4", "1310 nm", "OS2 SMF", "10 km", "LC duplex", "QSFP28"], + ["CWDM4 MSA", "4×25G CWDM", "NRZ", "1271–1331 nm", "OS2 SMF", "2 km", "LC duplex", "QSFP28"], + ["PSM4 MSA", "4×25G", "NRZ", "1310 nm (4×)", "OS2 SMF (8 fibers)", "500 m", "MPO-12", "QSFP28"], + ["100G-ZR (OIF)", "1×100G coherent", "DP-QPSK", "C-band DWDM", "OS2 SMF", "≤80 km", "LC duplex", "QSFP28/CFP2"], + ["100G-ZR+", "1×100G coherent", "DP-16QAM+", "C-band DWDM", "OS2 SMF", "≤1000 km", "LC duplex", "CFP2-DCO"], + ], + }, + ], + }, + { + heading: "Key Variants Explained", + heading_de: "Wichtige Varianten erklaert", + blocks: [ + { + type: "h3", + text: "100GBASE-SR4 — The Data Center Workhorse", + text_de: "100GBASE-SR4 — Das Rechenzentrum-Arbeitstier", + }, + { + type: "p", + text: "SR4 uses 4 parallel 850nm lasers at 25 Gbps each over an MPO-12 cable. It requires OM3 or OM4 multimode fiber. Maximum reach is 70m on OM3 and 100m on OM4. This is the standard choice for server-to-TOR (top-of-rack) switch connections in hyperscale data centers.", + text_de: + "SR4 verwendet 4 parallele 850-nm-Laser mit je 25 Gbps ueber ein MPO-12-Kabel. Es erfordert OM3- oder OM4-Mehrmodefaser. Maximale Reichweite: 70 m (OM3) und 100 m (OM4). Dies ist die Standardwahl fuer Server-zu-TOR-Switch-Verbindungen in Hyperscale-Rechenzentren.", + }, + { + type: "h3", + text: "100GBASE-LR4 — WDM for 10km", + text_de: "100GBASE-LR4 — WDM fuer 10 km", + }, + { + type: "p", + text: "LR4 uses 4 CWDM wavelengths (1295, 1300, 1305, 1310 nm) multiplexed onto a single-mode duplex LC connection. Each wavelength carries 25 Gbps NRZ. Maximum reach is 10km on OS2 SMF. This is the IEEE 802.3ba/bm standard — the 'official' long-reach 100G.", + text_de: + "LR4 verwendet 4 CWDM-Wellenlaengen (1295, 1300, 1305, 1310 nm) auf einer Einzelmode-Duplex-LC-Verbindung. Jede Wellenlaenge traegt 25 Gbps NRZ. Maximale Reichweite: 10 km auf OS2-SMF.", + }, + { + type: "h3", + text: "100GBASE-DR — Single-Lane PAM4 at 500m", + text_de: "100GBASE-DR — Einzel-Lane PAM4 bei 500 m", + }, + { + type: "p", + text: "DR uses a single 1310nm PAM4 lane at 100 Gbps. It reaches 500m on OS2 SMF with an LC duplex connector. This is newer (IEEE 802.3cd, 2018) and cheaper than LR4 for medium-reach applications. The single-lane design avoids the need for a WDM MUX/DEMUX inside the module.", + text_de: + "DR verwendet eine einzelne 1310-nm-PAM4-Lane mit 100 Gbps. Reichweite: 500 m auf OS2-SMF mit LC-Duplex-Stecker. Dies ist neuer (IEEE 802.3cd, 2018) und guenstiger als LR4 fuer mittlere Reichweiten.", + }, + { + type: "callout", + variant: "tip", + text: "CWDM4 (2km MSA) vs. LR4 (10km IEEE): Both use 4 CWDM wavelengths over LC duplex SMF, but CWDM4 is cheaper (lower output power) and only reaches 2km. If your link is under 2km, specify CWDM4 to save cost.", + text_de: + "CWDM4 (2 km MSA) vs. LR4 (10 km IEEE): Beide verwenden 4 CWDM-Wellenlaengen ueber LC-Duplex-SMF, aber CWDM4 ist guenstiger (geringere Ausgangsleistung) und erreicht nur 2 km. Bei Verbindungen unter 2 km CWDM4 spezifizieren, um Kosten zu sparen.", + }, + ], + }, + { + heading: "100G Coherent: ZR and ZR+", + heading_de: "100G Coherent: ZR und ZR+", + blocks: [ + { + type: "p", + text: "For metro and long-haul distances, coherent optics are used. 100G-ZR (OIF standard) carries 100G in a QSFP28 or CFP2 module up to 80km on a DWDM C-band channel. OpenZR+ extends this to 400G with higher-order modulation.", + text_de: + "Fuer Metro- und Langstrecken werden Coherent-Optiken eingesetzt. 100G-ZR (OIF-Standard) uebertraegt 100G in einem QSFP28- oder CFP2-Modul bis zu 80 km auf einem DWDM-C-Band-Kanal.", + }, + { + type: "callout", + variant: "warning", + text: "Coherent modules (ZR/ZR+) require DWDM infrastructure (mux/demux, EDFA amplifiers, OSNR budget). They cannot be used on dark fiber without planning the optical line system.", + text_de: + "Coherent-Module (ZR/ZR+) benoetigen DWDM-Infrastruktur (Mux/Demux, EDFA-Verstaerker, OSNR-Budget). Sie koennen nicht ohne Planung des optischen Leitungssystems auf Dunkelglasfaser eingesetzt werden.", + }, + ], + }, + ], + quiz: [ + { + id: "std-100g-q1", + lesson: "std-100g", + q: "100GBASE-SR4 requires which fiber type and connector?", + q_de: "Welchen Fasertyp und Stecker erfordert 100GBASE-SR4?", + options: [ + "OS2 single-mode fiber with LC duplex", + "OM3/OM4 multimode fiber with MPO-12", + "OS2 single-mode fiber with MPO-12", + "OM1 multimode fiber with SC duplex", + ], + options_de: [ + "OS2 Einzelmodefaser mit LC-Duplex", + "OM3/OM4 Mehrmodefaser mit MPO-12", + "OS2 Einzelmodefaser mit MPO-12", + "OM1 Mehrmodefaser mit SC-Duplex", + ], + answer: 1, + explanation: + "100GBASE-SR4 uses 4 parallel 850nm MMF lanes. It requires OM3 or OM4 multimode fiber and an MPO-12 connector.", + explanation_de: + "100GBASE-SR4 verwendet 4 parallele 850-nm-MMF-Lanes. Es erfordert OM3- oder OM4-Mehrmodefaser und einen MPO-12-Stecker.", + }, + { + id: "std-100g-q2", + lesson: "std-100g", + q: "What is the key difference between CWDM4 and 100GBASE-LR4?", + q_de: "Was ist der wesentliche Unterschied zwischen CWDM4 und 100GBASE-LR4?", + options: [ + "CWDM4 uses 850nm, LR4 uses 1310nm", + "CWDM4 reaches 2km (MSA), LR4 reaches 10km (IEEE)", + "CWDM4 is for multimode fiber, LR4 is for single-mode", + "CWDM4 uses PAM4, LR4 uses NRZ", + ], + options_de: [ + "CWDM4 verwendet 850 nm, LR4 verwendet 1310 nm", + "CWDM4 erreicht 2 km (MSA), LR4 erreicht 10 km (IEEE)", + "CWDM4 ist fuer Mehrmodefaser, LR4 fuer Einzelmodefaser", + "CWDM4 verwendet PAM4, LR4 verwendet NRZ", + ], + answer: 1, + explanation: + "Both CWDM4 and LR4 use 4 CWDM wavelengths on single-mode LC duplex. The key difference is reach: CWDM4 MSA is 2km, IEEE LR4 is 10km. CWDM4 modules are cheaper.", + explanation_de: + "Beide verwenden 4 CWDM-Wellenlaengen auf Einzelmode-LC-Duplex. Der wesentliche Unterschied ist die Reichweite: CWDM4 MSA 2 km, IEEE LR4 10 km. CWDM4-Module sind guenstiger.", + }, + { + id: "std-100g-q3", + lesson: "std-100g", + q: "Which 100G standard uses a single PAM4 lane at 1310nm with 500m reach?", + q_de: "Welcher 100G-Standard verwendet eine einzelne PAM4-Lane bei 1310 nm mit 500 m Reichweite?", + options: ["100GBASE-LR4", "100GBASE-SR4", "100GBASE-DR", "100GBASE-ER4"], + options_de: ["100GBASE-LR4", "100GBASE-SR4", "100GBASE-DR", "100GBASE-ER4"], + answer: 2, + explanation: + "100GBASE-DR (IEEE 802.3cd, 2018) uses a single 1310nm PAM4 lane at 100Gbps, reaching 500m on OS2 SMF.", + explanation_de: + "100GBASE-DR (IEEE 802.3cd, 2018) verwendet eine einzelne 1310-nm-PAM4-Lane mit 100 Gbps, Reichweite 500 m auf OS2-SMF.", + }, + { + id: "std-100g-q4", + lesson: "std-100g", + q: "A 100G-ZR coherent module operates on which band?", + q_de: "In welchem Band arbeitet ein 100G-ZR Coherent-Modul?", + options: ["850nm multimode band", "CWDM O-band (1310nm)", "C-band DWDM (1530-1565nm)", "L-band DWDM (1565-1625nm)"], + options_de: [ + "850-nm-Mehrmode-Band", + "CWDM O-Band (1310 nm)", + "C-Band DWDM (1530–1565 nm)", + "L-Band DWDM (1565–1625 nm)", + ], + answer: 2, + explanation: + "100G-ZR and OpenZR+ coherent transceivers operate in the DWDM C-band (1530–1565nm), where EDFA amplification is available.", + explanation_de: + "100G-ZR und OpenZR+ Coherent-Transceiver arbeiten im DWDM-C-Band (1530–1565 nm), wo EDFA-Verstaerkung verfuegbar ist.", + }, + { + id: "std-100g-q5", + lesson: "std-100g", + q: "What is the maximum reach of 100GBASE-SR4 over OM4 fiber?", + q_de: "Welche maximale Reichweite hat 100GBASE-SR4 ueber OM4-Faser?", + options: ["70 m", "100 m", "150 m", "300 m"], + options_de: ["70 m", "100 m", "150 m", "300 m"], + answer: 1, + explanation: + "100GBASE-SR4 reaches 70m on OM3 and 100m on OM4. OM5 can extend this slightly further.", + explanation_de: + "100GBASE-SR4 erreicht 70 m auf OM3 und 100 m auf OM4. OM5 kann dies etwas weiter ausdehnen.", + }, + ], + }, + + { + id: "std-400g", + category: "standards", + title: "400G Ethernet Standards", + title_de: "400G-Ethernet-Standards", + level: "advanced", + duration_min: 15, + summary: + "400G is the current cutting edge of hyperscale networking. Learn the many IEEE and MSA variants, modulation choices, and the shift to coherent pluggables at this speed tier.", + summary_de: + "400G ist der aktuelle Spitzenbereich des Hyperscale-Networkings. Lernen Sie die vielen IEEE- und MSA-Varianten, Modulationsoptionen und den Wechsel zu Coherent-Pluggables auf dieser Geschwindigkeitsstufe.", + tags: ["400g", "qsfp-dd", "osfp", "pam4", "coherent", "zr"], + sections: [ + { + heading: "400G: The PAM4 Revolution", + heading_de: "400G: Die PAM4-Revolution", + blocks: [ + { + type: "p", + text: "400G brought a fundamental shift in optical modulation. Previous generations used NRZ (Non-Return-to-Zero) encoding — each bit is one of two signal levels. At 400G, PAM4 (Pulse Amplitude Modulation with 4 levels) became the standard for direct-detect modules. PAM4 encodes 2 bits per symbol, effectively doubling the data rate on the same bandwidth.", + text_de: + "400G brachte eine grundlegende Verschiebung in der optischen Modulation. Frueherer Generationen nutzten NRZ-Codierung (Non-Return-to-Zero) — jedes Bit ist eines von zwei Signalpegeln. Bei 400G wurde PAM4 (Pulse Amplitude Modulation mit 4 Pegeln) fuer Direct-Detect-Module zum Standard. PAM4 codiert 2 Bits pro Symbol und verdoppelt so effektiv die Datenrate auf der gleichen Bandbreite.", + }, + { + type: "callout", + variant: "key", + text: "PAM4 requires stronger FEC (Forward Error Correction) than NRZ because the smaller signal margins increase susceptibility to noise. KP4 RS-FEC is mandatory for all 400G PAM4 interfaces.", + text_de: + "PAM4 erfordert staerkere FEC (Forward Error Correction) als NRZ, weil kleinere Signalabstaende die Stoerungsempfindlichkeit erhoehen. KP4 RS-FEC ist fuer alle 400G PAM4-Schnittstellen obligatorisch.", + }, + ], + }, + { + heading: "400G Variants", + heading_de: "400G-Varianten", + blocks: [ + { + type: "table", + headers: ["Standard", "Lanes", "Modulation", "Fiber", "Max Reach", "Connector", "Power (typ.)"], + headers_de: ["Standard", "Lanes", "Modulation", "Faser", "Max. Reichweite", "Stecker", "Leistung (typ.)"], + rows: [ + ["400GBASE-SR8", "8×50G", "PAM4 NRZ", "OM3/OM4 MMF", "100m (OM4)", "MPO-16", "~7W"], + ["400GBASE-DR4", "4×100G", "PAM4", "OS2 SMF (8 fibers)", "500 m", "MPO-12", "~7W"], + ["400GBASE-FR4", "4×100G CWDM", "PAM4", "OS2 SMF", "2 km", "LC duplex", "~8W"], + ["400GBASE-LR4", "4×100G CWDM", "PAM4", "OS2 SMF", "10 km", "LC duplex", "~8.5W"], + ["400GBASE-ER8", "8×50G WDM", "PAM4", "OS2 SMF", "40 km", "LC duplex", "~12W"], + ["400G-ZR (OIF)", "1 coherent", "DP-16QAM", "OS2 DWDM", "≤80 km", "LC duplex", "~15W"], + ["OpenZR+", "1 coherent", "DP-16QAM / 64QAM", "OS2 DWDM", "≤1000 km", "LC duplex", "~20W"], + ["400G-FR8 MSA", "8×50G", "PAM4", "OS2 SMF", "2 km", "LC duplex", "~8W"], + ], + }, + { + type: "callout", + variant: "tip", + text: "DR4 vs FR4: Both use 4 PAM4 lanes on single-mode fiber. DR4 uses parallel fiber (8 fibers, MPO-12) for 500m. FR4 uses 4 CWDM wavelengths on LC duplex for 2km. For intra-campus up to 500m, DR4 is cheaper.", + text_de: + "DR4 vs FR4: Beide verwenden 4 PAM4-Lanes auf Einzelmodefaser. DR4 verwendet parallele Fasern (8 Fasern, MPO-12) fuer 500 m. FR4 verwendet 4 CWDM-Wellenlaengen auf LC-Duplex fuer 2 km. Fuer Intra-Campus bis 500 m ist DR4 guenstiger.", + }, + ], + }, + { + heading: "400G-ZR Coherent Pluggables", + heading_de: "400G-ZR Coherent Pluggables", + blocks: [ + { + type: "p", + text: "400G-ZR (OIF standard, 2020) was a breakthrough: it put a coherent 400G transponder into a QSFP-DD pluggable form factor. Previously, coherent transponders required 1RU or 2RU line cards. 400G-ZR enables routers and switches to carry coherent DWDM traffic directly from the pluggable.", + text_de: + "400G-ZR (OIF-Standard, 2020) war ein Durchbruch: Es brachte einen Coherent-400G-Transponder in ein QSFP-DD-Pluggable-Formfaktor. Zuvor erforderten Coherent-Transponder 1HE- oder 2HE-Karten. 400G-ZR ermoeglicht es Routern und Switches, Coherent-DWDM-Traffic direkt aus dem Pluggable zu transportieren.", + }, + { + type: "p", + text: "OpenZR+ (MSA, 2021) extends ZR with higher-order modulation (up to DP-64QAM) for longer reach, supporting 100G, 200G, 300G, and 400G in the same pluggable, selectable by software. This is used in metro DWDM networks.", + text_de: + "OpenZR+ (MSA, 2021) erweitert ZR mit hoeherwertigerer Modulation (bis DP-64QAM) fuer groessere Reichweiten und unterstuetzt 100G, 200G, 300G und 400G im gleichen Pluggable, per Software waehlbar.", + }, + { + type: "callout", + variant: "warning", + text: "400G-ZR modules consume 15–20W — nearly 3× a typical QSFP-DD 400G-DR4. Verify your switch's port thermal budget before deploying ZR at scale. Not all QSFP-DD cages support Class 8 power.", + text_de: + "400G-ZR-Module verbrauchen 15–20 W — fast 3× so viel wie ein typisches QSFP-DD 400G-DR4. Pruefen Sie das thermische Budget des Switch-Ports, bevor Sie ZR im grossen Massstab einsetzen.", + }, + ], + }, + { + heading: "Form Factor Choices for 400G", + heading_de: "Formfaktor-Auswahl fuer 400G", + blocks: [ + { + type: "ul", + items: [ + "QSFP-DD: 400G, backward compatible with QSFP28 — the dominant switch port for 400G ToR", + "OSFP: 400G and 800G, larger slot, better thermal, used for coherent (ZR) at high port density", + "CFP8: 400G, used in older line cards and CFP8-based coherent platforms (400G-ZR CFP8-DCO)", + ], + items_de: [ + "QSFP-DD: 400G, abwaertskompatibel zu QSFP28 — der dominante Switch-Port fuer 400G ToR", + "OSFP: 400G und 800G, groesserer Steckplatz, besseres Thermomanagement, fuer Coherent (ZR) bei hoher Portdichte", + "CFP8: 400G, in aelteren Line Cards und CFP8-basierten Coherent-Plattformen (400G-ZR CFP8-DCO)", + ], + }, + ], + }, + ], + quiz: [ + { + id: "std-400g-q1", + lesson: "std-400g", + q: "What modulation technique replaced NRZ at 400G?", + q_de: "Welche Modulationstechnik ersetzte NRZ bei 400G?", + options: ["QPSK", "PAM4", "QAM-16", "OFDM"], + options_de: ["QPSK", "PAM4", "QAM-16", "OFDM"], + answer: 1, + explanation: + "PAM4 (Pulse Amplitude Modulation with 4 levels) is used for direct-detect 400G modules. It encodes 2 bits per symbol, doubling effective data rate vs. NRZ.", + explanation_de: + "PAM4 (Puls-Amplituden-Modulation mit 4 Pegeln) wird fuer Direct-Detect-400G-Module eingesetzt. Es codiert 2 Bits pro Symbol und verdoppelt so die effektive Datenrate gegenueber NRZ.", + }, + { + id: "std-400g-q2", + lesson: "std-400g", + q: "400GBASE-DR4 uses which connector type?", + q_de: "Welchen Steckertyp verwendet 400GBASE-DR4?", + options: ["LC duplex", "MPO-12 (8 SMF fibers)", "MPO-16", "SC duplex"], + options_de: ["LC-Duplex", "MPO-12 (8 SMF-Fasern)", "MPO-16", "SC-Duplex"], + answer: 1, + explanation: + "400GBASE-DR4 uses 4 parallel single-mode fiber lanes in each direction (8 total) over an MPO-12 connector. Reach is 500m.", + explanation_de: + "400GBASE-DR4 verwendet 4 parallele Einzelmodefasern in jede Richtung (8 insgesamt) ueber einen MPO-12-Stecker. Reichweite: 500 m.", + }, + { + id: "std-400g-q3", + lesson: "std-400g", + q: "Which FEC type is mandatory for 400G PAM4 interfaces?", + q_de: "Welcher FEC-Typ ist fuer 400G PAM4-Schnittstellen obligatorisch?", + options: ["Clause 74 (FC-FEC)", "Clause 91 (RS-FEC)", "KP4 RS-FEC", "No FEC required"], + options_de: ["Clause 74 (FC-FEC)", "Clause 91 (RS-FEC)", "KP4 RS-FEC", "Kein FEC erforderlich"], + answer: 2, + explanation: + "KP4 RS-FEC (specified in IEEE 802.3bs) is mandatory for all 400G PAM4 optical and electrical interfaces due to the smaller signal margins in PAM4 vs. NRZ.", + explanation_de: + "KP4 RS-FEC (in IEEE 802.3bs spezifiziert) ist fuer alle 400G PAM4-optischen und elektrischen Schnittstellen obligatorisch, aufgrund der kleineren Signalabstaende bei PAM4 gegenueber NRZ.", + }, + { + id: "std-400g-q4", + lesson: "std-400g", + q: "What was the key innovation of 400G-ZR (OIF)?", + q_de: "Was war die zentrale Innovation von 400G-ZR (OIF)?", + options: [ + "First use of PAM4 modulation in networking", + "Putting a coherent transponder into a QSFP-DD pluggable", + "Doubling the reach of 100G to 200km", + "Enabling 400G over multimode fiber", + ], + options_de: [ + "Erste Verwendung von PAM4-Modulation im Netzwerk", + "Einbau eines Coherent-Transponders in ein QSFP-DD-Pluggable", + "Verdopplung der Reichweite von 100G auf 200 km", + "Ermoeglichung von 400G ueber Mehrmodefaser", + ], + answer: 1, + explanation: + "400G-ZR (OIF, 2020) was revolutionary because it integrated coherent DSP and optics into a QSFP-DD pluggable, eliminating the need for separate line card transponders in routers.", + explanation_de: + "400G-ZR (OIF, 2020) war revolutionaer, weil es Coherent-DSP und Optik in ein QSFP-DD-Pluggable integrierte und separate Line-Card-Transponder in Routern ueberfluessig machte.", + }, + { + id: "std-400g-q5", + lesson: "std-400g", + q: "A 400G-ZR module consumes approximately how much power?", + q_de: "Wie viel Leistung verbraucht ein 400G-ZR-Modul ungefaehr?", + options: ["3–5W", "7–9W", "15–20W", "35–40W"], + options_de: ["3–5 W", "7–9 W", "15–20 W", "35–40 W"], + answer: 2, + explanation: + "400G-ZR coherent modules typically consume 15–20W due to the coherent DSP ASIC. This is 2–3× higher than a typical 400GBASE-DR4 (~7W).", + explanation_de: + "400G-ZR Coherent-Module verbrauchen typischerweise 15–20 W wegen des Coherent-DSP-ASIC. Dies ist 2–3× hoeher als ein typisches 400GBASE-DR4 (~7 W).", + }, + ], + }, + + { + id: "std-cmis-management", + category: "standards", + title: "Module Management: CMIS, DOM, and SFF Standards", + title_de: "Modul-Management: CMIS, DOM und SFF-Standards", + level: "intermediate", + duration_min: 12, + summary: + "Learn how optical transceivers communicate their status to switches — the CMIS management interface, Digital Optical Monitoring, and how to read real-time module diagnostics from CLI.", + summary_de: + "Lernen Sie, wie optische Transceiver ihren Status an Switches kommunizieren — die CMIS-Managementschnittstelle, digitales optisches Monitoring und das Lesen von Moduldiagnosen ueber CLI.", + tags: ["cmis", "dom", "ddmi", "sff-8472", "management", "diagnostics"], + sections: [ + { + heading: "Why Module Management Matters", + heading_de: "Warum Modul-Management wichtig ist", + blocks: [ + { + type: "p", + text: "A transceiver is not just a passive optical component — it actively monitors its own health. Digital Optical Monitoring (DOM) provides real-time measurements of temperature, supply voltage, laser bias current, transmit power, and receive power. These values let network operators detect problems before they become outages.", + text_de: + "Ein Transceiver ist nicht nur eine passive optische Komponente — er ueberwacht aktiv seinen eigenen Zustand. Digital Optical Monitoring (DOM) liefert Echtzeitmessungen von Temperatur, Versorgungsspannung, Laservorspannung, Sendeleistung und Empfangsleistung. Diese Werte ermoeglicht Netzwerkbetreibern, Probleme zu erkennen, bevor sie zu Ausfaellen fuehren.", + }, + { + type: "callout", + variant: "info", + text: "DOM is also called DDMI (Digital Diagnostics Monitoring Interface). They refer to the same feature. 'DDM' is another common abbreviation. All refer to the real-time diagnostic registers in the module EEPROM.", + text_de: + "DOM wird auch DDMI (Digital Diagnostics Monitoring Interface) genannt. Beide bezeichnen die gleiche Funktion. 'DDM' ist eine weitere gebraeuchliche Abkuerzung. Alle beziehen sich auf die Echtzeit-Diagnoseregister im Modul-EEPROM.", + }, + ], + }, + { + heading: "SFF Standards for SFP and QSFP", + heading_de: "SFF-Standards fuer SFP und QSFP", + blocks: [ + { + type: "p", + text: "The EEPROM memory map of a transceiver is defined by SFF (Small Form Factor) committee standards. SFP+ uses SFF-8472; QSFP28 uses SFF-8636; QSFP-DD and OSFP use CMIS (Common Management Interface Specification) from the OIF.", + text_de: + "Die EEPROM-Speichertabelle eines Transceivers wird durch SFF (Small Form Factor)-Komitee-Standards definiert. SFP+ verwendet SFF-8472; QSFP28 verwendet SFF-8636; QSFP-DD und OSFP verwenden CMIS (Common Management Interface Specification) vom OIF.", + }, + { + type: "table", + headers: ["Form Factor", "Standard", "Pages", "Key Feature"], + headers_de: ["Formfaktor", "Standard", "Seiten", "Wesentliches Merkmal"], + rows: [ + ["SFP, SFP+", "SFF-8472 (rev 12.4)", "Lower + Upper A0/A2", "DOM in A2 page"], + ["SFP28, SFP56", "SFF-8402, SFF-8472", "Same as SFP+", "DOM + lane-level stats"], + ["QSFP+", "SFF-8436", "Lower + Pages 00/01/02/03", "4-lane management"], + ["QSFP28", "SFF-8665 / SFF-8636", "Lower + Pages 00-03", "Full DOM per lane"], + ["QSFP-DD", "CMIS 4.0 / 5.0", "Lower + Pages 01-9Fh", "Datapath states, per-lane FEC"], + ["OSFP", "CMIS 5.0", "Lower + Pages 01-9Fh", "8-lane management, high power"], + ], + }, + ], + }, + { + heading: "Key DOM Parameters", + heading_de: "Wichtige DOM-Parameter", + blocks: [ + { + type: "table", + headers: ["Parameter", "Unit", "Typical Range (SFP+)", "What It Tells You"], + headers_de: ["Parameter", "Einheit", "Typischer Bereich (SFP+)", "Was er anzeigt"], + rows: [ + ["Temperature", "°C", "0 to 70°C (COM), -40 to +85°C (IND)", "Thermal stress, cooling issues"], + ["Supply Voltage (Vcc)", "V", "3.13–3.47V", "Power rail quality"], + ["TX Bias Current", "mA", "2–100 mA", "Laser health, aging"], + ["TX Output Power", "dBm", "-8.2 to +0.5 dBm (LR)", "Transmit budget"], + ["RX Input Power", "dBm", "-14.4 to 0.5 dBm (LR)", "Received signal level"], + ], + }, + { + type: "p", + text: "Each parameter has four alarm thresholds: High Alarm, High Warning, Low Warning, Low Alarm. When a value crosses a warning threshold, the switch logs an event. When it crosses an alarm threshold, the interface may be flagged as degraded.", + text_de: + "Jeder Parameter hat vier Alarmschwellen: High Alarm, High Warning, Low Warning, Low Alarm. Wenn ein Wert eine Warnschwelle ueberschreitet, protokolliert der Switch ein Ereignis. Bei einer Alarmschwelle kann die Schnittstelle als degradiert markiert werden.", + }, + { + type: "callout", + variant: "key", + text: "If RX power is below the Low Alarm threshold, the fiber link is too lossy. Check for dirty connectors, cable length, or fiber damage before assuming the module is faulty.", + text_de: + "Wenn die RX-Leistung unter der Low-Alarm-Schwelle liegt, ist der Glasfaserlink zu verlustbehaftet. Pruefen Sie zuerst auf schmutzige Stecker, Kabellaenge oder Faserschaeden, bevor Sie das Modul als defekt annehmen.", + }, + ], + }, + { + heading: "Reading DOM via CLI", + heading_de: "DOM ueber CLI lesen", + blocks: [ + { + type: "code", + text: "# Cisco IOS/IOS-XE:\nshow interfaces GigabitEthernet1/0/1 transceiver\nshow inventory\n\n# Cisco NX-OS:\nshow interface ethernet 1/1 transceiver\nshow transceiver\n\n# Juniper Junos:\nshow interfaces xe-0/0/0 media detail\nshow interfaces et-0/0/0 diagnostics optics\n\n# Arista EOS:\nshow interfaces Ethernet1 transceiver\nshow transceiver Ethernet1\n\n# Nokia SR OS:\nshow port 1/1/1 detail", + }, + { + type: "p", + text: "Note that some switches only display DOM data for modules they recognize (OEM or certified modules). Third-party modules with properly programmed EEPROMs typically show DOM on Cisco IOS, Arista EOS, and Juniper Junos. NX-OS may require the 'service unsupported-transceiver' command first.", + text_de: + "Beachten Sie, dass einige Switches DOM-Daten nur fuer erkannte Module anzeigen (OEM oder zertifizierte Module). Drittanbieter-Module mit korrekt programmierten EEPROMs zeigen DOM typischerweise auf Cisco IOS, Arista EOS und Juniper Junos. NX-OS erfordert moeglicherweise zuerst den Befehl 'service unsupported-transceiver'.", + }, + ], + }, + { + heading: "CMIS: Next-Gen Module Management", + heading_de: "CMIS: Modul-Management der naechsten Generation", + blocks: [ + { + type: "p", + text: "CMIS (Common Management Interface Specification), defined by OIF, is the management standard for QSFP-DD, OSFP, and future form factors. It introduces the concept of 'datapaths' — independently configurable groupings of lanes — and adds module state machines, FEC per-lane counters, and configurable modulation.", + text_de: + "CMIS (Common Management Interface Specification), vom OIF definiert, ist der Managementstandard fuer QSFP-DD, OSFP und zukuenftige Formfaktoren. Es fuehrt das Konzept der 'Datenpfade' ein — unabhaengig konfigurierbare Gruppen von Lanes — und fuegt Modulzustandsmaschinen, FEC-Zaehler pro Lane und konfigurierbare Modulation hinzu.", + }, + { + type: "ul", + items: [ + "CMIS 4.0: QSFP-DD 400G, introduced datapath management", + "CMIS 5.0: OSFP, 800G, extended FEC and coherent DSP control", + "CMIS 6.0 (draft): 1.6T, co-packaged optics management", + ], + items_de: [ + "CMIS 4.0: QSFP-DD 400G, Datenpfad-Management eingefuehrt", + "CMIS 5.0: OSFP, 800G, erweitertes FEC und Coherent-DSP-Steuerung", + "CMIS 6.0 (Entwurf): 1.6T, Co-packaged Optics Management", + ], + }, + ], + }, + ], + quiz: [ + { + id: "std-cmis-q1", + lesson: "std-cmis-management", + q: "What does DOM/DDMI measure in a transceiver?", + q_de: "Was misst DOM/DDMI in einem Transceiver?", + options: [ + "Only the fiber length and connector type", + "Temperature, voltage, bias current, TX power, and RX power", + "Bit error rate and frame loss statistics", + "ASIC die temperature and power supply ripple", + ], + options_de: [ + "Nur die Faserlaenge und den Steckertyp", + "Temperatur, Spannung, Vorspannungsstrom, TX-Leistung und RX-Leistung", + "Bitfehlerrate und Frame-Loss-Statistiken", + "ASIC-Temperatur und Netzteil-Welligkeit", + ], + answer: 1, + explanation: + "DOM monitors 5 key parameters: temperature, supply voltage (Vcc), TX laser bias current, TX output power, and RX received power. Each has alarm and warning thresholds.", + explanation_de: + "DOM ueberwacht 5 Schluesselparameter: Temperatur, Versorgungsspannung (Vcc), TX-Laservorspannungsstrom, TX-Ausgangsleistung und RX-Empfangsleistung. Jeder hat Alarm- und Warnschwellen.", + }, + { + id: "std-cmis-q2", + lesson: "std-cmis-management", + q: "Which SFF standard defines the EEPROM memory map for QSFP28 modules?", + q_de: "Welcher SFF-Standard definiert die EEPROM-Speichertabelle fuer QSFP28-Module?", + options: ["SFF-8472", "SFF-8436", "SFF-8636", "CMIS 5.0"], + options_de: ["SFF-8472", "SFF-8436", "SFF-8636", "CMIS 5.0"], + answer: 2, + explanation: + "QSFP28 uses SFF-8665 which references SFF-8636 for the memory map. SFF-8472 is for SFP/SFP+. CMIS is used for QSFP-DD and OSFP.", + explanation_de: + "QSFP28 verwendet SFF-8665, das fuer die Speichertabelle auf SFF-8636 verweist. SFF-8472 ist fuer SFP/SFP+. CMIS wird fuer QSFP-DD und OSFP verwendet.", + }, + { + id: "std-cmis-q3", + lesson: "std-cmis-management", + q: "If RX power is below the Low Alarm threshold, what should you check first?", + q_de: "Wenn die RX-Leistung unter der Low-Alarm-Schwelle liegt, was sollten Sie zuerst pruefen?", + options: [ + "Replace the transceiver module immediately", + "Check for dirty connectors, excessive fiber length, or fiber damage", + "Reboot the switch", + "Upgrade the switch firmware", + ], + options_de: [ + "Ersetzen Sie das Transceiver-Modul sofort", + "Pruefen Sie auf schmutzige Stecker, ueberlange Faser oder Faserschaeden", + "Starten Sie den Switch neu", + "Aktualisieren Sie die Switch-Firmware", + ], + answer: 1, + explanation: + "Low RX power indicates too much loss in the fiber path. Start with the most common causes: dirty connectors, excessive cable length (beyond module spec), or physical fiber damage.", + explanation_de: + "Niedrige RX-Leistung weist auf zu hohe Verluste im Faserpfad hin. Beginnen Sie mit den haeufigsten Ursachen: schmutzige Stecker, ueberlange Kabel (jenseits der Modulspezifikation) oder physische Faserschaeden.", + }, + { + id: "std-cmis-q4", + lesson: "std-cmis-management", + q: "What is the key new concept that CMIS introduces compared to SFF-8636?", + q_de: "Was ist das zentrale neue Konzept, das CMIS im Vergleich zu SFF-8636 einfuehrt?", + options: [ + "DOM monitoring (first introduced in CMIS)", + "Datapath management — independently configurable lane groupings", + "Hot-pluggability", + "Lower power consumption", + ], + options_de: [ + "DOM-Monitoring (erstmals in CMIS eingefuehrt)", + "Datenpfad-Management — unabhaengig konfigurierbare Lane-Gruppen", + "Hot-Plug-Faehigkeit", + "Geringerer Stromverbrauch", + ], + answer: 1, + explanation: + "CMIS introduces 'datapaths' — independently configurable groupings of electrical lanes — allowing one QSFP-DD module to operate as, e.g., 2×200G or 8×50G depending on switch needs.", + explanation_de: + "CMIS fuehrt 'Datenpfade' ein — unabhaengig konfigurierbare Gruppen von elektrischen Lanes — sodass ein QSFP-DD-Modul z. B. als 2×200G oder 8×50G betrieben werden kann.", + }, + ], + }, +]; diff --git a/packages/api/src/data/training/switches.ts b/packages/api/src/data/training/switches.ts new file mode 100644 index 0000000..68e1d10 --- /dev/null +++ b/packages/api/src/data/training/switches.ts @@ -0,0 +1,672 @@ +import type { TrainingLesson } from "./types"; + +export const switchesLessons: TrainingLesson[] = [ + { + id: "sw-compatibility", + category: "switches", + title: "How Switch-Transceiver Compatibility Works", + title_de: "Wie Switch-Transceiver-Kompatibilitaet funktioniert", + level: "beginner", + duration_min: 12, + summary: + "Understand why some switches block third-party transceivers, how vendor locking works via EEPROM, and what options you have to use compatible modules on major platforms.", + summary_de: + "Verstehen Sie, warum manche Switches Drittanbieter-Transceiver blockieren, wie Vendor-Locking ueber EEPROM funktioniert und welche Moeglichkeiten Sie haben, kompatible Module auf grossen Plattformen zu nutzen.", + tags: ["compatibility", "eeprom", "vendor-lock", "cisco", "juniper", "arista"], + sections: [ + { + heading: "The EEPROM Vendor ID — How Switches Recognize Modules", + heading_de: "Die EEPROM-Herstellerkennung — Wie Switches Module erkennen", + blocks: [ + { + type: "p", + text: "Every optical transceiver contains an EEPROM (non-volatile memory) that stores identification data. The first bytes of the SFP EEPROM (page A0h, bytes 0–1) contain the 'Identifier' and 'Extended Identifier'. Bytes 20–35 store the vendor name in ASCII. Bytes 68–83 store the vendor OUI (Organizationally Unique Identifier — the manufacturer's registered MAC prefix).", + text_de: + "Jeder optische Transceiver enthaelt ein EEPROM (nicht-fluechtige Speicher), das Identifikationsdaten speichert. Die ersten Bytes des SFP-EEPROMs (Seite A0h, Bytes 0–1) enthalten den 'Identifier' und 'Extended Identifier'. Bytes 20–35 speichern den Herstellernamen in ASCII. Bytes 68–83 speichern den Hersteller-OUI (Organizationally Unique Identifier — das registrierte MAC-Praefix des Herstellers).", + }, + { + type: "p", + text: "When a switch boots or a module is inserted, the switch NOS reads these EEPROM fields and compares the vendor name and OUI against an internal whitelist. If the module is not on the whitelist, the switch may block the port, display a warning, or log an error — depending on the NOS and platform configuration.", + text_de: + "Wenn ein Switch bootet oder ein Modul eingesteckt wird, liest das Switch-NOS diese EEPROM-Felder und vergleicht Herstellername und OUI mit einer internen Whitelist. Wenn das Modul nicht auf der Whitelist steht, kann der Switch den Port blockieren, eine Warnung anzeigen oder einen Fehler protokollieren — je nach NOS und Plattformkonfiguration.", + }, + { + type: "callout", + variant: "info", + text: "Reputable compatible module vendors (like those sold by FLEXOPTIX) program the EEPROM with the correct OUI and vendor strings for the target platform. This is legal, fully MSA-compliant, and is how 'compatible' modules work — not by hacking, but by following the MSA specification.", + text_de: + "Serioeser Kompatibel-Modulanbieter (wie von FLEXOPTIX verkaufte Module) programmieren das EEPROM mit korrektem OUI und Herstellerstrings fuer die Zielplattform. Das ist legal, vollstaendig MSA-konform und funktioniert so — nicht durch Hacking, sondern durch Einhaltung der MSA-Spezifikation.", + }, + ], + }, + { + heading: "Vendor Lock Comparison by Platform", + heading_de: "Vendor-Lock-Vergleich nach Plattform", + blocks: [ + { + type: "table", + headers: ["Vendor/NOS", "Lock Level", "Workaround", "3rd-Party DOM?", "Notes"], + headers_de: ["Hersteller/NOS", "Lock-Level", "Workaround", "3rd-Party DOM?", "Hinweise"], + rows: [ + ["Cisco IOS/IOS-XE", "Soft lock", "'service unsupported-transceiver'", "Yes (most platforms)", "Warning logged; module works after command"], + ["Cisco NX-OS", "Soft lock", "'service unsupported-transceiver'", "Varies by platform", "Some Nexus platforms show limited DOM for 3rd party"], + ["Cisco IOS-XR", "Hard lock (some PICs)", "Requires Cisco-coded EEPROM", "Only with Cisco coding", "ASR 9000, NCS-5500 strict on line cards"], + ["Juniper Junos (EX/QFX)", "Minimal lock", "None needed", "Yes", "EX/QFX very open; PTX/MX some restrictions"], + ["Arista EOS", "No lock", "None needed", "Yes", "Arista is the most open major vendor"], + ["Nokia SR OS", "Hard lock", "Nokia-coded modules required", "No for 3rd party", "Nokia requires Nokia part number coding"], + ["Huawei VRP", "Hard lock", "Huawei-coded modules required", "Partial", "Very strict on most platforms"], + ["Dell OS10", "Soft lock", "Configuration override available", "Yes", "Relatively open"], + ["HPE Comware", "Soft lock", "Transceiver override command", "Yes", "Similar to Cisco approach"], + ], + }, + ], + }, + { + heading: "What MSA Compliance Means", + heading_de: "Was MSA-Konformitaet bedeutet", + blocks: [ + { + type: "p", + text: "MSA (Multi-Source Agreement) compliance means a module meets the physical, electrical, optical, and management interface specifications defined by the relevant MSA document. This does NOT guarantee that the vendor's NOS will accept the module — vendor lock is a software-level decision, not an electrical incompatibility.", + text_de: + "MSA-Konformitaet (Multi-Source Agreement) bedeutet, dass ein Modul die physikalischen, elektrischen, optischen und Management-Schnittstellen-Spezifikationen des relevanten MSA-Dokuments erfuellt. Das garantiert NICHT, dass das NOS des Herstellers das Modul akzeptiert — Vendor Lock ist eine Software-Entscheidung, keine elektrische Inkompatibilitaet.", + }, + { + type: "callout", + variant: "key", + text: "Compatible does NOT mean incompatible. MSA-compliant third-party modules with correct EEPROM coding work on 95%+ of platforms. They are electrically and optically identical to OEM. The only risk is a software policy on some NOSes — not hardware damage or performance degradation.", + text_de: + "Kompatibel bedeutet NICHT inkompatibel. MSA-konforme Drittanbieter-Module mit korrekter EEPROM-Kodierung funktionieren auf 95%+ aller Plattformen. Sie sind elektrisch und optisch identisch mit OEM. Das einzige Risiko ist eine Software-Richtlinie auf manchen NOSes — keine Hardwareeinschraenkungen oder Leistungsdegradierung.", + }, + ], + }, + ], + quiz: [ + { + id: "sw-compat-q1", + lesson: "sw-compatibility", + q: "How does a switch identify whether a transceiver is from the OEM vendor?", + q_de: "Wie identifiziert ein Switch, ob ein Transceiver vom OEM-Hersteller stammt?", + options: [ + "By measuring the optical power output", + "By reading the vendor name and OUI from the EEPROM", + "By the color of the module's bail latch", + "By checking the module's serial number against a cloud database", + ], + options_de: [ + "Durch Messung der optischen Ausgangsleistung", + "Durch Lesen von Herstellername und OUI aus dem EEPROM", + "Durch die Farbe des Verriegelungshebels", + "Durch Pruefen der Seriennummer in einer Cloud-Datenbank", + ], + answer: 1, + explanation: + "The switch NOS reads the EEPROM vendor name field (bytes 20-35) and vendor OUI (bytes 68-83) and compares against its internal whitelist to determine if a module is 'approved'.", + explanation_de: + "Das Switch-NOS liest das EEPROM-Herstellernamenfeld (Bytes 20–35) und Hersteller-OUI (Bytes 68–83) und vergleicht mit der internen Whitelist, um zu bestimmen, ob ein Modul 'genehmigt' ist.", + }, + { + id: "sw-compat-q2", + lesson: "sw-compatibility", + q: "Which major switch vendor has NO vendor lock on transceivers?", + q_de: "Welcher grosse Switch-Hersteller hat KEINEN Vendor-Lock fuer Transceiver?", + options: ["Cisco", "Nokia", "Arista", "Huawei"], + options_de: ["Cisco", "Nokia", "Arista", "Huawei"], + answer: 2, + explanation: + "Arista EOS does not implement vendor locking. Any MSA-compliant module with correct EEPROM will work without any configuration changes. Arista also shows DOM for third-party modules.", + explanation_de: + "Arista EOS implementiert keinen Vendor-Lock. Jedes MSA-konforme Modul mit korrektem EEPROM funktioniert ohne Konfigurationsa nderungen. Arista zeigt auch DOM fuer Drittanbieter-Module.", + }, + { + id: "sw-compat-q3", + lesson: "sw-compatibility", + q: "On Cisco IOS, what command removes the block on third-party transceivers?", + q_de: "Welcher Befehl entfernt auf Cisco IOS die Blockierung von Drittanbieter-Transceivern?", + options: [ + "no transceiver vendor-lock", + "service unsupported-transceiver", + "transceiver allow-all", + "interface override optics", + ], + options_de: [ + "no transceiver vendor-lock", + "service unsupported-transceiver", + "transceiver allow-all", + "interface override optics", + ], + answer: 1, + explanation: + "'service unsupported-transceiver' (global config on IOS/IOS-XE) suppresses the error message and allows the port to operate. It does not affect performance or DOM availability.", + explanation_de: + "'service unsupported-transceiver' (globale Konfiguration auf IOS/IOS-XE) unterdrueckt die Fehlermeldung und erlaubt den Portbetrieb. Es beeinflusst weder Leistung noch DOM-Verfuegbarkeit.", + }, + { + id: "sw-compat-q4", + lesson: "sw-compatibility", + q: "MSA compliance guarantees what?", + q_de: "Was garantiert MSA-Konformitaet?", + options: [ + "The module will be accepted by any NOS without workaround", + "Physical, electrical, and optical compliance with the MSA standard — not NOS whitelist acceptance", + "Full warranty support from the switch vendor", + "Automatic firmware updates from the switch", + ], + options_de: [ + "Das Modul wird von jedem NOS ohne Workaround akzeptiert", + "Physikalische, elektrische und optische Konformitaet mit dem MSA-Standard — nicht Whitelist-Akzeptanz des NOS", + "Vollstaendige Garantieunterstuetzung durch den Switch-Hersteller", + "Automatische Firmware-Updates durch den Switch", + ], + answer: 1, + explanation: + "MSA compliance verifies the module meets technical specifications. Whether the NOS accepts it is a separate (software policy) question. Reputable vendors also program the EEPROM correctly for the target platform.", + explanation_de: + "MSA-Konformitaet prueft, ob das Modul technische Spezifikationen erfuellt. Ob das NOS es akzeptiert, ist eine separate (Software-Richtlinien-)Frage. Serioeser Anbieter programmieren das EEPROM auch korrekt fuer die Zielplattform.", + }, + { + id: "sw-compat-q5", + lesson: "sw-compatibility", + q: "Which platform has the strictest vendor lock — typically requiring vendor-coded modules?", + q_de: "Welche Plattform hat den strengsten Vendor-Lock — erfordert typischerweise herstellerkodierte Module?", + options: ["Arista EOS 7050", "Cisco Catalyst 9300", "Nokia SR OS / Huawei VRP", "Juniper EX4300"], + options_de: ["Arista EOS 7050", "Cisco Catalyst 9300", "Nokia SR OS / Huawei VRP", "Juniper EX4300"], + answer: 2, + explanation: + "Nokia SR OS and Huawei VRP enforce hard locks — modules must be programmed with Nokia/Huawei-specific vendor codes and part numbers to operate. This is unlike Cisco (soft lock with workaround) or Arista (no lock).", + explanation_de: + "Nokia SR OS und Huawei VRP erzwingen harte Locks — Module muessen mit Nokia/Huawei-spezifischen Herstellercodes und Teilenummern programmiert sein. Das unterscheidet sich von Cisco (weicher Lock mit Workaround) oder Arista (kein Lock).", + }, + ], + }, + + { + id: "sw-cisco", + category: "switches", + title: "Cisco IOS, NX-OS, and IOS-XR Transceiver Guide", + title_de: "Cisco IOS, NX-OS und IOS-XR Transceiver-Leitfaden", + level: "intermediate", + duration_min: 12, + summary: + "Navigate Cisco's three main NOS platforms — IOS/IOS-XE, NX-OS, and IOS-XR — and understand the specific transceiver acceptance policies, DOM commands, and workarounds for each.", + summary_de: + "Navigieren Sie durch Ciscos drei Haupt-NOS-Plattformen — IOS/IOS-XE, NX-OS und IOS-XR — und verstehen Sie die spezifischen Transceiver-Akzeptanzrichtlinien, DOM-Befehle und Workarounds fuer jede.", + tags: ["cisco", "ios", "nxos", "ios-xr", "nexus", "catalyst"], + sections: [ + { + heading: "Cisco Platform Overview", + heading_de: "Cisco Plattform-Ueberblick", + blocks: [ + { + type: "table", + headers: ["Platform Family", "NOS", "Typical Use Case", "Lock Level"], + headers_de: ["Plattform-Familie", "NOS", "Typischer Anwendungsfall", "Lock-Level"], + rows: [ + ["Catalyst 9000 / 3800", "IOS-XE", "Enterprise access/distribution", "Soft — 'service unsupported-transceiver'"], + ["Catalyst 6500 / 6880", "IOS / IOS-XE", "Legacy campus core", "Soft — 'service unsupported-transceiver'"], + ["Nexus 9000 / 7000 / 5000", "NX-OS", "Data center leaf/spine", "Soft — 'service unsupported-transceiver'"], + ["ASR 9000", "IOS-XR", "Service provider edge/core", "Hard on some PICs"], + ["NCS 5500 / NCS 540", "IOS-XR", "SP core / peering", "Hard — requires Cisco-coded EEPROM on many PICs"], + ["CRS-X / ASR 1000", "IOS-XR / IOS-XE", "Carrier core / WAN aggregation", "Varies by linecard"], + ], + }, + { + type: "callout", + variant: "info", + text: "IOS and IOS-XE use the same transceiver workaround command. NX-OS uses the same command name. IOS-XR is separate and stricter — always check the specific PIC compatibility before ordering for XR platforms.", + text_de: + "IOS und IOS-XE verwenden denselben Transceiver-Workaround-Befehl. NX-OS verwendet denselben Befehlsnamen. IOS-XR ist separat und strenger — immer die spezifische PIC-Kompatibilitaet pruefen, bevor fuer XR-Plattformen bestellt wird.", + }, + ], + }, + { + heading: "IOS and IOS-XE: The Workaround", + heading_de: "IOS und IOS-XE: Der Workaround", + blocks: [ + { + type: "p", + text: "On Catalyst switches running IOS or IOS-XE, inserting an unsupported transceiver generates an error log message and may prevent the port from coming up. The fix is a single global configuration command.", + text_de: + "Auf Catalyst-Switches mit IOS oder IOS-XE erzeugt das Einstecken eines nicht unterstuetzten Transceivers eine Fehlerprotokollmeldung und kann verhindern, dass der Port hochkommt. Die Loesung ist ein einzelner globaler Konfigurationsbefehl.", + }, + { + type: "code", + text: "! Cisco IOS / IOS-XE — allow unsupported transceivers:\nSwitch(config)# service unsupported-transceiver\n\n! Verify transceiver DOM:\nSwitch# show interfaces GigabitEthernet1/0/1 transceiver\n\n! More detail on all transceivers in chassis:\nSwitch# show inventory\nSwitch# show interfaces transceiver", + }, + { + type: "p", + text: "The 'service unsupported-transceiver' command is persistent across reboots. It generates a one-time syslog: '%PHY-4-SFP_NOT_SUPPORTED'. After applying the command, the port links normally and DOM is visible for modules with properly coded EEPROM.", + text_de: + "Der Befehl 'service unsupported-transceiver' ist rebootpersistent. Er erzeugt ein einmaliges Syslog: '%PHY-4-SFP_NOT_SUPPORTED'. Nach Anwenden des Befehls verbindet der Port normal und DOM ist fuer Module mit korrekt kodiertem EEPROM sichtbar.", + }, + ], + }, + { + heading: "NX-OS: Data Center Switches", + heading_de: "NX-OS: Data-Center-Switches", + blocks: [ + { + type: "code", + text: "! Cisco NX-OS (Nexus switches) — allow unsupported transceivers:\nnexus(config)# service unsupported-transceiver\n\n! Check transceiver info:\nnexus# show interface ethernet 1/1 transceiver\n\n! Check all transceivers:\nnexus# show transceiver\n\n! For QSFP modules on Nexus 9000:\nnexus# show interface ethernet 1/1 transceiver detail", + }, + { + type: "callout", + variant: "warning", + text: "Cisco TAC (Technical Assistance Center) may ask you to swap a third-party module for an OEM one if you call with a problem. This is a SUPPORT POLICY, not a technical requirement. The module itself works fine — but TAC will decline to troubleshoot until you use an approved module.", + text_de: + "Cisco TAC (Technical Assistance Center) kann Sie bitten, ein Drittanbieter-Modul gegen ein OEM-Modul auszutauschen, wenn Sie mit einem Problem anrufen. Das ist eine SUPPORT-RICHTLINIE, keine technische Anforderung. Das Modul selbst funktioniert einwandfrei — aber TAC wird die Fehlersuche ablehnen, bis Sie ein genehmigtes Modul verwenden.", + }, + ], + }, + { + heading: "DOM Commands on Cisco", + heading_de: "DOM-Befehle auf Cisco", + blocks: [ + { + type: "code", + text: "! IOS-XE full DOM output example:\nSwitch# show interfaces GigabitEthernet1/0/1 transceiver detail\n\nTransceiver is present\nType : SFP-10G-LR\nName : FLEXOPTIX\nPN : SFP-10G-LR\n...\nOptical Tx Power : -2.8 dBm\nOptical Rx Power : -3.1 dBm\nTemperature : 33.5 C\nVoltage : 3.27 V\nCurrent : 42.7 mA\n\n! NX-OS example:\nnexus# show interface ethernet 1/1 transceiver\n...\nrx_pwr_dbm -3.5\ntx_pwr_dbm -2.8\ntemperature 34.0", + }, + { + type: "p", + text: "DOM values are available when the module has a properly coded EEPROM page A2h (SFP) or the corresponding diagnostic page (QSFP/QSFP-DD). FLEXOPTIX-coded modules include full DOM support for Cisco platforms.", + text_de: + "DOM-Werte sind verfuegbar, wenn das Modul eine korrekt kodierte EEPROM-Seite A2h (SFP) oder die entsprechende Diagnoseseite (QSFP/QSFP-DD) hat. FLEXOPTIX-kodierte Module enthalten vollstaendige DOM-Unterstuetzung fuer Cisco-Plattformen.", + }, + ], + }, + ], + quiz: [ + { + id: "sw-cisco-q1", + lesson: "sw-cisco", + q: "On Cisco IOS, which command enables third-party transceivers?", + q_de: "Welcher Befehl aktiviert auf Cisco IOS Drittanbieter-Transceiver?", + options: [ + "transceiver override all", + "service unsupported-transceiver", + "no transceiver vendor-check", + "permit transceiver third-party", + ], + options_de: [ + "transceiver override all", + "service unsupported-transceiver", + "no transceiver vendor-check", + "permit transceiver third-party", + ], + answer: 1, + explanation: + "'service unsupported-transceiver' (global config mode) enables third-party transceivers on Cisco IOS, IOS-XE, and NX-OS platforms.", + explanation_de: + "'service unsupported-transceiver' (globaler Konfigurationsmodus) aktiviert Drittanbieter-Transceiver auf Cisco IOS, IOS-XE und NX-OS-Plattformen.", + }, + { + id: "sw-cisco-q2", + lesson: "sw-cisco", + q: "Which Cisco NOS typically has the strictest transceiver lock?", + q_de: "Welches Cisco-NOS hat typischerweise den strengsten Transceiver-Lock?", + options: ["IOS-XE on Catalyst 9000", "NX-OS on Nexus 9000", "IOS-XR on NCS-5500 and ASR 9000", "IOS on Catalyst 3750"], + options_de: [ + "IOS-XE auf Catalyst 9000", + "NX-OS auf Nexus 9000", + "IOS-XR auf NCS-5500 und ASR 9000", + "IOS auf Catalyst 3750", + ], + answer: 2, + explanation: + "IOS-XR on service provider platforms (NCS-5500, ASR 9000) often enforces hard locks on specific line cards (PICs) where only Cisco-coded modules are accepted, regardless of software configuration.", + explanation_de: + "IOS-XR auf Service-Provider-Plattformen (NCS-5500, ASR 9000) erzwingt oft harte Locks auf bestimmten Line Cards (PICs), wo nur Cisco-kodierte Module akzeptiert werden, unabhaengig von der Software-Konfiguration.", + }, + { + id: "sw-cisco-q3", + lesson: "sw-cisco", + q: "If Cisco TAC asks you to swap a third-party module, this means:", + q_de: "Wenn Cisco TAC Sie bittet, ein Drittanbieter-Modul auszutauschen, bedeutet das:", + options: [ + "The module is technically defective", + "This is a support policy — not an indication the module is faulty", + "The switch hardware is incompatible", + "You must buy a Cisco module or void your switch warranty", + ], + options_de: [ + "Das Modul ist technisch defekt", + "Das ist eine Support-Richtlinie — kein Hinweis darauf, dass das Modul fehlerhaft ist", + "Die Switch-Hardware ist inkompatibel", + "Sie muessen ein Cisco-Modul kaufen oder Ihre Switch-Garantie verlieren", + ], + answer: 1, + explanation: + "Cisco TAC's policy is to only support Cisco-approved modules. If you call with a problem and have a third-party module, TAC will ask you to swap it. This is a support policy — not evidence the module is faulty.", + explanation_de: + "Die Cisco-TAC-Richtlinie ist es, nur Cisco-genehmigte Module zu unterstuetzen. Wenn Sie mit einem Problem anrufen und ein Drittanbieter-Modul haben, wird TAC Sie bitten, es auszutauschen. Das ist eine Support-Richtlinie — kein Beweis, dass das Modul fehlerhaft ist.", + }, + { + id: "sw-cisco-q4", + lesson: "sw-cisco", + q: "What command shows DOM data on Cisco NX-OS?", + q_de: "Welcher Befehl zeigt DOM-Daten auf Cisco NX-OS?", + options: [ + "show interface GigabitEthernet1/1 optics", + "show interface ethernet 1/1 transceiver", + "show sfp diagnostics", + "show transceiver dom", + ], + options_de: [ + "show interface GigabitEthernet1/1 optics", + "show interface ethernet 1/1 transceiver", + "show sfp diagnostics", + "show transceiver dom", + ], + answer: 1, + explanation: + "On NX-OS: 'show interface ethernet 1/1 transceiver' displays DOM values including Tx power, Rx power, temperature, voltage, and bias current.", + explanation_de: + "Auf NX-OS: 'show interface ethernet 1/1 transceiver' zeigt DOM-Werte einschliesslich Tx-Leistung, Rx-Leistung, Temperatur, Spannung und Vorspannungsstrom.", + }, + ], + }, + + { + id: "sw-juniper-arista", + category: "switches", + title: "Juniper Junos and Arista EOS Compatibility", + title_de: "Juniper Junos und Arista EOS Kompatibilitaet", + level: "intermediate", + duration_min: 12, + summary: + "Juniper and Arista are the two most open major switch vendors for third-party transceivers. Learn their platform specifics, DOM commands, and any restrictions that do exist.", + summary_de: + "Juniper und Arista sind die zwei offensten grossen Switch-Hersteller fuer Drittanbieter-Transceiver. Lernen Sie deren Plattform-Details, DOM-Befehle und vorhandene Einschraenkungen.", + tags: ["juniper", "arista", "eos", "junos", "qfx", "ex", "7050"], + sections: [ + { + heading: "Juniper Junos: Platform Overview", + heading_de: "Juniper Junos: Plattform-Ueberblick", + blocks: [ + { + type: "table", + headers: ["Platform", "Use Case", "3rd-Party Friendly?", "Notes"], + headers_de: ["Plattform", "Anwendungsfall", "Drittanbieter-freundlich?", "Hinweise"], + rows: [ + ["EX2300 / EX3400", "SMB access switches", "Yes", "Very open, no restrictions"], + ["EX4300 / EX4650", "Enterprise access/agg", "Yes", "Full DOM visible"], + ["QFX5100 / QFX5120", "Data center leaf", "Yes", "Some 100G module restrictions"], + ["QFX10002 / QFX10008", "Data center spine", "Mostly yes", "400G QSFP-DD some restrictions"], + ["MX204 / MX480", "SP edge", "Yes (most MICs)", "Requires module type match"], + ["MX10003 / MX10008", "SP core", "Varies by MIC/PIC", "Check MIC compatibility list"], + ["PTX1000 / PTX10001", "SP core / peering", "Yes", "Generally open"], + ], + }, + { + type: "callout", + variant: "tip", + text: "Juniper generally does not enforce vendor lock. However, some platforms require a minimum JunOS release for specific module types. Always check the Juniper Hardware Guide for your specific switch + module combination.", + text_de: + "Juniper erzwingt generell keinen Vendor-Lock. Einige Plattformen erfordern jedoch eine Mindest-JunOS-Version fuer bestimmte Modultypen. Immer den Juniper Hardware-Leitfaden fuer Ihre spezifische Switch+Modul-Kombination pruefen.", + }, + ], + }, + { + heading: "Juniper DOM Commands", + heading_de: "Juniper DOM-Befehle", + blocks: [ + { + type: "code", + text: "# Juniper Junos — optical diagnostics:\nuser@switch> show interfaces xe-0/0/0 media detail\nuser@switch> show interfaces et-0/0/0 diagnostics optics\n\n# Example output:\nPhysical interface: xe-0/0/0\n Optical diagnostics:\n Laser output power : 0.398 mW / -4.00 dBm\n Laser rx power : 0.230 mW / -6.38 dBm\n Module temperature : 40 degrees C / 104 degrees F\n Module voltage : 3.25 V\n Laser bias current : 45.300 mA\n\n# Check module identity:\nuser@switch> show chassis hardware", + }, + ], + }, + { + heading: "Arista EOS: The Open Platform", + heading_de: "Arista EOS: Die offene Plattform", + blocks: [ + { + type: "p", + text: "Arista is well known in the industry for having essentially no transceiver vendor lock. Any MSA-compliant module with correct EEPROM will operate in an Arista switch without any configuration changes. Arista also shows full DOM for any module that supports it.", + text_de: + "Arista ist in der Branche bekannt fuer quasi keinen Transceiver-Vendor-Lock. Jedes MSA-konforme Modul mit korrektem EEPROM funktioniert in einem Arista-Switch ohne Konfigurationsaenderungen. Arista zeigt auch vollstaendiges DOM fuer jedes Modul, das es unterstuetzt.", + }, + { + type: "table", + headers: ["Arista Platform", "Use Case", "Key Form Factors", "Notes"], + headers_de: ["Arista Plattform", "Anwendungsfall", "Wichtige Formfaktoren", "Hinweise"], + rows: [ + ["7020", "ToR, 1G/10G access", "SFP, SFP+", "Very open"], + ["7050CX3 / 7060CX2", "100G leaf switch", "QSFP28, QSFP-DD (compat)", "QSFP-DD slot accepts QSFP28"], + ["7170", "100G leaf + programmable", "QSFP28", "Tofino ASIC, very open"], + ["7280 / 7300", "100G/400G spine", "QSFP28, QSFP-DD", "400G ports on 7300"], + ["7500 / 7800", "400G spine chassis", "QSFP-DD, OSFP", "Line card dependent — verify per card"], + ], + }, + { + type: "code", + text: "# Arista EOS transceiver commands:\nswitch# show interfaces Ethernet1 transceiver\nswitch# show transceiver Ethernet1\n\n# Detailed output:\nswitch# show interfaces Ethernet1 transceiver detail\n\n# Example output:\nEthernet1: Not present\n Tx Power : -2.9 dBm\n Rx Power : -3.4 dBm\n Temp : 34.1 Celsius\n Voltage : 3.27 V\n Bias : 42.3 mA", + }, + ], + }, + ], + quiz: [ + { + id: "sw-jnpr-q1", + lesson: "sw-juniper-arista", + q: "Which Juniper command shows optical diagnostics including Tx/Rx power?", + q_de: "Welcher Juniper-Befehl zeigt optische Diagnosen einschliesslich Tx/Rx-Leistung?", + options: [ + "show transceiver detail", + "show interfaces et-0/0/0 diagnostics optics", + "show sfp optical et-0/0/0", + "show optics dom et-0/0/0", + ], + options_de: [ + "show transceiver detail", + "show interfaces et-0/0/0 diagnostics optics", + "show sfp optical et-0/0/0", + "show optics dom et-0/0/0", + ], + answer: 1, + explanation: + "'show interfaces et-0/0/0 diagnostics optics' is the Junos command for optical diagnostic (DOM) data including laser power, temperature, voltage, and bias current.", + explanation_de: + "'show interfaces et-0/0/0 diagnostics optics' ist der Junos-Befehl fuer optische Diagnosedaten (DOM) einschliesslich Laserleistung, Temperatur, Spannung und Vorspannungsstrom.", + }, + { + id: "sw-jnpr-q2", + lesson: "sw-juniper-arista", + q: "What is Arista EOS's policy on third-party transceivers?", + q_de: "Was ist die Richtlinie von Arista EOS zu Drittanbieter-Transceivern?", + options: [ + "Hard lock — requires Arista-coded modules", + "Soft lock — requires 'service unsupported-transceiver' command", + "No lock — any MSA-compliant module works without configuration", + "Soft lock — requires license key per port", + ], + options_de: [ + "Harter Lock — erfordert Arista-kodierte Module", + "Weicher Lock — erfordert Befehl 'service unsupported-transceiver'", + "Kein Lock — jedes MSA-konforme Modul funktioniert ohne Konfiguration", + "Weicher Lock — erfordert Lizenzschluessel pro Port", + ], + answer: 2, + explanation: + "Arista EOS has no vendor lock. Any MSA-compliant transceiver with correct EEPROM works without any configuration changes. Full DOM support is also provided for third-party modules.", + explanation_de: + "Arista EOS hat keinen Vendor-Lock. Jeder MSA-konforme Transceiver mit korrektem EEPROM funktioniert ohne Konfigurationsaenderungen. Vollstaendige DOM-Unterstuetzung ist auch fuer Drittanbieter-Module vorhanden.", + }, + { + id: "sw-jnpr-q3", + lesson: "sw-juniper-arista", + q: "On Arista, which command shows DOM data for Ethernet1?", + q_de: "Welcher Befehl zeigt auf Arista DOM-Daten fuer Ethernet1?", + options: [ + "show interface Ethernet1 transceiver", + "show sfp Ethernet1 diagnostics", + "show optics Ethernet1", + "show dom Ethernet1", + ], + options_de: [ + "show interface Ethernet1 transceiver", + "show sfp Ethernet1 diagnostics", + "show optics Ethernet1", + "show dom Ethernet1", + ], + answer: 0, + explanation: + "'show interfaces Ethernet1 transceiver' or 'show transceiver Ethernet1' both work on Arista EOS to display DOM data.", + explanation_de: + "'show interfaces Ethernet1 transceiver' oder 'show transceiver Ethernet1' funktionieren beide auf Arista EOS zur Anzeige von DOM-Daten.", + }, + ], + }, + + { + id: "sw-fec-config", + category: "switches", + title: "FEC Configuration for Optical Interfaces", + title_de: "FEC-Konfiguration fuer optische Schnittstellen", + level: "advanced", + duration_min: 12, + summary: + "Forward Error Correction (FEC) is mandatory at 25G and above. Mismatched FEC is the #1 cause of unexplained link-down events. Learn which FEC is required at each speed and how to configure it.", + summary_de: + "Forward Error Correction (FEC) ist ab 25G Pflicht. Fehlangepasstes FEC ist die haeufigste Ursache unerklaerter Link-Down-Ereignisse. Lernen Sie, welches FEC bei welcher Geschwindigkeit erforderlich ist und wie es konfiguriert wird.", + tags: ["fec", "rs-fec", "kp4", "25g", "100g", "400g", "troubleshooting"], + sections: [ + { + heading: "What is FEC and Why Does It Matter?", + heading_de: "Was ist FEC und warum ist es wichtig?", + blocks: [ + { + type: "p", + text: "FEC (Forward Error Correction) is a mathematical technique that adds redundant bits to transmitted data, allowing the receiver to detect and correct bit errors without retransmission. As data rates increased to 25G and beyond, signal-to-noise ratios decreased and raw bit error rates increased. FEC compensates for this, enabling reliable links over real-world fiber and copper.", + text_de: + "FEC (Forward Error Correction) ist eine mathematische Technik, die uebertragenen Daten redundante Bits hinzufuegt und es dem Empfaenger ermooglicht, Bit-Fehler ohne Wiederuebertragung zu erkennen und zu korrigieren. Mit steigenden Datenraten auf 25G und hoeher sanken Signal-Rausch-Abstaende und stieg die rohe Bitfehlerrate. FEC kompensiert dies fuer zuverlaessige Verbindungen.", + }, + { + type: "table", + headers: ["FEC Type", "IEEE Clause", "Used At", "Overhead", "Error Correction Capability"], + headers_de: ["FEC-Typ", "IEEE-Klausel", "Verwendet bei", "Overhead", "Fehlerkorrekturkapazitaet"], + rows: [ + ["No FEC", "—", "1G, 10G (usually)", "0%", "None — bit errors cause frame loss"], + ["FC-FEC (CL74)", "Clause 74", "25G, some 40G", "~2.4%", "Corrects burst errors up to 11 bits"], + ["RS-FEC (CL91)", "Clause 91", "100G, 25G SR/LR", "~2.4%", "Corrects up to 15 symbol errors per codeword"], + ["KP4 RS-FEC", "Clause 134", "400G, 800G PAM4", "~2.4%", "Higher correction for PAM4 noise environment"], + ], + }, + { + type: "callout", + variant: "key", + text: "FEC must match on BOTH ends of the link. If one side uses RS-FEC and the other uses FC-FEC, the link will come up but with massive bit errors, or it won't come up at all. Always set FEC explicitly — don't rely on auto-negotiation at 25G and above.", + text_de: + "FEC muss auf BEIDEN Seiten der Verbindung uebereinstimmen. Wenn eine Seite RS-FEC und die andere FC-FEC verwendet, kommt die Verbindung moeglicherweise mit massiven Bitfehlern hoch oder gar nicht. FEC immer explizit setzen — nicht auf Auto-Negotiation bei 25G und hoeher vertrauen.", + }, + ], + }, + { + heading: "FEC Requirements by Speed and Standard", + heading_de: "FEC-Anforderungen nach Geschwindigkeit und Standard", + blocks: [ + { + type: "table", + headers: ["Speed / Standard", "FEC Required", "FEC Type"], + headers_de: ["Geschwindigkeit / Standard", "FEC erforderlich", "FEC-Typ"], + rows: [ + ["10GBASE-SR/LR", "No", "None"], + ["25GBASE-SR", "Yes (recommended)", "RS-FEC or FC-FEC"], + ["25GBASE-LR", "Yes", "RS-FEC (CL91)"], + ["25GBASE-ER", "Yes", "RS-FEC (CL91)"], + ["40GBASE-SR4 / LR4", "Optional", "FC-FEC sometimes needed"], + ["100GBASE-SR4", "Yes", "RS-FEC (CL91)"], + ["100GBASE-LR4", "Yes", "RS-FEC (CL91)"], + ["100GBASE-DR", "Yes", "RS-FEC (CL91)"], + ["400G all PAM4", "Mandatory", "KP4 RS-FEC (CL134)"], + ["800G all PAM4", "Mandatory", "KP4 RS-FEC"], + ], + }, + ], + }, + { + heading: "Configuring FEC: Cisco, Juniper, Arista", + heading_de: "FEC konfigurieren: Cisco, Juniper, Arista", + blocks: [ + { + type: "code", + text: "# CISCO NX-OS (Nexus 9000):\ninterface ethernet 1/1\n speed 25000\n fec rs-fec ! RS-FEC for 25G\n no shutdown\n\n# For 100G:\ninterface ethernet 1/2\n speed 100000\n fec rs-fec\n\n# ARISTA EOS:\ninterface Ethernet1\n speed forced 25gfull\n fec rs\n\n# JUNIPER Junos (QFX/EX):\nset interfaces et-0/0/0 ether-options fec fec91\n# or for auto:\nset interfaces et-0/0/0 ether-options auto-negotiation\n\n# JUNIPER — check FEC stats:\nshow interfaces et-0/0/0 statistics detail", + }, + { + type: "callout", + variant: "warning", + text: "If a 25G link goes down immediately after cabling, or shows very high input errors, FEC mismatch is the most likely cause. Check both ends — the server NIC and the switch port — and ensure they are configured for the same FEC mode.", + text_de: + "Wenn eine 25G-Verbindung sofort nach dem Verkabeln untergeht oder sehr hohe Eingabefehler zeigt, ist FEC-Fehlanpassung die wahrscheinlichste Ursache. Beide Enden pruefen — die Server-NIC und den Switch-Port — und sicherstellen, dass beide denselben FEC-Modus konfiguriert haben.", + }, + ], + }, + ], + quiz: [ + { + id: "sw-fec-q1", + lesson: "sw-fec-config", + q: "What FEC is mandatory for all 400G PAM4 interfaces?", + q_de: "Welches FEC ist fuer alle 400G PAM4-Schnittstellen obligatorisch?", + options: ["FC-FEC (Clause 74)", "RS-FEC Clause 91", "KP4 RS-FEC (Clause 134)", "No FEC needed at 400G"], + options_de: [ + "FC-FEC (Klausel 74)", + "RS-FEC Klausel 91", + "KP4 RS-FEC (Klausel 134)", + "Kein FEC bei 400G erforderlich", + ], + answer: 2, + explanation: + "KP4 RS-FEC (Clause 134) is mandatory for all 400G PAM4 interfaces. PAM4's smaller signal margins require stronger FEC than NRZ links.", + explanation_de: + "KP4 RS-FEC (Klausel 134) ist fuer alle 400G PAM4-Schnittstellen obligatorisch. PAM4s kleinere Signalabstaende erfordern starkeres FEC als NRZ-Verbindungen.", + }, + { + id: "sw-fec-q2", + lesson: "sw-fec-config", + q: "A 25G link comes up but shows very high input errors. What is the most likely cause?", + q_de: "Eine 25G-Verbindung kommt hoch, zeigt aber sehr hohe Eingabefehler. Was ist die wahrscheinlichste Ursache?", + options: [ + "The cable is too long", + "FEC mismatch — one end uses RS-FEC, the other uses FC-FEC or none", + "The module is third-party and incompatible", + "The switch ASIC is overloaded", + ], + options_de: [ + "Das Kabel ist zu lang", + "FEC-Fehlanpassung — eine Seite verwendet RS-FEC, die andere FC-FEC oder keins", + "Das Modul ist ein Drittanbietermodul und inkompatibel", + "Der Switch-ASIC ist ueberlastet", + ], + answer: 1, + explanation: + "High input errors at 25G with the link physically up is the classic symptom of FEC mismatch. Check FEC configuration at both ends — switch port and server NIC.", + explanation_de: + "Hohe Eingabefehler bei 25G mit physisch verbundener Verbindung ist das klassische Symptom einer FEC-Fehlanpassung. FEC-Konfiguration an beiden Enden pruefen — Switch-Port und Server-NIC.", + }, + { + id: "sw-fec-q3", + lesson: "sw-fec-config", + q: "On Arista EOS, how do you set RS-FEC on a 25G interface?", + q_de: "Wie setzt man auf Arista EOS RS-FEC an einer 25G-Schnittstelle?", + options: [ + "interface Ethernet1 → fec rs", + "interface Ethernet1 → fec forward-error-correction rs", + "set fec Ethernet1 rs-fec", + "fec enable Ethernet1 rs", + ], + options_de: [ + "interface Ethernet1 → fec rs", + "interface Ethernet1 → fec forward-error-correction rs", + "set fec Ethernet1 rs-fec", + "fec enable Ethernet1 rs", + ], + answer: 0, + explanation: + "On Arista EOS: under 'interface Ethernet1', the command 'fec rs' enables RS-FEC (Reed-Solomon).", + explanation_de: + "Auf Arista EOS: unter 'interface Ethernet1' aktiviert der Befehl 'fec rs' RS-FEC (Reed-Solomon).", + }, + ], + }, +]; diff --git a/packages/api/src/data/training/testing-buying.ts b/packages/api/src/data/training/testing-buying.ts new file mode 100644 index 0000000..c39fb02 --- /dev/null +++ b/packages/api/src/data/training/testing-buying.ts @@ -0,0 +1,713 @@ +import type { TrainingLesson } from "./types"; + +export const testingBuyingLessons: TrainingLesson[] = [ + { + id: "test-equipment", + category: "testing-buying", + title: "Fiber Optic Test Equipment", + title_de: "Glasfaser-Testgeraete", + level: "beginner", + duration_min: 12, + summary: + "Every fiber installation requires testing. Learn the essential test tools — OTDR, optical power meter, VFL, and inspection microscope — what they measure and when to use each.", + summary_de: + "Jede Glasfaserinstallation erfordert Tests. Lernen Sie die wesentlichen Testgeraete — OTDR, optisches Leistungsmessgeraet, VFL und Inspektionsmikroskop — was sie messen und wann jedes eingesetzt wird.", + tags: ["otdr", "power-meter", "vfl", "testing", "inspection", "tools"], + sections: [ + { + heading: "Essential Test Equipment Overview", + heading_de: "Ueberblick ueber wesentliche Testgeraete", + blocks: [ + { + type: "table", + headers: ["Tool", "What It Measures", "When to Use", "Approx. Price"], + headers_de: ["Geraet", "Was es misst", "Wann einsetzen", "Ungefaehre Kosten"], + rows: [ + ["Optical Power Meter (OPM)", "Received optical power in dBm", "Verify received power, acceptance testing", "$150–500"], + ["Light Source", "Stable reference power output", "Paired with OPM for IL testing", "$100–400"], + ["OPM + Source Kit", "Insertion Loss (IL)", "Full link acceptance testing", "$300–800"], + ["OTDR", "Distance, loss per event, fiber trace", "Long fiber runs, splice/connector maps, breaks", "$2,000–25,000"], + ["VFL (Visual Fault Locator)", "Visible red light in fiber", "Find bends, breaks, continuity check, ID fibers", "$50–200"], + ["Fiber Inspection Microscope / Video Probe", "Connector endface contamination", "Before mating any connector", "$200–1,500"], + ["Optical Spectrum Analyzer (OSA)", "All DWDM channel powers and wavelengths", "WDM system commissioning and troubleshooting", "$15,000–100,000"], + ["BERT (Bit Error Rate Tester)", "End-to-end bit error rate", "Final acceptance, troubleshooting transient errors", "$5,000–50,000"], + ], + }, + { + type: "callout", + variant: "key", + text: "For most enterprise and data center work, you need only three tools: (1) Fiber inspection video probe, (2) OPM + light source kit, and (3) VFL. These three tools solve 80%+ of all fiber problems and together cost under $1,500.", + text_de: + "Fuer die meisten Enterprise- und Rechenzentrumsarbeiten benoetigen Sie nur drei Geraete: (1) Glasfaser-Inspektions-Videosonde, (2) OPM + Lichtquellen-Kit und (3) VFL. Diese drei Geraete losen 80%+ aller Glasfaserprobleme und kosten zusammen unter 1.500 EUR.", + }, + ], + }, + { + heading: "The OTDR (Optical Time-Domain Reflectometer)", + heading_de: "Das OTDR (Optisches Zeitbereichs-Reflektometer)", + blocks: [ + { + type: "p", + text: "An OTDR sends short pulses of light into the fiber and measures the returning backscattered light over time. Since the speed of light in fiber is known (~5 ns/m), the OTDR can calculate the exact distance to any reflection or scattering event — splices, connectors, bends, and breaks — and measure the loss at each point. The result is an OTDR trace: a graph of distance vs. backscatter level.", + text_de: + "Ein OTDR sendet kurze Lichtimpulse in die Faser und misst das zeitabhaengige zurueckkehrende Streulicht. Da die Lichtgeschwindigkeit in der Faser bekannt ist (~5 ns/m), kann das OTDR den genauen Abstand zu jedem Reflexions- oder Streuereignis — Spleisse, Stecker, Biegungen und Brueche — berechnen und den Verlust an jedem Punkt messen.", + }, + { + type: "ul", + items: [ + "Reflective events (spikes up then down): connectors, air gaps, mechanical splices — appear as peaks", + "Non-reflective events (step down): fusion splices, bends, macrobending — appear as steps", + "End of fiber: large reflective peak or flat line into noise floor", + "OTDR dead zone: first 5–50m near the OTDR is unmeasurable — use launch cable (25–50m) to push the dead zone past the first connector", + ], + items_de: [ + "Reflektive Ereignisse (Spitze nach oben dann unten): Stecker, Luftspuecken, Mechanische Spleisse — erscheinen als Peaks", + "Nicht-reflektive Ereignisse (Schritt nach unten): Fusionsspleisse, Biegungen, Makrobiegungen — erscheinen als Stufen", + "Faserende: grosse reflektive Spitze oder flache Linie zum Rauschboden", + "OTDR-Totzone: erste 5–50 m nahe dem OTDR sind nicht messbar — Startkabel (25–50 m) verwenden, um die Totzone hinter den ersten Stecker zu verschieben", + ], + }, + ], + }, + { + heading: "Fiber Inspection — Why It Matters", + heading_de: "Faserninspektion — Warum sie wichtig ist", + blocks: [ + { + type: "p", + text: "A single dust particle on a connector endface can cause 1–40 dB of additional loss — enough to fail a link budget or cause intermittent errors. Fiber inspection with a 200×–400× video probe takes 30 seconds and catches this immediately. IEC 61300-3-35 defines the pass/fail criteria: Zone A (core) must be Grade A (no defects) for single-mode.", + text_de: + "Ein einziges Staubpartikel auf einem Steckerendgesicht kann 1–40 dB zusaetzlichen Verlust verursachen — genug, um ein Linkbudget scheitern zu lassen oder intermittierende Fehler zu verursachen. Die Faserinspektiion mit einer 200×–400×-Videosonde dauert 30 Sekunden und erkennt das sofort. IEC 61300-3-35 definiert die Pass/Fail-Kriterien: Zone A (Kern) muss fuer Einzelmodefaser Grad A (keine Defekte) sein.", + }, + { + type: "callout", + variant: "warning", + text: "NEVER look directly into a fiber connector with the naked eye or non-filtered scope — even 'dark' fibers may carry infrared laser light that can instantly and permanently damage your eyes. Always use a proper fiber inspection probe with IR filter.", + text_de: + "NIEMALS direkt in einen Faserstecker mit blossem Auge oder ungefilterten Messinstrumenten schauen — selbst 'dunkle' Fasern koennen Infrarot-Laserlicht fuehren, das Ihre Augen sofort und dauerhaft schaedigen kann. Immer eine ordentliche Faserinspetkionssonde mit IR-Filter verwenden.", + }, + ], + }, + ], + quiz: [ + { + id: "test-eq-q1", + lesson: "test-equipment", + q: "What is the primary function of an OTDR?", + q_de: "Was ist die Hauptfunktion eines OTDR?", + options: [ + "Measure the total bandwidth of a fiber link", + "Send pulses and measure backscattered light to locate splices, connectors, and breaks with distance information", + "Measure the optical power output of a transceiver module", + "Test the bit error rate of a data link", + ], + options_de: [ + "Gesamtbandbreite einer Faserverbindung messen", + "Impulse senden und Streulicht messen, um Spleisse, Stecker und Brueche mit Abstandsangabe zu lokalisieren", + "Optische Ausgangsleistung eines Transceiver-Moduls messen", + "Bitfehlerrate einer Datenverbindung testen", + ], + answer: 1, + explanation: + "An OTDR locates and measures the loss of events (splices, connectors, bends, breaks) in a fiber by analyzing the time and amplitude of backscattered light from pulses it sends into the fiber.", + explanation_de: + "Ein OTDR lokalisiert und misst den Verlust von Ereignissen (Spleisse, Stecker, Biegungen, Brueche) in einer Faser durch Analyse von Zeit und Amplitude des Streulichts aus Impulsen, die es in die Faser sendet.", + }, + { + id: "test-eq-q2", + lesson: "test-equipment", + q: "Why must you NEVER look directly into a fiber with your naked eye?", + q_de: "Warum darf man NIEMALS direkt mit blossem Auge in eine Faser schauen?", + options: [ + "You will contaminate the fiber end with your eye", + "Invisible infrared laser light can instantly and permanently damage your eyes", + "The fiber glow will hurt your eyes temporarily", + "It is only a precaution for multimode fiber, not single-mode", + ], + options_de: [ + "Sie kontaminieren das Faserende mit Ihrem Auge", + "Unsichtbares Infrarot-Laserlicht kann Ihre Augen sofort und dauerhaft schaedigen", + "Das Faserleuchten verletzt voruebergehend Ihre Augen", + "Es ist nur eine Vorsichtsmassnahme fuer Mehrmodefaser, nicht Einzelmodefaser", + ], + answer: 1, + explanation: + "Fiber optic systems use infrared lasers (850nm, 1310nm, 1550nm) invisible to the naked eye but capable of causing instant permanent eye damage. Always use a proper inspection scope with IR filter.", + explanation_de: + "Glasfasersysteme verwenden Infrarot-Laser (850 nm, 1310 nm, 1550 nm), die fuer das blosse Auge unsichtbar sind, aber sofortige dauerhafte Augenschaeden verursachen koennen. Immer eine ordentliche Inspektionssonde mit IR-Filter verwenden.", + }, + { + id: "test-eq-q3", + lesson: "test-equipment", + q: "What is the purpose of a 'launch cable' when using an OTDR?", + q_de: "Was ist der Zweck eines 'Startkabels' bei der Verwendung eines OTDRs?", + options: [ + "To launch the OTDR software on a laptop", + "To push the OTDR dead zone past the first connector so it can be measured", + "To amplify the OTDR signal for longer reach", + "To protect the OTDR port from laser damage", + ], + options_de: [ + "Um die OTDR-Software auf einem Laptop zu starten", + "Um die OTDR-Totzone hinter den ersten Stecker zu verschieben, sodass er gemessen werden kann", + "Um das OTDR-Signal fuer groessere Reichweite zu verstaerken", + "Um den OTDR-Port vor Laserschaeden zu schuetzen", + ], + answer: 1, + explanation: + "The OTDR dead zone (first 5–50m) is unmeasurable because the receiver is still recovering from the large pulse. A 25–50m launch cable 'pushes' the dead zone past the first connector of interest, allowing it to be measured.", + explanation_de: + "Die OTDR-Totzone (erste 5–50 m) ist unmessbar, weil der Empfaenger noch vom grossen Impuls erholt. Ein 25–50-m-Startkabel 'verschiebt' die Totzone hinter den ersten interessierenden Stecker und ermoeglicht seine Messung.", + }, + ], + }, + + { + id: "buy-oem-vs-compatible", + category: "testing-buying", + title: "OEM vs. Compatible Transceivers: Facts vs. Myths", + title_de: "OEM vs. kompatible Transceiver: Fakten vs. Mythen", + level: "beginner", + duration_min: 15, + summary: + "Compatible transceivers are often misunderstood. This lesson separates myths from facts, explains the manufacturing reality, quality tiers, and how to evaluate a compatible module supplier.", + summary_de: + "Kompatible Transceiver werden oft falsch verstanden. Diese Lektion trennt Mythen von Fakten, erklaert die Fertigungsrealitaet, Qualitaetsstufen und wie ein kompatibler Modulanbieter bewertet wird.", + tags: ["oem", "compatible", "third-party", "quality", "myths", "tco"], + sections: [ + { + heading: "Who Actually Manufactures OEM Modules?", + heading_de: "Wer stellt OEM-Module tatsaechlich her?", + blocks: [ + { + type: "p", + text: "Cisco, Juniper, Arista, and other network vendors do NOT manufacture their own transceivers. They outsource production to a small number of optical module manufacturers (ODMs) — the same companies that also supply third-party compatible modules. The physical module is identical; only the EEPROM vendor programming and price differ.", + text_de: + "Cisco, Juniper, Arista und andere Netzwerkhersteller STELLEN ihre eigenen Transceiver NICHT her. Sie vergeben die Produktion an eine kleine Anzahl optischer Modulhersteller (ODMs) — dieselben Unternehmen, die auch kompatible Drittanbieter-Module liefern. Das physische Modul ist identisch; nur die EEPROM-Herstellerprogrammierung und der Preis unterscheiden sich.", + }, + { + type: "table", + headers: ["Major ODM", "OEM customers (examples)", "Also sells compatible?"], + headers_de: ["Grosser ODM", "OEM-Kunden (Beispiele)", "Verkauft auch kompatibel?"], + rows: [ + ["II-VI (Coherent)", "Cisco, Juniper, HP", "Yes — via many rebranders"], + ["Lumentum", "Cisco, Arista, Nokia", "Yes — via channel"], + ["InnoLight", "Arista, hyperscalers", "Yes — major compatible supplier"], + ["Hisense Broadband", "Hyperscalers, enterprise", "Yes — major compatible ODM"], + ["Source Photonics", "Cisco, Calix, ADTRAN", "Yes — OEM and compatible"], + ["JDSU / Viavi", "Cisco, Juniper", "Yes — mainly OEM now"], + ], + }, + { + type: "callout", + variant: "key", + text: "The module that says 'Cisco SFP-10G-LR' and a FLEXOPTIX-coded compatible SFP+ LR may come from the same production line at InnoLight or II-VI. The difference is the EEPROM programming and the price tag — not the optical or electrical components.", + text_de: + "Das Modul mit der Aufschrift 'Cisco SFP-10G-LR' und ein FLEXOPTIX-kodiertes kompatibles SFP+ LR koennen von derselben Produktionslinie bei InnoLight oder II-VI stammen. Der Unterschied liegt in der EEPROM-Programmierung und dem Preisschild — nicht in den optischen oder elektrischen Komponenten.", + }, + ], + }, + { + heading: "Common Myths — Debunked", + heading_de: "Haeufige Mythen — Widerlegt", + blocks: [ + { + type: "table", + headers: ["Myth", "Fact"], + headers_de: ["Mythos", "Fakt"], + rows: [ + [ + "Compatible modules damage switches", + "FALSE — MSA-compliant modules meet the same electrical interface specs. There is no electrical difference that could cause hardware damage.", + ], + [ + "Using a third-party module voids the switch warranty", + "FALSE (in most jurisdictions) — In the EU and US, using a third-party component does not void a product warranty unless the vendor can prove the component caused the damage. The Magnuson-Moss Warranty Act (US) and EU Directive 1999/44/EC protect consumers.", + ], + [ + "Compatible modules have lower quality / higher failure rates", + "FALSE for Tier 1 — Tier 1 compatible modules from major ODMs have the same MTBF (300,000+ hours) as OEM modules from the same factory. Tier 3 budget modules may have higher failure rates.", + ], + [ + "Only OEM modules show DOM diagnostics", + "FALSE — Properly coded compatible modules with full EEPROM programming show DOM on Cisco IOS, Arista EOS, Juniper Junos, and most other platforms.", + ], + [ + "You can't get support if you use compatible modules", + "PARTIALLY TRUE — Switch vendor TAC (e.g., Cisco) may decline to assist until you swap to an OEM module. But the module itself and your fiber supplier are responsible for module support.", + ], + ], + }, + ], + }, + { + heading: "Quality Tiers", + heading_de: "Qualitaetsstufen", + blocks: [ + { + type: "table", + headers: ["Tier", "Description", "MTBF", "DOM Support", "Where to Buy"], + headers_de: ["Stufe", "Beschreibung", "MTBF", "DOM-Unterstuetzung", "Wo kaufen"], + rows: [ + ["Tier 1 (OEM)", "OEM-branded, same ODM", "300,000+ h", "Full", "Cisco, Juniper, Arista shops"], + ["Tier 1 (Compatible)", "Major ODM, full EEPROM, ISO 9001, full DOM, coded per platform", "300,000+ h", "Full", "Specialist: FLEXOPTIX, fs.com, Finisar-compatible"], + ["Tier 2 (Compatible)", "Rebrand of Tier 1 or Tier 2 ODM, may have limited DOM, partial coding", "200,000–300,000 h", "Partial", "Some online resellers"], + ["Tier 3 (Budget)", "Unknown ODM, no testing data, may lack DOM, partial EEPROM", "<100,000 h", "Often missing", "Avoid for production networks"], + ], + }, + { + type: "callout", + variant: "tip", + text: "How to verify a Tier 1 compatible supplier: (1) Ask for full EEPROM dump for your target platform, (2) Request MTBF data from the ODM datasheet, (3) Confirm DOM parameter coverage, (4) Check warranty terms (minimum 3 years recommended), (5) Ask if they use ISO 9001 certified ODMs.", + text_de: + "Wie ein Tier-1-Kompatibel-Anbieter verifiziert wird: (1) Vollstaendigen EEPROM-Dump fuer Zielplattform anfragen, (2) MTBF-Daten aus dem ODM-Datenblatt anfordern, (3) DOM-Parameter-Abdeckung bestaetigen, (4) Garantiebedingungen pruefen (mindestens 3 Jahre empfohlen), (5) Pruefen ob ISO-9001-zertifizierte ODMs verwendet werden.", + }, + ], + }, + ], + quiz: [ + { + id: "buy-oem-q1", + lesson: "buy-oem-vs-compatible", + q: "Who manufactures Cisco SFP+ modules?", + q_de: "Wer stellt Cisco SFP+-Module her?", + options: [ + "Cisco manufactures all their own modules in-house", + "ODMs like II-VI, Lumentum, InnoLight — same companies that also make compatible modules", + "Only US-based manufacturers approved by Cisco", + "Joint venture between Cisco and Huawei", + ], + options_de: [ + "Cisco stellt alle eigenen Module intern her", + "ODMs wie II-VI, Lumentum, InnoLight — dieselben Unternehmen, die auch kompatible Module herstellen", + "Nur US-basierte von Cisco genehmigte Hersteller", + "Joint Venture zwischen Cisco und Huawei", + ], + answer: 1, + explanation: + "Cisco outsources transceiver manufacturing to major ODMs (Original Design Manufacturers) like II-VI (Coherent), Lumentum, and InnoLight — the same companies that manufacture compatible modules for other brands.", + explanation_de: + "Cisco vergibt die Transceiver-Fertigung an grosse ODMs (Original Design Manufacturers) wie II-VI (Coherent), Lumentum und InnoLight — dieselben Unternehmen, die kompatible Module fuer andere Marken herstellen.", + }, + { + id: "buy-oem-q2", + lesson: "buy-oem-vs-compatible", + q: "A Tier 1 compatible module from a major ODM has what MTBF compared to OEM?", + q_de: "Ein Tier-1-kompatibles Modul von einem grossen ODM hat welche MTBF im Vergleich zu OEM?", + options: [ + "Much lower — typically 50,000 hours", + "Slightly lower — typically 200,000 hours vs 300,000 OEM", + "Equivalent — typically 300,000+ hours from the same factory", + "Higher — because compatible modules are newer", + ], + options_de: [ + "Viel niedriger — typisch 50.000 Stunden", + "Etwas niedriger — typisch 200.000 Stunden vs 300.000 OEM", + "Gleichwertig — typisch 300.000+ Stunden aus derselben Fabrik", + "Hoeher — weil kompatible Module neuer sind", + ], + answer: 2, + explanation: + "Tier 1 compatible modules from major ODMs (the same factories making OEM modules) have equivalent MTBF — typically 300,000+ hours. The failure rate difference between OEM and Tier 1 compatible is negligible.", + explanation_de: + "Tier-1-kompatible Module von grossen ODMs (denselben Fabriken, die OEM-Module herstellen) haben gleichwertige MTBF — typisch 300.000+ Stunden. Der Ausfallratenunterschied zwischen OEM und Tier-1-kompatibel ist vernachlaessigbar.", + }, + { + id: "buy-oem-q3", + lesson: "buy-oem-vs-compatible", + q: "Cisco TAC asks you to swap a third-party module. What should you do?", + q_de: "Cisco TAC bittet Sie, ein Drittanbieter-Modul auszutauschen. Was sollten Sie tun?", + options: [ + "Always swap immediately — TAC knows best", + "Refuse — Cisco has no right to make this request", + "Understand this is a support policy: swap for diagnosis if needed, but the module may not be the cause", + "Escalate to Cisco management", + ], + options_de: [ + "Sofort tauschen — TAC weiss es am besten", + "Ablehnen — Cisco hat kein Recht, das zu verlangen", + "Verstehen, dass dies eine Support-Richtlinie ist: zum Diagnostizieren tauschen wenn noetig, aber das Modul ist moeglicherweise nicht die Ursache", + "An das Cisco-Management eskalieren", + ], + answer: 2, + explanation: + "Cisco TAC's policy is to not support third-party modules. If TAC asks you to swap, understand this is a support policy — not evidence the module is faulty. Swap for diagnostic purposes if needed, but the compatible module itself is likely not the root cause.", + explanation_de: + "Die Cisco-TAC-Richtlinie ist es, keine Drittanbieter-Module zu unterstuetzen. Wenn TAC Sie bittet zu tauschen, verstehen Sie, dass dies eine Support-Richtlinie ist — kein Beweis, dass das Modul fehlerhaft ist. Zum Diagnostizieren tauschen wenn noetig, aber das kompatible Modul selbst ist wahrscheinlich nicht die Grundursache.", + }, + { + id: "buy-oem-q4", + lesson: "buy-oem-vs-compatible", + q: "What is the most important indicator of a Tier 1 compatible module supplier?", + q_de: "Was ist der wichtigste Indikator fuer einen Tier-1-Kompatibel-Modulanbieter?", + options: [ + "They have the lowest price", + "They can provide MTBF data, full EEPROM dump, ISO 9001 ODM certification, and DOM support", + "They are based in Europe", + "They have the most product listings", + ], + options_de: [ + "Sie haben den niedrigsten Preis", + "Sie koennen MTBF-Daten, vollstaendigen EEPROM-Dump, ISO-9001-ODM-Zertifizierung und DOM-Unterstuetzung bereitstellen", + "Sie sind in Europa ansaessig", + "Sie haben die meisten Produktlistungen", + ], + answer: 1, + explanation: + "A Tier 1 compatible supplier can provide: MTBF data from ODM datasheets, full EEPROM programming samples, ISO 9001 ODM certification, full DOM support for your target platform, and a 3-year warranty.", + explanation_de: + "Ein Tier-1-Kompatibel-Anbieter kann bereitstellen: MTBF-Daten aus ODM-Datenblaettern, vollstaendige EEPROM-Programmerproben, ISO-9001-ODM-Zertifizierung, vollstaendige DOM-Unterstuetzung fuer die Zielplattform und 3 Jahre Garantie.", + }, + ], + }, + + { + id: "buy-datasheet", + category: "testing-buying", + title: "How to Read a Transceiver Datasheet", + title_de: "Wie man ein Transceiver-Datenblatt liest", + level: "beginner", + duration_min: 12, + summary: + "A transceiver datasheet contains everything you need to know about module performance. Learn which parameters are critical, what typical values look like, and which red flags indicate a low-quality module.", + summary_de: + "Ein Transceiver-Datenblatt enthaelt alles, was Sie ueber die Modulleistung wissen muessen. Lernen Sie, welche Parameter kritisch sind, wie typische Werte aussehen und welche roten Flaggen auf ein minderwertiges Modul hinweisen.", + tags: ["datasheet", "specifications", "tx-power", "rx-sensitivity", "buying"], + sections: [ + { + heading: "Key Transmitter Parameters", + heading_de: "Wichtige Sender-Parameter", + blocks: [ + { + type: "table", + headers: ["Parameter", "Typical Value (10G LR)", "What It Means"], + headers_de: ["Parameter", "Typischer Wert (10G LR)", "Bedeutung"], + rows: [ + ["Center wavelength", "1310 nm ± 50nm", "Optical wavelength — must match system filters if WDM"], + ["TX output power (min)", "-8.2 dBm", "Worst-case minimum power out — use this for link budget"], + ["TX output power (max)", "+0.5 dBm", "Maximum power — if short links, check for overpower"], + ["Extinction ratio (min)", "8.2 dB", "Ratio of '1' to '0' power — lower = worse signal quality"], + ["Side mode suppression ratio (SMSR)", ">30 dB", "Single-mode laser purity — low SMSR causes interference"], + ], + }, + { + type: "callout", + variant: "warning", + text: "Always use the MINIMUM TX power for link budget calculations — never the typical or maximum value. The minimum guaranteed value is what the module will deliver under worst-case temperature and aging conditions.", + text_de: + "Fuer Linkbudget-Berechnungen immer den MINDEST-TX-Leistungswert verwenden — niemals den typischen oder maximalen Wert. Der garantierte Mindestwert ist das, was das Modul unter Worst-Case-Temperatur und Alterungsbedingungen liefern wird.", + }, + ], + }, + { + heading: "Key Receiver Parameters", + heading_de: "Wichtige Empfaenger-Parameter", + blocks: [ + { + type: "table", + headers: ["Parameter", "Typical Value (10G LR)", "What It Means"], + headers_de: ["Parameter", "Typischer Wert (10G LR)", "Bedeutung"], + rows: [ + ["RX sensitivity (max)", "-14.4 dBm", "Minimum received power for BER 10⁻¹² — link budget input"], + ["RX maximum input power", "+0.5 dBm", "Maximum power before saturation — check for overpower on short links"], + ["Return loss (min)", "26 dB", "Reflected power — lower return loss causes laser instability"], + ["BER at sensitivity", "10⁻¹²", "One bit error in 1 trillion bits transmitted — the standard target"], + ], + }, + ], + }, + { + heading: "Environmental and General Parameters", + heading_de: "Umgebungs- und allgemeine Parameter", + blocks: [ + { + type: "table", + headers: ["Parameter", "Commercial", "Industrial", "Extended"], + headers_de: ["Parameter", "Kommerziell", "Industrie", "Erweitert"], + rows: [ + ["Operating temperature", "0 to +70°C", "-40 to +85°C", "-40 to +85°C or wider"], + ["Storage temperature", "-40 to +85°C", "-40 to +85°C", "-40 to +85°C"], + ["Humidity", "5–85% non-cond.", "5–95% non-cond.", "Full range"], + ["Typical use case", "Indoor data center", "Outdoor / harsh env.", "Telco, military, aviation"], + ], + }, + { + type: "callout", + variant: "tip", + text: "For outdoor equipment enclosures or industrial environments (factories, warehouses), always specify Industrial temperature range (-40 to +85°C). Commercial modules may fail or degrade at temperatures above 70°C.", + text_de: + "Fuer Aussengehaeuseausruestung oder Industrieumgebungen (Fabriken, Lager) immer den Industrietemperaturbereich (-40 bis +85°C) angeben. Kommerzielle Module koennen bei Temperaturen ueber 70°C versagen oder sich verschlechtern.", + }, + ], + }, + { + heading: "Red Flags in Datasheets", + heading_de: "Rote Flaggen in Datenblaettern", + blocks: [ + { + type: "ul", + items: [ + "No extinction ratio specification — means '0' level not controlled, higher BER likely", + "Missing or unrealistically good RX sensitivity — 'typical only' without minimum = no guarantee", + "No MTBF data or MTBF below 200,000 hours for standard modules", + "No certifications listed (CE, FCC, RoHS) — compliance unknown", + "No DOM register table — DOM may be missing or incorrect", + "Only 'typical' values listed, no min/max — can't do reliable link budget", + "No revision history or document date — likely not maintained / outdated spec", + ], + items_de: [ + "Kein Ausloeschungsverhaeltnis spezifiziert — bedeutet '0'-Pegel unkontrolliert, hohere BER wahrscheinlich", + "Fehlende oder unrealistisch gute RX-Empfindlichkeit — 'nur typisch' ohne Mindestwert = keine Garantie", + "Keine MTBF-Daten oder MTBF unter 200.000 Stunden fuer Standardmodule", + "Keine Zertifizierungen angegeben (CE, FCC, RoHS) — Konformitaet unbekannt", + "Keine DOM-Registertabelle — DOM koennte fehlen oder falsch sein", + "Nur 'typische' Werte angegeben, kein Min/Max — zuverlaessiges Linkbudget nicht moeglich", + "Keine Revisionshistorie oder Dokumentdatum — wahrscheinlich nicht gepflegt / veraltet", + ], + }, + ], + }, + ], + quiz: [ + { + id: "buy-ds-q1", + lesson: "buy-datasheet", + q: "Which TX power value should you use for link budget calculation?", + q_de: "Welchen TX-Leistungswert sollen Sie fuer die Linkbudget-Berechnung verwenden?", + options: [ + "Maximum TX power — best case scenario", + "Typical TX power — most representative value", + "Minimum TX power — guaranteed worst case", + "Average of minimum and maximum", + ], + options_de: [ + "Maximale TX-Leistung — Best-Case-Szenario", + "Typische TX-Leistung — repraesentativster Wert", + "Minimale TX-Leistung — garantierter Worst-Case", + "Durchschnitt aus Minimum und Maximum", + ], + answer: 2, + explanation: + "Always use the MINIMUM guaranteed TX power for link budget. This ensures the link works under worst-case conditions: end-of-life, maximum temperature, lowest manufacturing tolerance.", + explanation_de: + "Fuer das Linkbudget immer die MINDEST-garantierte TX-Leistung verwenden. Das stellt sicher, dass die Verbindung unter Worst-Case-Bedingungen funktioniert: Lebensende, maximale Temperatur, niedrigste Fertigungstoleranz.", + }, + { + id: "buy-ds-q2", + lesson: "buy-datasheet", + q: "A datasheet shows RX sensitivity as '-14.4 dBm (typical)' with no minimum value. What is the concern?", + q_de: "Ein Datenblatt zeigt RX-Empfindlichkeit als '-14.4 dBm (typisch)' ohne Mindestwert. Was ist das Problem?", + options: [ + "No concern — typical values are sufficient for planning", + "The sensitivity may be worse in some units — link budget is unreliable without a guaranteed minimum", + "The module is using PAM4 instead of NRZ", + "The module cannot be used in data centers", + ], + options_de: [ + "Kein Problem — typische Werte sind fuer die Planung ausreichend", + "Die Empfindlichkeit kann bei einigen Einheiten schlechter sein — Linkbudget ohne garantierten Mindestwert unzuverlaessig", + "Das Modul verwendet PAM4 statt NRZ", + "Das Modul kann nicht in Rechenzentren verwendet werden", + ], + answer: 1, + explanation: + "A 'typical only' sensitivity value means there is no manufacturer guarantee. Some units may be significantly worse, making link budget calculations unreliable. Always require minimum (worst-case) values.", + explanation_de: + "Ein 'nur typischer' Empfindlichkeitswert bedeutet, dass es keine Herstellergarantie gibt. Einige Einheiten koennten deutlich schlechter sein, was Linkbudget-Berechnungen unzuverlaessig macht. Immer Mindestwerte (Worst-Case) fordern.", + }, + { + id: "buy-ds-q3", + lesson: "buy-datasheet", + q: "What temperature range is required for modules installed in outdoor equipment enclosures?", + q_de: "Welcher Temperaturbereich ist fuer Module erforderlich, die in Aussengehaeuseausruestung installiert werden?", + options: [ + "Commercial (0 to +70°C)", + "Industrial (-40 to +85°C)", + "Standard (−10 to +60°C)", + "Extended (0 to +85°C)", + ], + options_de: [ + "Kommerziell (0 bis +70°C)", + "Industrie (-40 bis +85°C)", + "Standard (-10 bis +60°C)", + "Erweitert (0 bis +85°C)", + ], + answer: 1, + explanation: + "Industrial temperature range (-40 to +85°C) is required for outdoor equipment or harsh environments. Commercial modules (0 to +70°C) may fail or degrade significantly in summer heat inside an outdoor enclosure.", + explanation_de: + "Der Industrietemperaturbereich (-40 bis +85°C) ist fuer Aussengeraete oder harte Umgebungen erforderlich. Kommerzielle Module (0 bis +70°C) koennen bei Sommerhitze in einem Aussengehaeuese versagen oder sich deutlich verschlechtern.", + }, + ], + }, + + { + id: "buy-tco", + category: "testing-buying", + title: "Total Cost of Ownership: OEM vs. Compatible", + title_de: "Gesamtbetriebskosten: OEM vs. kompatibel", + level: "intermediate", + duration_min: 12, + summary: + "The real cost of transceivers goes beyond the purchase price. Learn to calculate Total Cost of Ownership (TCO) including power, spares, and support — and why compatible modules often save 60–80% over a 5-year horizon.", + summary_de: + "Die tatsaechlichen Kosten von Transceivern gehen ueber den Kaufpreis hinaus. Lernen Sie, die Gesamtbetriebskosten (TCO) einschliesslich Energie, Ersatzteile und Support zu berechnen — und warum kompatible Module ueber einen 5-Jahres-Horizont oft 60–80 % einsparen.", + tags: ["tco", "cost", "oem", "compatible", "roi", "procurement"], + sections: [ + { + heading: "TCO Components", + heading_de: "TCO-Komponenten", + blocks: [ + { + type: "ul", + items: [ + "Purchase price: the obvious cost — OEM is typically 3–10× more expensive than Tier 1 compatible", + "Power cost: P(W) × hours/year × $/kWh — usually small per port but significant at scale", + "Spares cost: maintain 2–5% spare pool; compatible spares cost less", + "Failure replacement labor: same regardless of module brand", + "Support cost: OEM modules may be required for vendor TAC — factor in if support contracts are critical", + "Lifecycle cost: transceivers don't need firmware updates — replace on failure only", + ], + items_de: [ + "Kaufpreis: die offensichtlichen Kosten — OEM ist typisch 3–10× teurer als Tier-1-kompatibel", + "Energiekosten: P(W) × Stunden/Jahr × EUR/kWh — pro Port meist gering, bei Skalierung erheblich", + "Ersatzteilkosten: 2–5% Ersatzteilpool pflegen; kompatible Ersatzteile kosten weniger", + "Arbeitskosten fuer Fehlerersatz: gleich unabhaengig von der Modulmarke", + "Support-Kosten: OEM-Module koennen fuer Hersteller-TAC erforderlich sein — beruecksichtigen wenn Support-Vertraege kritisch", + "Lifecycle-Kosten: Transceiver benoetigen keine Firmware-Updates — nur bei Ausfall ersetzen", + ], + }, + ], + }, + { + heading: "5-Year TCO Example: 1000-Port Data Center", + heading_de: "5-Jahres-TCO-Beispiel: 1000-Port-Rechenzentrum", + blocks: [ + { + type: "table", + headers: ["Cost Item", "OEM (10G LR SFP+)", "Tier 1 Compatible (10G LR SFP+)", "Saving"], + headers_de: ["Kostenpunkt", "OEM (10G LR SFP+)", "Tier 1 kompatibel (10G LR SFP+)", "Ersparnis"], + rows: [ + ["Unit purchase price", "$800", "$80", "$720/port"], + ["1,000 ports total (initial)", "$800,000", "$80,000", "$720,000"], + ["5% spares (50 units)", "$40,000", "$4,000", "$36,000"], + ["Power (1.5W × 1000 × 5yr)", "~$4,380", "~$4,380", "$0 (identical)"], + ["Failure replacement (1% annual)", "$40,000", "$4,000", "$36,000"], + ["Total 5-year TCO", "$884,380", "$92,380", "$792,000 (89% savings)"], + ], + }, + { + type: "callout", + variant: "key", + text: "At 1000 ports of 10G LR, the 5-year saving from Tier 1 compatible vs. OEM is approximately $792,000. Even accounting for validation lab costs ($10–50K for thorough testing), the ROI is compelling.", + text_de: + "Bei 1.000 Ports mit 10G LR betraegt die 5-Jahres-Ersparnis durch Tier-1-kompatibel vs. OEM ungefaehr 792.000 USD. Selbst unter Beruecksichtigung der Validierungslaborkosten (10.000–50.000 USD fuer gruendliche Tests) ist der ROI ueberzeugend.", + }, + ], + }, + { + heading: "Power Cost at Scale", + heading_de: "Energiekosten in grossem Massstab", + blocks: [ + { + type: "formula", + text: "Annual power cost = P_watts × 8760 h × ($/kWh) / 1000", + desc: "Example: 100 SFP28 25G SR ports at 1.5W each = 150W × 8760h × $0.10/kWh = $131/year. At 1000 ports = $1,310/year — small but non-zero.", + desc_de: + "Beispiel: 100 SFP28 25G SR Ports mit je 1,5W = 150W × 8760h × 0,10 EUR/kWh = 131 EUR/Jahr. Bei 1.000 Ports = 1.310 EUR/Jahr — gering aber nicht null.", + }, + { + type: "p", + text: "For high-power modules like 400G-ZR coherent (~15W per port), power cost becomes significant: 64 ports × 15W = 960W × 8760h × $0.10/kWh = $841/year. OEM vs. compatible modules at the same spec consume identical power — power cost does not differ.", + text_de: + "Fuer leistungsstarke Module wie 400G-ZR Coherent (~15W pro Port) werden Energiekosten erheblich: 64 Ports × 15W = 960W × 8760h × 0,10 EUR/kWh = 841 EUR/Jahr. OEM vs. kompatible Module mit gleicher Spezifikation verbrauchen identische Leistung — Energiekosten unterscheiden sich nicht.", + }, + ], + }, + { + heading: "Spares Strategy", + heading_de: "Ersatzteilstrategie", + blocks: [ + { + type: "ul", + items: [ + "Maintain a 2–5% spare pool per transceiver type in production", + "For critical links (data center spine, internet peering), keep ≥2 spares minimum", + "Store spares in ESD-safe bags at 15–25°C, away from static and humidity", + "Transceivers have no firmware to update — replaced units are plug-and-play (after EEPROM coding matches)", + "Review spare pool annually against installed base changes", + ], + items_de: [ + "2–5% Ersatzteilpool pro Transceiver-Typ in der Produktion pflegen", + "Fuer kritische Verbindungen (Rechenzentrum-Spine, Internet-Peering) mindestens ≥2 Ersatzteile bereithalten", + "Ersatzteile in ESD-sicheren Beuteln bei 15–25°C, entfernt von Statik und Feuchtigkeit lagern", + "Transceiver haben keine Firmware zum Aktualisieren — ersetzte Einheiten sind Plug-and-Play (nach korrekter EEPROM-Kodierung)", + "Ersatzteilpool jaehrlich gegen Aenderungen des Bestands ueberpruefen", + ], + }, + ], + }, + ], + quiz: [ + { + id: "buy-tco-q1", + lesson: "buy-tco", + q: "For 1000 ports of 10G LR, how much can a company save over 5 years by using Tier 1 compatible vs. OEM?", + q_de: "Bei 1.000 Ports mit 10G LR wie viel kann ein Unternehmen ueber 5 Jahre durch die Verwendung von Tier-1-kompatibel vs. OEM einsparen?", + options: [ + "About $10,000 — not significant", + "About $100,000", + "About $700,000–$800,000", + "Nothing — compatible modules have higher maintenance costs that offset purchase savings", + ], + options_de: [ + "Etwa 10.000 USD — nicht bedeutsam", + "Etwa 100.000 USD", + "Etwa 700.000–800.000 USD", + "Nichts — kompatible Module haben hoehere Wartungskosten, die Kaufersparnisse aufwiegen", + ], + answer: 2, + explanation: + "With OEM 10G LR at $800/port and compatible at $80/port, the initial saving alone is $720,000 at 1000 ports. Add spares and replacements over 5 years = ~$792,000 total saving.", + explanation_de: + "Mit OEM 10G LR zu 800 USD/Port und kompatibel zu 80 USD/Port betraegt die anfaengliche Ersparnis allein 720.000 USD bei 1.000 Ports. Dazu Ersatzteile und Austausch ueber 5 Jahre = ~792.000 USD Gesamtersparnis.", + }, + { + id: "buy-tco-q2", + lesson: "buy-tco", + q: "What spare pool percentage is recommended for production transceivers?", + q_de: "Welcher Ersatzteilpool-Prozentsatz wird fuer Produktionstransceiver empfohlen?", + options: ["0% — replace on failure only", "2–5%", "10–15%", "50% — one spare per port"], + options_de: ["0% — nur bei Ausfall ersetzen", "2–5%", "10–15%", "50% — ein Ersatzgeraet pro Port"], + answer: 1, + explanation: + "A 2–5% spare pool covers typical annual failure rates (0.5–1%) while minimizing tied-up capital. For critical links, maintain at least 2 individual spares regardless of percentage.", + explanation_de: + "Ein 2–5%-Ersatzteilpool deckt typische jaehrliche Ausfallraten (0,5–1%) ab und minimiert gebundenes Kapital. Fuer kritische Verbindungen mindestens 2 individuelle Ersatzteile unabhaengig vom Prozentsatz bereithalten.", + }, + { + id: "buy-tco-q3", + lesson: "buy-tco", + q: "Do OEM and Tier 1 compatible modules of the same spec consume different amounts of power?", + q_de: "Verbrauchen OEM und Tier-1-kompatible Module derselben Spezifikation unterschiedlich viel Strom?", + options: [ + "Yes — OEM modules are more power-efficient", + "Yes — compatible modules consume more power", + "No — modules of the same spec from the same ODM consume identical power", + "It depends on the switch vendor", + ], + options_de: [ + "Ja — OEM-Module sind energieeffizienter", + "Ja — kompatible Module verbrauchen mehr Strom", + "Nein — Module gleicher Spezifikation vom gleichen ODM verbrauchen identisch viel Strom", + "Es haengt vom Switch-Hersteller ab", + ], + answer: 2, + explanation: + "OEM and compatible modules of the same specification from the same ODM are electrically and optically identical — they consume the same power. Power cost does not differ between OEM and Tier 1 compatible.", + explanation_de: + "OEM und kompatible Module gleicher Spezifikation vom gleichen ODM sind elektrisch und optisch identisch — sie verbrauchen denselben Strom. Energiekosten unterscheiden sich nicht zwischen OEM und Tier-1-kompatibel.", + }, + ], + }, +]; diff --git a/packages/api/src/data/training/types.ts b/packages/api/src/data/training/types.ts new file mode 100644 index 0000000..e3a8130 --- /dev/null +++ b/packages/api/src/data/training/types.ts @@ -0,0 +1,55 @@ +export interface TrainingLesson { + id: string; + category: string; + title: string; + title_de: string; + level: "beginner" | "intermediate" | "advanced"; + duration_min: number; + summary: string; + summary_de: string; + sections: TrainingSection[]; + quiz: QuizQuestion[]; + tags: string[]; +} + +export interface TrainingSection { + heading: string; + heading_de?: string; + blocks: ContentBlock[]; +} + +export type ContentBlock = + | { type: "p"; text: string; text_de?: string } + | { type: "h3"; text: string; text_de?: string } + | { type: "table"; headers: string[]; headers_de?: string[]; rows: string[][] } + | { type: "ul"; items: string[]; items_de?: string[] } + | { + type: "callout"; + variant: "info" | "warning" | "tip" | "key"; + text: string; + text_de?: string; + } + | { type: "code"; text: string } + | { type: "formula"; text: string; desc: string; desc_de?: string }; + +export interface QuizQuestion { + id: string; + lesson: string; + q: string; + q_de?: string; + options: [string, string, string, string]; + options_de?: [string, string, string, string]; + answer: 0 | 1 | 2 | 3; + explanation: string; + explanation_de?: string; +} + +export interface TrainingCategory { + id: string; + title: string; + title_de: string; + icon: string; + description: string; + description_de: string; + lessons: TrainingLesson[]; +} diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts index c8cbd96..9f485fe 100644 --- a/packages/api/src/index.ts +++ b/packages/api/src/index.ts @@ -42,6 +42,7 @@ import { bulkPriceRouter } from "./routes/bulk-price"; import { vendorReliabilityRouter } from "./routes/vendor-reliability"; import { priceForecastRouter } from "./routes/price-forecast"; import { priceMatrixRouter } from "./routes/price-matrix"; +import { trainingRouter } from "./routes/training"; const app = express(); @@ -74,6 +75,7 @@ app.use("/api", (req, res, next) => { if (req.path.startsWith("/proxy")) return next(); if (req.path.startsWith("/hot-topics")) return next(); if (req.path.startsWith("/price-comparison")) return next(); + if (req.path.startsWith("/training")) return next(); requireAuth(req, res, next); }); @@ -122,6 +124,8 @@ app.use("/api/vendors/reliability", vendorReliabilityRouter); app.use("/api/price-forecast", priceForecastRouter); // Price matrix / heat map (J) app.use("/api/price-matrix", priceMatrixRouter); +// Transceiver Academy — public training content (no auth required) +app.use("/api/training", trainingRouter); // Dashboard (static HTML) app.use("/dashboard", express.static(join(__dirname, "..", "..", "dashboard"))); diff --git a/packages/api/src/routes/training.ts b/packages/api/src/routes/training.ts new file mode 100644 index 0000000..3782cc7 --- /dev/null +++ b/packages/api/src/routes/training.ts @@ -0,0 +1,146 @@ +import { Router } from "express"; +import { standardsLessons } from "../data/training/standards"; +import { formFactorLessons } from "../data/training/form-factors"; +import { switchesLessons } from "../data/training/switches"; +import { infrastructureLessons } from "../data/training/infrastructure"; +import { testingBuyingLessons } from "../data/training/testing-buying"; +import type { TrainingLesson } from "../data/training/types"; + +export const trainingRouter = Router(); + +// ── Aggregate all lessons ──────────────────────────────────────────────────── + +const ALL_LESSONS: TrainingLesson[] = [ + ...standardsLessons, + ...formFactorLessons, + ...switchesLessons, + ...infrastructureLessons, + ...testingBuyingLessons, +]; + +// ── Category metadata ──────────────────────────────────────────────────────── + +const CATEGORIES = [ + { + id: "standards", + title: "Standards", + title_de: "Standards", + icon: "📋", + description: "IEEE 802.3, MSA, DOM/DDMI — the foundation of optical networking", + description_de: "IEEE 802.3, MSA, DOM/DDMI — das Fundament optischer Netzwerke", + }, + { + id: "form-factors", + title: "Form Factors", + title_de: "Formfaktoren", + icon: "🔌", + description: "SFP, QSFP-DD, OSFP, connectors — physical housings and interfaces", + description_de: "SFP, QSFP-DD, OSFP, Stecker — physikalische Gehäuse und Interfaces", + }, + { + id: "switches", + title: "Switches & Compatibility", + title_de: "Switches & Kompatibilität", + icon: "🖥️", + description: "Vendor lock, FEC configuration, Cisco / Juniper / Arista CLI", + description_de: "Vendor-Lock, FEC-Konfiguration, Cisco / Juniper / Arista CLI", + }, + { + id: "infrastructure", + title: "Fiber & Infrastructure", + title_de: "Glasfaser & Infrastruktur", + icon: "🔧", + description: "MMF/SMF grades, link budget math, MPO, WDM wavelength planning", + description_de: "MMF/SMF-Typen, Link-Budget-Berechnung, MPO, WDM-Wellenlägenplanung", + }, + { + id: "testing-buying", + title: "Testing & Buying", + title_de: "Testen & Einkaufen", + icon: "🔬", + description: "Test equipment, OEM vs. compatible, datasheet interpretation, TCO", + description_de: "Messgeräte, OEM vs. kompatibel, Datenblatt-Interpretation, TCO", + }, +]; + +// ── GET /api/training/categories ───────────────────────────────────────────── + +trainingRouter.get("/categories", (_req, res) => { + const result = CATEGORIES.map((cat) => ({ + ...cat, + lesson_count: ALL_LESSONS.filter((l) => l.category === cat.id).length, + total_duration_min: ALL_LESSONS + .filter((l) => l.category === cat.id) + .reduce((sum, l) => sum + l.duration_min, 0), + quiz_count: ALL_LESSONS + .filter((l) => l.category === cat.id) + .reduce((sum, l) => sum + l.quiz.length, 0), + })); + res.json(result); +}); + +// ── GET /api/training/lessons?category= ────────────────────────────────────── + +trainingRouter.get("/lessons", (req, res) => { + const { category } = req.query; + let lessons = ALL_LESSONS; + if (category && typeof category === "string") { + lessons = lessons.filter((l) => l.category === category); + } + // Return metadata only — omit heavy sections + quiz content + res.json( + lessons.map(({ id, category, title, title_de, level, duration_min, summary, summary_de, tags }) => ({ + id, + category, + title, + title_de, + level, + duration_min, + summary, + summary_de, + tags, + })) + ); +}); + +// ── GET /api/training/lessons/:id ──────────────────────────────────────────── + +trainingRouter.get("/lessons/:id", (req, res) => { + const lesson = ALL_LESSONS.find((l) => l.id === req.params.id); + if (!lesson) { + return res.status(404).json({ error: "Lesson not found" }); + } + return res.json(lesson); +}); + +// ── GET /api/training/quiz?lesson=&category= ───────────────────────────────── + +trainingRouter.get("/quiz", (req, res) => { + const { lesson, category } = req.query; + let questions = ALL_LESSONS.flatMap((l) => l.quiz); + + if (lesson && typeof lesson === "string") { + questions = questions.filter((q) => q.lesson === lesson); + } else if (category && typeof category === "string") { + const catLessonIds = ALL_LESSONS.filter((l) => l.category === category).map((l) => l.id); + questions = questions.filter((q) => catLessonIds.includes(q.lesson)); + } + + res.json(questions); +}); + +// ── GET /api/training/stats ─────────────────────────────────────────────────── + +trainingRouter.get("/stats", (_req, res) => { + res.json({ + total_lessons: ALL_LESSONS.length, + total_quiz_questions: ALL_LESSONS.reduce((s, l) => s + l.quiz.length, 0), + total_duration_min: ALL_LESSONS.reduce((s, l) => s + l.duration_min, 0), + categories: CATEGORIES.length, + levels: { + beginner: ALL_LESSONS.filter((l) => l.level === "beginner").length, + intermediate: ALL_LESSONS.filter((l) => l.level === "intermediate").length, + advanced: ALL_LESSONS.filter((l) => l.level === "advanced").length, + }, + }); +}); diff --git a/packages/dashboard/index.html b/packages/dashboard/index.html index 6ded9cc..64369d8 100644 --- a/packages/dashboard/index.html +++ b/packages/dashboard/index.html @@ -1330,77 +1330,79 @@ - +