From bfb43809a8943f497fe0f3cbdd36e0891892248d Mon Sep 17 00:00:00 2001 From: Rene Fichtmueller Date: Sat, 25 Apr 2026 20:58:45 +0200 Subject: [PATCH] feat: standards audit + form factors reference MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Migration 100: adds `description` column to standards (plain-language DE·EN for non-technical colleagues), fills all 63 standards incl. complete 200G tier (SR4/DR4/FR4/LR4/ER4/CR4), copper DAC variants, PON family (GPON/XG-PON1/NG-PON2/25G-PON), 1.6T emerging standard - Migration 101: new form_factors table — 20 entries covering SFP family (SFP→SFP112), QSFP family (QSFP+→QSFP-DD800), OSFP family (OSFP→OSFP224), CFP family, legacy XFP/CXP with full_name, speed, channels, status, supersedes chain, and bilingual plain-language descriptions - GET /api/form-factors — new endpoint, returns all form factors with transceiver_count join - GET /api/form-factors/:name — single form factor detail Dashboard Standards tab: - DB description shown as subtitle in standards table rows - Full DE + EN description in standard detail panel - New Form Factors grid section with status badges, speed, channel info, family color coding, supersedes chain - openFormFactorDetail() panel with full specs + transceiver link - Search extended to match description + notes fields --- packages/api/src/index.ts | 3 + packages/api/src/routes/form-factors.ts | 73 ++++++ packages/dashboard/index.html | 183 ++++++++++++- sql/100-standards-descriptions-and-gaps.sql | 277 ++++++++++++++++++++ sql/101-form-factors-table.sql | 247 +++++++++++++++++ 5 files changed, 777 insertions(+), 6 deletions(-) create mode 100644 packages/api/src/routes/form-factors.ts create mode 100644 sql/100-standards-descriptions-and-gaps.sql create mode 100644 sql/101-form-factors-table.sql diff --git a/packages/api/src/index.ts b/packages/api/src/index.ts index c161b1b..153b511 100644 --- a/packages/api/src/index.ts +++ b/packages/api/src/index.ts @@ -33,6 +33,7 @@ import { stockRouter } from "./routes/stock"; import { priceComparisonRouter } from "./routes/price-comparison"; import { selflearningRouter } from "./routes/selflearning"; import { internalDemandRouter } from "./routes/internal-demand"; +import { formFactorsRouter } from "./routes/form-factors"; const app = express(); @@ -94,6 +95,8 @@ app.use("/api/review", reviewRouter); app.use("/api/stock", stockRouter); app.use("/api/price-comparison", priceComparisonRouter); app.use("/api/selflearning", selflearningRouter); +// Form Factors reference +app.use("/api/form-factors", formFactorsRouter); // Internal-only — restricted to localhost / LAN by the router itself app.use("/api/internal/demand", internalDemandRouter); diff --git a/packages/api/src/routes/form-factors.ts b/packages/api/src/routes/form-factors.ts new file mode 100644 index 0000000..43cc5b1 --- /dev/null +++ b/packages/api/src/routes/form-factors.ts @@ -0,0 +1,73 @@ +/** + * Form Factors API + * ───────────────────────────────────────────────────────────────────────────── + * Routes: + * GET /api/form-factors — All form factors with descriptions + * GET /api/form-factors/:name — Single form factor by name (e.g. QSFP28) + */ + +import { Router, Request, Response } from "express"; +import { pool } from "../db/client"; + +export const formFactorsRouter = Router(); + +// GET /api/form-factors +formFactorsRouter.get("/", async (_req: Request, res: Response) => { + try { + const { rows } = await pool.query(` + SELECT + ff.*, + COUNT(t.id)::int AS transceiver_count + FROM form_factors ff + LEFT JOIN transceivers t ON t.form_factor = ff.name + GROUP BY ff.id + ORDER BY + CASE ff.status + WHEN 'current' THEN 1 + WHEN 'emerging' THEN 2 + WHEN 'legacy' THEN 3 + WHEN 'obsolete' THEN 4 + ELSE 5 + END, + ff.max_speed_gbps DESC NULLS LAST, + ff.name + `); + res.json({ success: true, data: rows, total: rows.length }); + } catch (err) { + console.error("GET /api/form-factors error:", err); + res.status(500).json({ success: false, error: "Internal server error" }); + } +}); + +// GET /api/form-factors/:name +formFactorsRouter.get("/:name", async (req: Request, res: Response) => { + try { + const { rows } = await pool.query(` + SELECT + ff.*, + COUNT(t.id)::int AS transceiver_count, + COALESCE( + json_agg(DISTINCT jsonb_build_object( + 'id', t.id, + 'part_number', t.part_number, + 'speed_gbps', t.speed_gbps, + 'fiber_type', t.fiber_type, + 'reach_label', t.reach_label + )) FILTER (WHERE t.id IS NOT NULL), + '[]' + ) AS sample_transceivers + FROM form_factors ff + LEFT JOIN transceivers t ON t.form_factor = ff.name + WHERE LOWER(ff.name) = LOWER($1) + GROUP BY ff.id + `, [req.params.name]); + + if (!rows.length) { + return res.status(404).json({ success: false, error: "Form factor not found" }); + } + res.json({ success: true, data: rows[0] }); + } catch (err) { + console.error(`GET /api/form-factors/${req.params.name} error:`, err); + res.status(500).json({ success: false, error: "Internal server error" }); + } +}); diff --git a/packages/dashboard/index.html b/packages/dashboard/index.html index 3b27fe1..355ed6a 100644 --- a/packages/dashboard/index.html +++ b/packages/dashboard/index.html @@ -1145,7 +1145,7 @@
- + @@ -1153,6 +1153,28 @@
Standard NameSpeedForm Factor(s)Standard NameSpeedForm Factor(s) Max ReachFiberWavelength IEEE RefBody · YearStatusTransceivers
+ + +
+
+

Modul-Bauformen (Form Factors)

+ Erklärung für nicht-technische Kolleg:innen + +
+
+
+ Lade Bauformen… +
+
+
@@ -4593,6 +4615,7 @@ document.addEventListener('click', function(e) { // ── STANDARDS TAB ──────────────────────────────────────────────────────────── var _allStandards = []; +var _allFormFactors = []; async function loadStandardsList() { var tbody = el('std-table'); @@ -4620,11 +4643,139 @@ async function loadStandardsList() { }).catch(function() {}); if (_allStandards.length === 0) { - tbody.innerHTML = 'Loading…'; + tbody.innerHTML = 'Loading…'; var data = await api('/api/standards').catch(function() { return {}; }); _allStandards = data.data || []; } filterStandardsTable(); + // Also load form factors (lazy) + if (_allFormFactors.length === 0) loadFormFactors(); +} + +async function loadFormFactors() { + if (_allFormFactors.length > 0) { renderFormFactors(); return; } + var data = await api('/api/form-factors').catch(function() { return {}; }); + _allFormFactors = data.data || []; + renderFormFactors(); +} + +function filterFormFactors() { + var family = el('ff-family-filter') ? el('ff-family-filter').value : ''; + var filtered = family + ? _allFormFactors.filter(function(f) { return (f.family || '') === family; }) + : _allFormFactors; + renderFormFactors(filtered); +} + +function renderFormFactors(items) { + var grid = el('ff-grid'); + if (!grid) return; + var list = items || _allFormFactors; + if (!list.length) { + grid.innerHTML = '
Keine Bauformen geladen.
'; + return; + } + var statusColors = { current: '#2d6a4f', emerging: '#e6a800', legacy: '#888', obsolete: '#c1121f' }; + var statusLabels = { current: 'Aktuell', emerging: 'Neu/Emerging', legacy: 'Legacy', obsolete: 'Veraltet' }; + var familyColors = { 'SFP family': '#0ea5e9', 'QSFP family': '#6366f1', 'OSFP family': '#FF8100', 'CFP family': '#2d6a4f', 'legacy': '#888' }; + grid.innerHTML = list.map(function(f) { + var sCl = statusColors[f.status] || '#888'; + var fCl = familyColors[f.family] || '#888'; + var sLbl = statusLabels[f.status] || f.status || ''; + var maxSpd = f.max_speed_gbps >= 1000 ? (f.max_speed_gbps/1000) + 'T' : (f.max_speed_gbps || '?') + 'G'; + // Description: show first part (DE) if bilingual + var descFull = f.description || ''; + var descDE = descFull.split('//')[0].trim(); + var descEN = descFull.includes('//') ? descFull.split('//')[1].trim() : ''; + var supersedes = Array.isArray(f.supersedes) ? f.supersedes.filter(Boolean) : []; + return '
' + // Header row + + '
' + + '' + esc(f.name) + '' + + '' + esc(f.family || '') + '' + + '
' + // Full name + speed badge + + '
' + + '' + esc(f.full_name || '') + '' + + '' + esc(sLbl) + '' + + '
' + // Speed + channels + + '
' + + '' + maxSpd + '' + + (f.channels ? '' + f.channels + ' Kanal' + (f.channels > 1 ? 'e' : '') + '' : '') + + (f.channel_rate_gbps ? 'je ' + f.channel_rate_gbps + 'G' : '') + + (f.year_introduced ? 'seit ' + f.year_introduced + '' : '') + + '
' + // Description (DE) + + (descDE ? '
' + esc(descDE) + '
' : '') + // Supersedes + + (supersedes.length ? '
Ersetzt: ' + supersedes.map(function(s) { return '' + esc(s) + ''; }).join(', ') + '
' : '') + + (f.transceiver_count > 0 ? '
' + f.transceiver_count + ' Transceiver in Datenbank
' : '') + + '
'; + }).join(''); +} + +function openFormFactorDetail(name) { + var f = _allFormFactors.find(function(x) { return x.name === name; }); + if (!f) return; + var fCl = { 'SFP family': '#0ea5e9', 'QSFP family': '#6366f1', 'OSFP family': '#FF8100', 'CFP family': '#2d6a4f', 'legacy': '#888' }[f.family] || '#888'; + var descFull = f.description || ''; + var descDE = descFull.split('//')[0].trim(); + var descEN = descFull.includes('//') ? descFull.split('//')[1].trim() : ''; + var maxSpd = f.max_speed_gbps >= 1000 ? (f.max_speed_gbps/1000) + 'T' : (f.max_speed_gbps || '?') + 'G'; + var supersedes = Array.isArray(f.supersedes) ? f.supersedes.filter(Boolean) : []; + var h = ''; + h += '
'; + h += '' + esc(f.name) + ''; + h += '' + esc(f.full_name || '') + ''; + h += '
'; + // Plain-language description + if (descDE) { + h += '
'; + h += '
Was ist das?
'; + h += '
' + esc(descDE) + '
'; + if (descEN) { + h += '
' + esc(descEN) + '
'; + } + h += '
'; + } + // Specs grid + var statusLabels = { current: 'Aktuell', emerging: 'Neu / Emerging', legacy: 'Legacy', obsolete: 'Veraltet / Obsolete' }; + var specs = [ + ['Max. Geschwindigkeit', maxSpd], + ['Kanäle', f.channels ? f.channels + ' × ' + (f.channel_rate_gbps || '?') + 'G' : '—'], + ['Familie', f.family || '—'], + ['Status', statusLabels[f.status] || f.status || '—'], + ['Hot-swap', f.hot_swap ? 'Ja — im laufenden Betrieb tauschbar' : 'Nein'], + ['Stecker (typisch)', f.connector_type || '—'], + ['Auf dem Markt seit', f.year_introduced ? String(f.year_introduced) : '—'], + ['Ersetzt durch', f.superseded_by || '—'], + ['Größe (B×T)', (f.physical_width_mm && f.physical_height_mm) ? f.physical_width_mm + 'mm × ' + f.physical_height_mm + 'mm' : '—'] + ]; + h += '
'; + specs.forEach(function(sp) { + if (!sp[1] || sp[1] === '—') return; + h += '
' + + '
' + esc(sp[0]) + '
' + + '
' + esc(String(sp[1])) + '
' + + '
'; + }); + h += '
'; + if (supersedes.length) { + h += '
Ersetzt diese Bauform(en):
'; + h += '
'; + supersedes.forEach(function(s) { h += '' + esc(s) + ''; }); + h += '
'; + } + if (f.transceiver_count > 0) { + h += ''; + } + if (f.notes) { + h += '
Technische Hinweise: ' + esc(f.notes) + '
'; + } + openPanel(f.name + ' — Modul-Bauform', h); } function filterStandardsTable() { @@ -4637,7 +4788,9 @@ function filterStandardsTable() { var matchQ = !q || (s.name || '').toLowerCase().includes(q) || (s.ieee_reference || '').toLowerCase().includes(q) || ffStr.toLowerCase().includes(q) - || (s.speed || '').toLowerCase().includes(q); + || (s.speed || '').toLowerCase().includes(q) + || (s.description || '').toLowerCase().includes(q) + || (s.notes || '').toLowerCase().includes(q); var matchS = !speed || String(s.speed_gbps) === speed; return matchQ && matchS; }); @@ -4662,8 +4815,15 @@ function filterStandardsTable() { ? '' + esc(s.status) + '' : ''; var sidx = _allStandards.indexOf(s); + // Show description (DE part before //) as subtitle + var descFull = s.description || ''; + var descDE = descFull.split('//')[0].trim(); + // Shorten to ~80 chars for table + var descShort = descDE.length > 85 ? descDE.slice(0, 82) + '…' : descDE; + var nameCell = '
' + esc(s.name || '—') + '
' + + (descShort ? '
' + esc(descShort) + '
' : ''); return '' - + '' + esc(s.name || '—') + '' + + '' + nameCell + '' + '' + (s.speed_gbps || '—') + 'G' + '' + (ffBadges || '') + '' + '' + esc(s.max_reach_label || '—') + '' @@ -4797,6 +4957,10 @@ async function openStandardDetail(idx) { var speedColors = { 1600: '#7c3aed', 800: '#c1121f', 400: '#FF8100', 200: '#e6a800', 100: '#2d6a4f', 40: '#4287f5', 25: '#0ea5e9', 10: '#888', 1: '#555' }; var col = speedColors[spd] || '#888'; var ffs = Array.isArray(s.form_factors) ? s.form_factors : [s.form_factors || '']; + // Prefer DB description if available, fall back to generated explanation + var dbDescFull = s.description || ''; + var dbDescDE = dbDescFull.split('//')[0].trim(); + var dbDescEN = dbDescFull.includes('//') ? dbDescFull.split('//')[1].trim() : ''; var explained = genStdPlainExplanation(s); var useCases = STD_USE_CASES[spd] || STD_USE_CASES[10]; @@ -4815,10 +4979,17 @@ async function openStandardDetail(idx) { h += '
' + esc(explained.headline) + '
'; h += ''; - // Plain-language explanation + // Plain-language explanation — DB description preferred, generated as fallback h += '
'; h += '
Was ist das?
'; - h += '
' + explained.body + '
'; + if (dbDescDE) { + h += '
' + esc(dbDescDE) + '
'; + if (dbDescEN) { + h += '
' + esc(dbDescEN) + '
'; + } + } else { + h += '
' + explained.body + '
'; + } h += '
'; // Key specs grid diff --git a/sql/100-standards-descriptions-and-gaps.sql b/sql/100-standards-descriptions-and-gaps.sql new file mode 100644 index 0000000..4bc0e2a --- /dev/null +++ b/sql/100-standards-descriptions-and-gaps.sql @@ -0,0 +1,277 @@ +-- Migration 100: Plain-Language Descriptions + Missing Standards +-- ───────────────────────────────────────────────────────────────────────────── +-- 1. Adds `description` column (TEXT) to the standards table +-- — written for non-technical colleagues, bilingual (DE · EN) +-- 2. Updates all 40 existing standards with plain-language descriptions +-- 3. Inserts all missing standards (200G tier, PON, copper/DAC, extended-reach) +-- +-- Total after migration: ~70+ standards covering 1G → 1.6T +-- ───────────────────────────────────────────────────────────────────────────── + +-- Step 1: Add description column +ALTER TABLE standards + ADD COLUMN IF NOT EXISTS description TEXT; + +-- ───────────────────────────────────────────────────────────────────────────── +-- Step 2: Update existing standards with plain-language descriptions +-- ───────────────────────────────────────────────────────────────────────────── + +-- 1G Standards +UPDATE standards SET description = 'Kurzstrecken-Gigabit über Multi-Mode-Glasfaser. Reichweite bis 550m — typisch in Bürogebäuden und Campus-Netzwerken. Der meistgenutzte 1G-Glasfaser-Standard weltweit. // Short-reach Gigabit Ethernet over multi-mode fiber. Up to 550m — the dominant 1G fiber standard for office buildings and campus networks.' WHERE name = '1000BASE-SX'; +UPDATE standards SET description = 'Langstrecken-Gigabit über Einzel-Modus-Glasfaser (SMF). Reichweite bis 10km — verbindet Gebäude, Stockwerke oder Standorte. Der Standard für GbE auf größeren Geländen. // Long-reach Gigabit Ethernet over single-mode fiber. Up to 10km — connects buildings, floors, or remote sites across a campus.' WHERE name = '1000BASE-LX'; +UPDATE standards SET description = 'Wie 1000BASE-LX, aber formal für Zugangsnetzwerke definiert (EFM-Standard für Richtfunk/FTTH). Identische Hardware, nur andere formale Spezifikation. // Same as LX but formally defined for access networks (EFM). Identical hardware, different formal scope — used in FTTx access deployments.' WHERE name = '1000BASE-LX10'; +UPDATE standards SET description = 'BiDi-Gigabit: Senden und Empfangen über eine einzige Glasfaser. Halbiert den Glasfaserbedarf bei FTTH-Netzwerken. Die Hin- und Rückrichtung nutzen verschiedene Wellenlängen (1310/1490nm). // Bidirectional Gigabit over a single fiber strand using two wavelengths. Halves fiber costs — one cable instead of two. Standard for fiber-to-the-home (FTTH) last-mile.' WHERE name = '1000BASE-BX10'; +UPDATE standards SET description = '10G-PON: Passives optisches Netzwerk mit 10 Gbit/s, das ISPs für Hochgeschwindigkeits-Breitband (z.B. 1-Gbit-Heimanschlüsse) nutzen. Upstream und Downstream sind symmetrisch 10G. // 10G symmetric passive optical network — used by ISPs to deliver 1G+ broadband to homes and businesses. Both upload and download run at 10G.' WHERE name = 'XGS-PON'; + +-- 10G Standards +UPDATE standards SET description = 'Kurzstrecken-10-Gigabit über Multi-Mode-Glasfaser. Reichweite 100–300m — der Standard für Server-Anbindungen im Rechenzentrum. Läuft auf günstigem OM3/OM4-Kabel. // Short-reach 10G over multi-mode fiber. 100–300m — the backbone of server-to-switch connections in data centers. Uses affordable OM3/OM4 cable.' WHERE name = '10GBASE-SR'; +UPDATE standards SET description = 'Langstrecken-10-Gigabit über Einzel-Modus-Glasfaser. Reichweite 10km — verbindet verschiedene Gebäude oder Etagen. Der häufigste Weitverbindungs-10G-Standard. // Long-reach 10G over single-mode fiber. Up to 10km — connects separate buildings or data halls. The most common long-distance 10G interface.' WHERE name = '10GBASE-LR'; +UPDATE standards SET description = 'Erweiterte Reichweite: 10-Gigabit über 40km Einzel-Modus-Glasfaser. Für Metro-Strecken und Campus-Verbindungen, wo 10km nicht ausreichen. // Extended-reach 10G over single-mode fiber. Up to 40km — used for metro links, inter-campus connections, and multi-building deployments.' WHERE name = '10GBASE-ER'; +UPDATE standards SET description = 'Herstellerstandard (kein offizieller IEEE-Standard): 10-Gigabit über 80km Glasfaser. Für Stadtverbindungen und Fernstrecken ohne Signalverstärker. // Vendor de-facto standard: 10G over 80km single-mode fiber. Used for city-scale links and long-haul connections where amplifiers are unavailable.' WHERE name = '10GBASE-ZR'; +UPDATE standards SET description = 'Speziell für ältere Multi-Mode-Glasfaser (OM1/OM2) entwickelt. Reichweite 220m — ermöglicht 10G-Upgrade ohne Austausch der vorhandenen Legacy-Verkabelung. // Designed for legacy OM1/OM2 multi-mode fiber. 220m reach — enables 10G upgrades without replacing existing cable infrastructure.' WHERE name = '10GBASE-LRM'; +UPDATE standards SET description = '10-Gigabit über Standard-Kupferkabel (Cat6A). Reichweite 100m — ermöglicht 10G-Speeds mit vorhandener Kupferverkabelung. Höherer Stromverbrauch als Glasfaser-Optionen. // 10G Ethernet over copper cable (Cat6A). Up to 100m — enables 10G speeds using existing copper infrastructure. Higher power than fiber options.' WHERE name = '10GBASE-T'; + +-- 25G Standards +UPDATE standards SET description = 'Kurzstrecken-25-Gigabit über Multi-Mode-Glasfaser. Reichweite 70–100m — seit 2017 der Standardanschluss für Server-Netzwerkkarten im Rechenzentrum. Löst 10G als ToR-Standard ab. // Short-reach 25G over multi-mode fiber. 70–100m — the dominant server NIC uplink standard since 2017. Replaced 10G as the default top-of-rack server connection.' WHERE name = '25GBASE-SR'; +UPDATE standards SET description = 'Langstrecken-25-Gigabit über Einzel-Modus-Glasfaser. Reichweite 10km — für 25G-Verbindungen über größere Distanzen als OM4 erlaubt. // Long-reach 25G over single-mode fiber. Up to 10km — used where servers need longer fiber runs than the MMF-based SR variant allows.' WHERE name = '25GBASE-LR'; +UPDATE standards SET description = 'Erweiterte Reichweite: 25-Gigabit über 40km Einzel-Modus-Glasfaser. Für 25G-Strecken über mehrere Gebäude oder Metro-Distanzen. // Extended-reach 25G over single-mode fiber. Up to 40km — for 25G links spanning multiple buildings or metro distances.' WHERE name = '25GBASE-ER'; + +-- 40G Standards +UPDATE standards SET description = '40-Gigabit mit 4 parallelen Glasfaser-Kanälen (8-Faser-MPO-Kabel). Reichweite 100–150m — war der Standard für 40G-Verbindungen im Rechenzentrum, heute durch 100G abgelöst. // 40G over 4 parallel fiber lanes (8-fiber MPO cable). 100–150m — was the dominant 40G data center standard, now largely replaced by 100G.' WHERE name = '40GBASE-SR4'; +UPDATE standards SET description = '40-Gigabit mit 4 WDM-Wellenlängen über eine Glasfaserleitung. Reichweite 10km — verbindet Gebäude mit normalem LC-Duplex-Stecker. Günstig weil kein Parallelkabel nötig. // 40G using 4 WDM wavelengths over a single fiber pair. Up to 10km — connects buildings with a standard duplex LC cable. Cost-effective long-reach 40G.' WHERE name = '40GBASE-LR4'; +UPDATE standards SET description = 'Erweiterte Reichweite: 40-Gigabit über 40km Einzel-Modus-Glasfaser. Für 40G-Strecken jenseits der LR4-Reichweite. // Extended-reach 40G over single-mode fiber. Up to 40km — for 40G links beyond the 10km LR4 range.' WHERE name = '40GBASE-ER4'; +UPDATE standards SET description = 'Paralleloptik-40G über 4 einzelne Einzel-Modus-Fasern (8-Faser-MPO, 10km). Ähnlich wie SR4, aber für SMF statt MMF — bei Systemen die SMF-MPO-Kabel nutzen. // Parallel 40G over 4 single-mode fibers (8-fiber MPO). Like SR4 but for single-mode — used in systems that require SMF with MPO connectors.' WHERE name = '40GBASE-PLR4'; + +-- 100G Standards +UPDATE standards SET description = 'Kurzstrecken-100-Gigabit mit 4 parallelen Glasfaser-Kanälen (je 25G). Reichweite 70–100m — der Standard für Server- und Spine-Verbindungen in modernen Hyperscale-Rechenzentren. // Short-reach 100G using 4 parallel 25G fiber lanes. 70–100m — the dominant 100G standard for server and spine connections in modern hyperscale data centers.' WHERE name = '100GBASE-SR4'; +UPDATE standards SET description = 'Langstrecken-100-Gigabit mit 4 WDM-Wellenlängen (je 25G). Reichweite 10km — verbindet Rechenzentrumsgebäude. Häufigste Langstrecken-100G-Schnittstelle weltweit. // Long-reach 100G using 4 WDM wavelengths at 25G each. Up to 10km — connects data hall buildings. The most widely deployed long-distance 100G interface globally.' WHERE name = '100GBASE-LR4'; +UPDATE standards SET description = 'Erweiterte Reichweite: 100-Gigabit über 40km Einzel-Modus-Glasfaser (4 WDM-Kanäle). Für 100G-Strecken jenseits der LR4-Reichweite, z.B. zwischen weit entfernten Standorten. // Extended-reach 100G over 40km single-mode fiber (4 WDM channels). For 100G links beyond LR4 range, e.g. between distant sites.' WHERE name = '100GBASE-ER4'; +UPDATE standards SET description = 'Mittlere Reichweite: 100-Gigabit mit einem einzigen Laserstrahl (Single-Lambda). Reichweite 2km — einfacheres Design als LR4 (ein Laser statt vier), günstiger für mittlere Distanzen. // Medium-reach 100G using a single laser wavelength. Up to 2km — simpler design than LR4 (one laser instead of four), cost-effective for medium distances.' WHERE name = '100GBASE-FR'; +UPDATE standards SET description = 'Paralleloptik-100G über 4 parallele Einzel-Modus-Fasern (MPO-Stecker). Reichweite 500m — kostengünstiges Design für 100G innerhalb eines Geländes. // Parallel 100G over 4 single-mode fibers with MPO connector. Up to 500m — cost-effective 100G design for intra-campus connections.' WHERE name = '100GBASE-DR'; +UPDATE standards SET description = 'Langstrecken-100G mit einem einzigen Laser (Single-Lambda). Reichweite 10km über SMF — modernere, einfachere Alternative zu LR4 für neue Deployments. // Long-reach 100G using a single high-speed laser. Up to 10km over SMF — a simpler, more modern alternative to LR4 for new deployments.' WHERE name = '100GBASE-LR'; +UPDATE standards SET description = 'Mittlere Reichweite: 100-Gigabit mit 4 groben WDM-Wellenlängen. Reichweite 2km — günstiger als LR4 für kurze bis mittlere Strecken dank einfacherer Laser-Technologie. // 100G using 4 coarse WDM wavelengths. Up to 2km — lower cost than LR4 for short-to-medium distances thanks to simpler laser technology.' WHERE name = '100GBASE-CWDM4'; +UPDATE standards SET description = 'Paralleloptik-100G über 4 einzelne SMF-Fasern (MPO-12-Kabel). Reichweite 500m — kostengünstige 100G-Option für Gebäude-interne Verbindungen. // Parallel single-mode 100G over 4 SMF fibers (MPO-12 cable). Up to 500m — cost-effective 100G option for intra-building connections.' WHERE name = '100GBASE-PSM4'; +UPDATE standards SET description = 'Kohärente Langstrecken-100G-Übertragung bis 1000km+ (mit EDFA-Verstärkern). Nutzt komplexe Modulationsverfahren wie bei Mobilfunk — für Telko-Backbone-Netze und Trans-Kontinent-Strecken. // Coherent 100G for metro and long-haul networks. Works up to 1000km+ with amplification — carrier-grade for telecom backbone and trans-continental links.' WHERE name = '100G-ZR(OIF)'; +UPDATE standards SET description = 'Abstimmbares (tunable) 100G-Modul für DWDM-Netzwerke. Die Wellenlänge kann auf jeden ITU-T-Kanal eingestellt werden — ein Modultyp deckt alle WDM-Netzwerk-Slots ab und vereinfacht das Ersatzteilmanagement. // Tunable 100G module for DWDM networks. Wavelength is adjustable to any ITU-T channel — one module type covers all WDM slots, simplifying spares inventory.' WHERE name = '100G DWDM Tunable'; + +-- 400G Standards +UPDATE standards SET description = 'Kurzstrecken-400G mit 4 parallelen MMF-Kanälen (4×100G, SWDM4). Reichweite 150m — nutzt Multi-Mode-Glasfaser für 400G in Rechenzentren. // Short-reach 400G using 4 WDM lanes over multi-mode fiber (SWDM4 technique). Up to 150m — enables 400G over standard OM4 multi-mode cabling.' WHERE name = '400GBASE-SR4.2'; +UPDATE standards SET description = '400-Gigabit mit 8 parallelen MMF-Kanälen. Reichweite 100m — benötigt 16-Faser-MPO-Kabel. Für sehr dichte 400G-Kurzstrecken-Verbindungen. // 400G using 8 parallel multi-mode fiber lanes. Up to 100m — requires 16-fiber MPO cable. For high-density 400G short-reach connections.' WHERE name = '400GBASE-SR8'; +UPDATE standards SET description = 'Paralleloptik-400G über 4 parallele SMF-Fasern (MPO-12). Reichweite 500m — für 400G innerhalb eines Hyperscale-Geländes oder zwischen benachbarten Gebäuden. // Parallel 400G over 4 single-mode fibers (MPO-12 cable). Up to 500m — used for intra-campus 400G in hyperscale environments.' WHERE name = '400GBASE-DR4'; +UPDATE standards SET description = 'Mittlere Reichweite: 400-Gigabit mit 4 WDM-Wellenlängen (je 100G). Reichweite 2km — kostengünstige 400G-Option für mittlere Distanzen mit LC-Duplex-Stecker. // Medium-reach 400G using 4 WDM wavelengths (100G each). Up to 2km — cost-effective 400G with standard LC duplex connector.' WHERE name = '400GBASE-FR4'; +UPDATE standards SET description = 'Langstrecken-400G mit 4 WDM-Wellenlängen (je 100G). Reichweite 10km — Standard für 400G zwischen Gebäuden und Rechenzentrumsstandorten. // Long-reach 400G using 4 WDM wavelengths (100G each). Up to 10km — the standard for 400G inter-building and inter-site connections.' WHERE name = '400GBASE-LR4'; +UPDATE standards SET description = 'Kohärente Langstrecken-400G bis 1000km+ (pluggable). Das erste weit verbreitete vollständig steckbare kohärente Modul — revolutionierte das Telko-Netz indem DWDM-Transponder in kleinen QSFP-DD-Gehäusen möglich wurden. // Coherent 400G up to 1000km+ (fully pluggable). The first widely deployed pluggable coherent module — revolutionized telecom by fitting DWDM transponder capability into a QSFP-DD package.' WHERE name = '400G-ZR(OIF)'; +UPDATE standards SET description = 'Erweiterte kohärente 400G-Übertragung mit höherer Sendeleistung. Längere Reichweite als ZR — für Metro- und Regional-Netze. Kompatibel mit ZR-Geräten aber höhere Anforderungen an den Empfänger. // Enhanced coherent 400G with higher transmit power. Longer reach than ZR — for metro and regional networks. Compatible with ZR equipment but with higher receiver demands.' WHERE name = '400G-ZR+(OIF)'; +UPDATE standards SET description = 'Abstimmbares (tunable) 400G-Modul für DWDM-Netze. Einstellbare Wellenlänge auf jeden ITU-T-Kanal — für Carrier und Service Provider die flexibles WDM-Netzwerkdesign brauchen. // Tunable 400G module for DWDM networks. Adjustable to any ITU-T channel — for carriers and service providers needing flexible WDM network design.' WHERE name = '400G DWDM Tunable'; + +-- 800G Standards +UPDATE standards SET description = 'Kurzstrecken-800-Gigabit mit 8 parallelen MMF-Kanälen. Reichweite 50m — der neue Standard für AI/ML-Cluster-Verbindungen der nächsten Generation. Benötigt 16-Faser-MPO-Kabel. // Short-reach 800G using 8 parallel multi-mode fiber lanes. Up to 50m — next-generation AI/ML cluster interconnect. Requires 16-fiber MPO cable.' WHERE name = '800GBASE-SR8'; +UPDATE standards SET description = '800-Gigabit mit 8 parallelen SMF-Fasern (MPO-16). Reichweite 500m — Hyperscale-Campus-Verbindungen der nächsten Generation. Zwei Module zusammen entsprechen 1.6T Kapazität. // 800G using 8 parallel single-mode fibers (MPO-16 cable). Up to 500m — next-generation hyperscale campus connectivity. Two modules together equal 1.6T capacity.' WHERE name = '800GBASE-DR8'; +UPDATE standards SET description = 'Langstrecken-800G mit 4 WDM-Wellenlängen (je 200G, PAM4). Reichweite 10km — aufkommender Standard für 800G zwischen Gebäuden. Noch in früher Marktdurchdringung. // Long-reach 800G using 4 WDM wavelengths (200G each, PAM4). Up to 10km — emerging standard for 800G inter-building links. Still early in market adoption.' WHERE name = '800GBASE-LR4'; +UPDATE standards SET description = 'Kohärente Langstrecken-800G bis 1000km+ (pluggable). Das leistungsfähigste steckbare kohärente Modul heute — für Telko-Backbone und Ultra-High-Capacity-WDM-Netze. // Coherent 800G up to 1000km+ (fully pluggable). The highest-capacity pluggable coherent module available today — for telecom backbone and ultra-high-capacity WDM networks.' WHERE name = '800G-ZR(OIF)'; + +-- ───────────────────────────────────────────────────────────────────────────── +-- Step 3: Insert missing standards +-- ───────────────────────────────────────────────────────────────────────────── + +INSERT INTO standards (name, ieee_reference, body, speed, speed_gbps, form_factors, max_reach_meters, max_reach_label, fiber_type, wavelength, status, year_ratified, notes, description) +VALUES + +-- ── 1G (copper + extended reach) ───────────────────────────────────────────── +('1000BASE-T', + 'IEEE 802.3ab', 'IEEE', '1G', 1, + '{RJ45}', 100, '100m', + 'copper', NULL, + 'ratified', 1999, + '4-pair Cat5e/Cat6 copper, 1000Mbps. The universal desktop and IP phone standard.', + 'Gigabit-Ethernet über Standard-Kupferkabel (Cat5e/Cat6). Reichweite 100m — der universelle Standard für PCs, Drucker, IP-Telefone und IoT-Geräte. Kein Glasfaser nötig. // Gigabit Ethernet over standard copper cable (Cat5e/Cat6). Up to 100m — the universal standard for desktop PCs, printers, IP phones, and IoT devices. No fiber required.'), + +('1000BASE-ZX', + NULL, 'de_facto', '1G', 1, + '{SFP}', 80000, '80km', + 'SMF', '1550nm', + 'ratified', 2003, + 'Vendor de facto, 1550nm DFB, 80km SMF. For metropolitan and inter-city 1G links.', + 'Ultra-Langstrecken-Gigabit über 80km Einzel-Modus-Glasfaser (Herstellerstandard). Für Stadtverbindungen und Metro-Netze wo 10G noch zu teuer ist. // Ultra-long-reach Gigabit over 80km single-mode fiber (vendor de-facto). For city-scale metro links and long-haul connections where 10G is still cost-prohibitive.'), + +-- ── 10G (ultra short reach) ─────────────────────────────────────────────────── +('10GBASE-USR', + NULL, 'MSA', '10G', 10, + '{SFP+,XFP}', 2, '2m', + 'MMF', '850nm', + 'ratified', 2010, + 'Ultra short reach, backplane and board-to-board applications. 2m OM3.', + 'Ultra-Kurzstrecken-10G: nur 2 Meter Reichweite. Für Verbindungen innerhalb eines Switch-Chassis oder zwischen direkt nebeneinander stehenden Geräten (Backplane-Optik). // Ultra-short-reach 10G: only 2 meters. Used inside switch chassis or between co-located devices (backplane optical connections).'), + +-- ── 25G (copper) ───────────────────────────────────────────────────────────── +('25GBASE-CR', + 'IEEE 802.3by', 'IEEE', '25G', 25, + '{SFP28}', 5, '5m', + 'copper', NULL, + 'ratified', 2016, + 'Direct attach copper (DAC), 25G, up to 5m. Cheapest 25G option for same-rack connections.', + '25G über Kupfer-Twinax-Kabel (DAC). Reichweite bis 5m — die günstigste 25G-Option für Verbindungen zwischen Geräten im selben Rack. Kein Transceiver nötig, Kabel steckt direkt ein. // 25G direct attach copper (DAC cable). Up to 5m — the cheapest 25G option for same-rack device connections. No transceiver needed, the cable plugs directly in.'), + +-- ── 40G (copper) ───────────────────────────────────────────────────────────── +('40GBASE-CR4', + 'IEEE 802.3ba', 'IEEE', '40G', 40, + '{QSFP+}', 7, '7m', + 'copper', NULL, + 'ratified', 2010, + '4-lane copper twinax DAC, 40G, up to 7m. Standard for short-range 40G within rack or between adjacent racks.', + '40G über 4-Kanal-Kupfer-Twinax-Kabel (DAC). Reichweite bis 7m — die günstigste Option für kurze 40G-Verbindungen im oder zwischen benachbarten Racks. // 40G over 4-lane copper twinax cable (DAC). Up to 7m — the cheapest option for short 40G connections within or between adjacent racks.'), + +-- ── 100G (copper + parallel legacy) ────────────────────────────────────────── +('100GBASE-CR4', + 'IEEE 802.3bj', 'IEEE', '100G', 100, + '{QSFP28}', 5, '5m', + 'copper', NULL, + 'ratified', 2014, + '4-lane copper twinax DAC/AEC, 100G. Low-cost ToR server connections.', + '100G über 4-Kanal-Kupfer-Twinax-Kabel (DAC/AEC). Reichweite bis 5m — die günstigste Option für 100G-Serveranschlüsse am Top-of-Rack-Switch. // 100G over 4-lane copper twinax cable (DAC/AEC). Up to 5m — the lowest-cost option for 100G top-of-rack server connections.'), + +('100GBASE-SR10', + 'IEEE 802.3ba', 'IEEE', '100G', 100, + '{CFP,CXP}', 150, '150m', + 'MMF', '850nm', + 'ratified', 2010, + 'Early 100G design using 10×10G parallel lanes, 24-fiber MPO. Now legacy — replaced by SR4 and QSFP28.', + 'Frühe 100G-Technik mit 10 parallelen 10G-Kanälen (24-Faser-MPO). Heute veraltet — wurde durch 100GBASE-SR4 und QSFP28 abgelöst. Noch in einigen älteren Installationen zu finden. // Early 100G design using 10 parallel 10G lanes (24-fiber MPO cable). Now legacy — replaced by SR4 and QSFP28. Still found in older installations.'), + +-- ── 200G tier (completely missing) ─────────────────────────────────────────── +('200GBASE-SR4', + 'IEEE 802.3cd', 'IEEE', '200G', 200, + '{QSFP56,QSFP-DD}', 100, '100m', + 'MMF', '850nm', + 'ratified', 2018, + '4x50G parallel MMF (850nm), 100m OM4, 75m OM3. High-density 200G data center fabric.', + 'Kurzstrecken-200G mit 4 parallelen MMF-Kanälen (je 50G). Reichweite 100m auf OM4 — für Hochdichte-200G-Verbindungen in Hyperscale-Rechenzentren. Doppelte Dichte gegenüber 100G-SR4. // Short-reach 200G using 4 parallel 50G MMF lanes. Up to 100m on OM4 — for high-density 200G in hyperscale data centers. Double the density of 100G SR4.'), + +('200GBASE-DR4', + 'IEEE 802.3cn', 'IEEE', '200G', 200, + '{QSFP56,QSFP-DD}', 500, '500m', + 'SMF', '1310nm', + 'ratified', 2019, + '4x50G parallel SMF, MPO-12, 500m. Hyperscale campus 200G connectivity.', + 'Paralleloptik-200G über 4 SMF-Fasern (MPO-12-Kabel). Reichweite 500m — für 200G-Verbindungen auf Hyperscale-Geländen wo mehr als 100m nötig sind. // Parallel 200G over 4 single-mode fibers (MPO-12 cable). Up to 500m — for 200G connections on hyperscale campuses requiring more than the 100m MMF range.'), + +('200GBASE-FR4', + 'IEEE 802.3cn', 'IEEE', '200G', 200, + '{QSFP56,QSFP-DD}', 2000, '2km', + 'SMF', '1310nm', + 'ratified', 2019, + '4x50G WDM over single SMF pair (LC duplex), 2km. Cost-effective medium-reach 200G.', + 'Mittlere Reichweite: 200G mit 4 WDM-Wellenlängen (je 50G). Reichweite 2km mit normalem LC-Duplex-Stecker — kostengünstige 200G-Option für mittlere Distanzen. // Medium-reach 200G using 4 WDM wavelengths (50G each). Up to 2km with standard LC duplex connector — cost-effective 200G for medium distances.'), + +('200GBASE-LR4', + 'IEEE 802.3cn', 'IEEE', '200G', 200, + '{QSFP56,QSFP-DD}', 10000, '10km', + 'SMF', '1310nm', + 'ratified', 2019, + '4x50G LAN-WDM over SMF, 10km LC duplex. Standard long-reach 200G inter-building interface.', + 'Langstrecken-200G mit 4 WDM-Wellenlängen (je 50G). Reichweite 10km — Standard für 200G zwischen Gebäuden und Rechenzentrumsstandorten. LC-Duplex-Stecker wie bei 100G-LR4. // Long-reach 200G using 4 WDM wavelengths (50G each). Up to 10km — standard for 200G inter-building and inter-site connections. Same LC duplex connector as 100G LR4.'), + +('200GBASE-ER4', + 'IEEE 802.3cn', 'IEEE', '200G', 200, + '{QSFP56,QSFP-DD}', 40000, '40km', + 'SMF', '1310nm', + 'ratified', 2020, + '4x50G WDM, 40km extended reach SMF. For 200G metro and long-haul applications.', + 'Erweiterte Reichweite: 200G mit 4 WDM-Wellenlängen über 40km SMF. Für 200G-Metro-Verbindungen zwischen weit entfernten Standorten. // Extended-reach 200G using 4 WDM wavelengths over 40km SMF. For 200G metro and long-haul links between distant sites.'), + +('200GBASE-CR4', + 'IEEE 802.3cd', 'IEEE', '200G', 200, + '{QSFP56}', 3, '3m', + 'copper', NULL, + 'ratified', 2018, + '4x50G copper twinax DAC, 200G short-reach. Low-cost option for adjacent 200G rack connections.', + '200G über 4-Kanal-Kupfer-Twinax-Kabel (DAC). Reichweite bis 3m — die günstigste Option für kurze 200G-Verbindungen innerhalb und zwischen benachbarten Racks. // 200G over 4-lane copper twinax cable (DAC). Up to 3m — the lowest-cost option for short 200G connections within and between adjacent racks.'), + +-- ── 400G (extended reach) ───────────────────────────────────────────────────── +('400GBASE-ER8', + 'IEEE 802.3cn', 'IEEE', '400G', 400, + '{QSFP-DD,OSFP}', 40000, '40km', + 'SMF', '1310nm', + 'ratified', 2019, + '8x50G LAN-WDM over SMF, 40km. Fills the gap between LR4 (10km) and ZR (100km+).', + 'Erweiterte Reichweite: 400G mit 8 WDM-Wellenlängen über 40km SMF. Füllt die Lücke zwischen LR4 (10km) und ZR (100km+) — für 400G-Metro-Verbindungen zwischen entfernten Standorten. // Extended-reach 400G using 8 WDM wavelengths over 40km SMF. Fills the gap between LR4 (10km) and ZR (100km+) — for 400G metro links between distant sites.'), + +('400GBASE-CR8', + 'IEEE 802.3bs', 'IEEE', '400G', 400, + '{QSFP-DD,OSFP}', 3, '3m', + 'copper', NULL, + 'ratified', 2017, + '8-lane copper twinax DAC, 400G, up to 3m. Low-cost option for 400G within rack.', + '400G über 8-Kanal-Kupfer-Twinax-Kabel (DAC). Reichweite bis 3m — die günstigste Option für kurze 400G-Verbindungen innerhalb eines Racks. // 400G over 8-lane copper twinax cable (DAC). Up to 3m — the lowest-cost option for short 400G connections within a single rack.'), + +-- ── 800G (emerging) ─────────────────────────────────────────────────────────── +('800GBASE-FR4', + 'IEEE 802.3df', 'IEEE', '800G', 800, + '{OSFP,QSFP-DD800}', 2000, '2km', + 'SMF', '1310nm', + 'draft', 2024, + '4x200G WDM (PAM4), 2km SMF LC duplex. Emerging medium-reach 800G standard.', + 'In Entwicklung: 800G mit 4 WDM-Wellenlängen (je 200G, PAM4). Reichweite 2km — für zukünftige 800G-Verbindungen auf Geländen und zwischen Gebäuden. Noch nicht weit verbreitet. // Emerging: 800G using 4 WDM wavelengths (200G each, PAM4). Up to 2km — for future 800G campus and inter-building connections. Not yet widely deployed.'), + +('800GBASE-LR8', + 'IEEE 802.3df', 'IEEE', '800G', 800, + '{OSFP,QSFP-DD800}', 10000, '10km', + 'SMF', '1310nm', + 'draft', 2024, + '8x100G LAN-WDM (PAM4), 10km SMF. Next-gen long-reach 800G for inter-building links.', + 'In Entwicklung: 800G mit 8 WDM-Wellenlängen (je 100G, PAM4). Reichweite 10km — zukünftiger Standard für 800G zwischen Gebäuden. Markteinführung für 2025/2026 erwartet. // Emerging: 800G using 8 WDM wavelengths (100G each, PAM4). Up to 10km — future standard for 800G inter-building links. Market entry expected 2025/2026.'), + +('800GBASE-CR8', + 'IEEE 802.3df', 'IEEE', '800G', 800, + '{OSFP,QSFP-DD800}', 3, '3m', + 'copper', NULL, + 'draft', 2024, + '8-lane copper twinax, 800G DAC. For AI/ML cluster GPU-to-switch connections in same rack.', + '800G über 8-Kanal-Kupfer-Twinax (DAC). Reichweite bis 3m — für AI/ML-Cluster-Verbindungen von GPU-Servern zum Top-of-Rack-Switch im selben Rack. // 800G over 8-lane copper twinax (DAC cable). Up to 3m — for AI/ML cluster connections from GPU servers to top-of-rack switches in the same rack.'), + +-- ── PON / Access Standards ──────────────────────────────────────────────────── +('GPON', + 'ITU-T G.984', 'MSA', '2.5G', 2.5, + '{SFP}', 20000, '20km', + 'SMF', '1490nm', + 'ratified', 2003, + 'Gigabit PON: 2.488Gbps down / 1.244Gbps up over passive fiber tree. Worldwide dominant FTTH standard.', + 'Gigabit Passives Optisches Netzwerk — die weltweit meistgenutzte Technologie für Glasfaser-Heimanschlüsse (FTTH). Verteilt bis zu 2.5 Gbit/s ohne aktive Netzwerkelemente (keine Switches nötig) an bis zu 128 Haushalte über eine einzige Glasfaser. // Gigabit Passive Optical Network — the world''s most common fiber broadband technology. Delivers up to 2.5Gbps to 128 homes over a single fiber without active network elements (no switches needed en route).'), + +('XG-PON1', + 'ITU-T G.987', 'MSA', '10G', 10, + '{SFP+}', 20000, '20km', + 'SMF', '1577nm', + 'ratified', 2010, + '10G downstream / 2.5G upstream PON. Asymmetric upgrade path from GPON without changing fiber plant.', + '10G-PON mit asymmetrischen Geschwindigkeiten: 10 Gbit/s Download, 2.5 Gbit/s Upload. Upgrade-Pfad von GPON ohne neue Glasfaser zu legen — ISPs können auf 10G aufrüsten indem sie nur die End-Geräte tauschen. // Asymmetric 10G PON: 10Gbps downstream, 2.5Gbps upstream. Upgrade path from GPON without replacing fiber — ISPs can upgrade to 10G by changing only the endpoints.'), + +('NG-PON2', + 'ITU-T G.989', 'MSA', '40G', 40, + '{SFP28,QSFP+}', 40000, '40km', + 'SMF', '1596nm', + 'ratified', 2015, + 'Next-Gen PON2: 4 wavelengths × 10G = 40Gbps aggregate. Multiple operators can share fiber. Enterprise and 5G fronthaul.', + 'Nächste Generation PON: 4 Wellenlängen × 10G = 40 Gbit/s Gesamt-Kapazität. Mehrere Internet-Anbieter können dieselbe Glasfaser teilen. Wird für 5G-Fronthaul und Unternehmens-Glasfaser eingesetzt. // Next-Generation PON: 4 wavelengths × 10G = 40Gbps aggregate capacity. Multiple operators can share the same fiber. Used for 5G fronthaul and enterprise fiber deployments.'), + +('25G-PON', + 'ITU-T G.9804', 'MSA', '25G', 25, + '{SFP28}', 20000, '20km', + 'SMF', '1340nm', + 'draft', 2023, + 'Emerging 25G symmetric PON for ultra-broadband and 5G fronthaul. Ratification expected 2024.', + 'Aufkommender Standard: 25G symmetrisches Glasfasernetzwerk für Ultra-Breitband und 5G-Fronthaul. Für ISPs die Gigabit-Klasse Breitbanddienste der nächsten Generation anbieten wollen. Ratifizierung 2024 erwartet. // Emerging standard: 25G symmetric passive optical network for next-generation broadband and 5G fronthaul. For ISPs planning multi-gigabit residential and enterprise fiber services. Ratification expected 2024.'), + +-- ── 1.6T (emerging next-generation) ────────────────────────────────────────── +('1.6TBASE-DR16', + 'IEEE 802.3dj', 'IEEE', '1.6T', 1600, + '{OSFP224}', 500, '500m', + 'SMF', '1310nm', + 'draft', 2025, + '16x100G parallel SMF (MPO-32), 500m. Emerging 1.6T standard for AI/ML GPU cluster interconnects.', + 'In Entwicklung: 1.6 Terabit/s mit 16 parallelen SMF-Kanälen (je 100G). Reichweite 500m — der kommende Standard für AI/ML-GPU-Cluster-Verbindungen der übernächsten Generation. Voraussichtliche Ratifizierung 2025/2026. // Emerging: 1.6 Terabit/s using 16 parallel SMF channels (100G each). Up to 500m — the next-next-generation standard for AI/ML GPU cluster interconnects. Ratification expected 2025/2026.') + +ON CONFLICT (name) DO UPDATE SET + description = EXCLUDED.description, + max_reach_label = COALESCE(EXCLUDED.max_reach_label, standards.max_reach_label), + notes = COALESCE(EXCLUDED.notes, standards.notes); diff --git a/sql/101-form-factors-table.sql b/sql/101-form-factors-table.sql new file mode 100644 index 0000000..d520389 --- /dev/null +++ b/sql/101-form-factors-table.sql @@ -0,0 +1,247 @@ +-- Migration 101: Form Factors Reference Table +-- ───────────────────────────────────────────────────────────────────────────── +-- Comprehensive form factor reference with plain-language descriptions, +-- physical dimensions, max speeds, and connector types. +-- +-- Covers all 20 form factors in the transceivers table + additional modern ones +-- ───────────────────────────────────────────────────────────────────────────── + +CREATE TABLE IF NOT EXISTS form_factors ( + id UUID PRIMARY KEY DEFAULT gen_random_uuid(), + name TEXT NOT NULL UNIQUE, -- e.g. "QSFP28" + full_name TEXT NOT NULL, -- e.g. "Quad Small Form-factor Pluggable 28" + short_name TEXT, -- e.g. "QSFP28" (alias/marketing name) + generation TEXT, -- e.g. "4th generation SFP family" + family TEXT, -- e.g. "SFP family" | "QSFP family" | "CFP family" | "legacy" + max_speed_gbps NUMERIC, -- maximum electrical interface speed + channels INTEGER, -- number of electrical channels (lanes) + channel_rate_gbps NUMERIC, -- per-channel speed in Gbps + physical_width_mm NUMERIC, -- width in mm + physical_height_mm NUMERIC, -- height (depth) in mm + hot_swap BOOLEAN DEFAULT TRUE, -- supports hot-swap / hot-pluggable + connector_type TEXT, -- typical fiber connector, e.g. "LC duplex", "MPO-12", "varies" + year_introduced INTEGER, -- year first modules appeared on market + supersedes TEXT[] DEFAULT '{}', -- form factors this one replaces + superseded_by TEXT, -- newer form factor that replaces this one + status TEXT DEFAULT 'current' CHECK (status IN ('current','legacy','emerging','obsolete')), + description TEXT, -- plain-language explanation (DE · EN) + notes TEXT, -- technical notes + url TEXT, -- standard/MSA spec URL + created_at TIMESTAMPTZ DEFAULT NOW() +); + +CREATE INDEX IF NOT EXISTS idx_form_factors_family ON form_factors (family); +CREATE INDEX IF NOT EXISTS idx_form_factors_max_speed ON form_factors (max_speed_gbps DESC); +CREATE INDEX IF NOT EXISTS idx_form_factors_status ON form_factors (status); + +-- ───────────────────────────────────────────────────────────────────────────── +-- Insert all known form factors +-- ───────────────────────────────────────────────────────────────────────────── + +INSERT INTO form_factors (name, full_name, family, generation, max_speed_gbps, channels, channel_rate_gbps, physical_width_mm, physical_height_mm, hot_swap, connector_type, year_introduced, supersedes, superseded_by, status, description, notes, url) +VALUES + +-- ───────────────────────────── +-- SFP Family +-- ───────────────────────────── +('SFP', + 'Small Form-factor Pluggable', + 'SFP family', '1st generation', + 1, 1, 1.0625, 13.4, 56.5, TRUE, 'LC duplex', 2000, + '{}', 'SFP+', 'legacy', + 'Das Original-Netzwerkmodul — der "USB-Stick" der Netzwerktechnik. Klein, steckbar, für 1G-Verbindungen. Läuft in fast jedem Switch und Router. Zwei Varianten: für Glasfaser (mit Kabel) oder Kupfer (SFP-T, kein Kabel nötig). // The original "thumb drive" of networking. Small, hot-swappable, 1G. Runs in virtually every switch and router ever made. Available for fiber (requires cable) or copper (SFP-T, RJ45 socket).', + 'LC Duplex fiber or RJ45 (SFP-T). Defined by SFF Committee SFF-8472.', + 'https://www.snia.org/technology-communities/sff'), + +('SFP+', + 'Small Form-factor Pluggable Plus', + 'SFP family', '2nd generation', + 10, 1, 10.3125, 13.4, 56.5, TRUE, 'LC duplex', 2006, + '{SFP,XFP}', 'SFP28', 'current', + 'Die 10G-Version des klassischen SFP. Gleiche physische Größe und gleicher Slot wie das Original-SFP — einfaches Upgrade auf 10G ohne neuen Switch. Der meistverkaufte Transceiver-Typ weltweit. // The 10G evolution of the original SFP. Same physical size and slot as the original — direct upgrade to 10G without changing the switch. The world''s best-selling transceiver form factor.', + 'Backward compatible slot with SFP (1G). IEEE 802.3ae. SFF-8431.', + 'https://www.snia.org/technology-communities/sff'), + +('SFP28', + 'Small Form-factor Pluggable 28 (25G)', + 'SFP family', '3rd generation', + 25, 1, 25.78125, 13.4, 56.5, TRUE, 'LC duplex', 2016, + '{SFP+}', 'SFP56', 'current', + '25G in der SFP-Gehäusegröße. Der Standardanschluss für Server-Netzwerkkarten seit 2017. Läuft im selben physischen Slot wie SFP+ — Switch-Ports können je nach Bedarf 10G oder 25G module aufnehmen. // 25G in the standard SFP housing. The default server NIC connection since 2017. Fits the same physical slot as SFP+ — switch ports can accept either 10G or 25G modules depending on need.', + 'IEEE 802.3by. Same mechanical cage as SFP/SFP+. Dominant server uplink form factor.', + 'https://www.snia.org/technology-communities/sff'), + +('SFP56', + 'Small Form-factor Pluggable 56 (50G)', + 'SFP family', '4th generation', + 50, 1, 53.125, 13.4, 56.5, TRUE, 'LC duplex', 2020, + '{SFP28}', 'SFP112', 'current', + '50G in SFP-Größe, mit PAM4-Signaltechnik. Für Netzwerke die 50G pro Port benötigen ohne auf größere Module wechseln zu müssen. Noch nicht weit verbreitet — SFP28 (25G) und QSFP28 (100G) dominieren. // 50G in SFP size using PAM4 signaling. For networks needing 50G per port without switching to larger modules. Not yet widely deployed — SFP28 (25G) and QSFP28 (100G) dominate.', + 'PAM4 modulation. IEEE 802.3cd. Backward compatible cage with SFP/SFP+/SFP28.', + 'https://www.snia.org/technology-communities/sff'), + +('SFP112', + 'Small Form-factor Pluggable 112 (100G)', + 'SFP family', '5th generation', + 100, 1, 112.0, 13.4, 56.5, TRUE, 'LC duplex', 2022, + '{SFP56}', NULL, 'emerging', + '100G im kleinen SFP-Gehäuse — noch höhere Dichte als SFP56. Für zukünftige High-Density-100G-Deployments wo möglichst viele Ports auf kleinem Raum benötigt werden. Noch in früher Markteinführungsphase. // 100G in the small SFP housing — even higher density than SFP56. For future high-density 100G deployments where maximum port count matters. Still in early market adoption.', + 'PAM4, 112Gbps per lane. Next evolution after SFP56. Target for 2024+ deployments.', + 'https://www.snia.org/technology-communities/sff'), + +('SFP56-DD', + 'Small Form-factor Pluggable 56 Double Density (100G)', + 'SFP family', 'double density variant', + 100, 2, 53.125, 13.4, 56.5, TRUE, 'LC duplex', 2021, + '{SFP28}', NULL, 'current', + 'Doppelte Dichte: Zwei 50G-Kanäle im SFP-Gehäuse = 100G total. Die Elektroanschlüsse sind breiter als SFP56 (8 statt 4 Pins). Für hohe 100G-Portdichte ohne QSFP-Module. // Double density: two 50G lanes in SFP housing = 100G total. Wider electrical connector than SFP56 (8 vs 4 pins). For high 100G port density without needing QSFP modules.', + '2x25G electrical interface. Backward slot-compatible with SFP56 in many switches.', + 'https://www.snia.org/technology-communities/sff'), + +-- ───────────────────────────── +-- XFP (legacy) +-- ───────────────────────────── +('XFP', + '10 Gigabit Small Form Factor Pluggable', + 'legacy', 'XFP generation', + 10, 1, 10.3125, 18.8, 65.0, TRUE, 'LC duplex', 2002, + '{}', 'SFP+', 'legacy', + 'Älteres 10G-Modul, deutlich größer als SFP+. War der erste weit verbreitete 10G-Standard, wurde aber vollständig durch SFP+ ersetzt da SFP+ kleiner, günstiger und effizienter ist. Noch in sehr alten Switches zu finden. // Older 10G module, significantly larger than SFP+. Was the first widely deployed 10G standard but completely replaced by SFP+, which is smaller, cheaper, and more efficient. Still found in very old switches.', + 'XFP MSA. 300-pin interface. Largely obsolete since ~2012.', + 'https://www.xfpmsa.org'), + +-- ───────────────────────────── +-- QSFP Family +-- ───────────────────────────── +('QSFP+', + 'Quad Small Form-factor Pluggable Plus (40G)', + 'QSFP family', '1st generation QSFP', + 40, 4, 10.3125, 18.4, 72.4, TRUE, 'MPO-12 or LC duplex', 2010, + '{}', 'QSFP28', 'legacy', + '4 Kanäle à 10G = 40G total. Deutlich kompakter als 4 einzelne SFP+-Module — ein QSFP+-Port im Switch entspricht 4 SFP+-Ports. War der 40G-Standard der Rechenzentren, heute durch 100G abgelöst. // 4 channels × 10G = 40G total. Much more compact than 4 individual SFP+ modules — one QSFP+ port equals 4 SFP+ ports. Was the 40G data center standard, now largely replaced by 100G.', + 'IEEE 802.3ba. MPO-12 for SR4, LC duplex for LR4. Compatible with QSFP28 slots in many switches.', + 'https://www.snia.org/technology-communities/sff'), + +('QSFP28', + 'Quad Small Form-factor Pluggable 28 (100G)', + 'QSFP family', '2nd generation QSFP', + 100, 4, 25.78125, 18.4, 72.4, TRUE, 'varies (MPO-12 or LC duplex)', 2015, + '{QSFP+}', 'QSFP56', 'current', + 'Der 100G-Standard. 4 Kanäle à 25G = 100G total. Seit 2016 der dominante Transceiver-Typ in modernen Rechenzentren — die große Mehrheit aller 100G-Verbindungen verwendet QSFP28. Läuft oft auch in QSFP-DD-Slots. // The 100G standard. 4 channels × 25G = 100G total. The dominant transceiver type in modern data centers since 2016 — the vast majority of 100G connections use QSFP28. Often also runs in QSFP-DD slots.', + 'IEEE 802.3bm. Mechanically compatible with QSFP+. The most widely deployed 100G form factor.', + 'https://www.snia.org/technology-communities/sff'), + +('QSFP56', + 'Quad Small Form-factor Pluggable 56 (200G)', + 'QSFP family', '3rd generation QSFP', + 200, 4, 53.125, 18.4, 72.4, TRUE, 'varies (MPO or LC)', 2018, + '{QSFP28}', 'QSFP-DD', 'current', + '4 Kanäle à 50G = 200G total (PAM4-Signal). Doppelte Kapazität von QSFP28 im selben Gehäuse. Für Netzwerke die von 100G auf 200G wechseln ohne neue Switch-Hardware zu kaufen. // 4 channels × 50G = 200G total (PAM4 signaling). Double the capacity of QSFP28 in the same housing. For networks upgrading from 100G to 200G without buying new switch hardware.', + 'IEEE 802.3cd. PAM4 modulation. Mechanically compatible with QSFP28/QSFP+ slots.', + 'https://www.snia.org/technology-communities/sff'), + +('QSFP112', + 'Quad Small Form-factor Pluggable 112 (400G)', + 'QSFP family', '4th generation QSFP', + 400, 4, 112.0, 18.4, 72.4, TRUE, 'varies', 2021, + '{QSFP56}', NULL, 'current', + '4 Kanäle à 100G = 400G total (PAM4). Gleiche Gehäusegröße wie QSFP28 aber 4x die Kapazität. Für Rechenzentren die 400G bei maximaler Port-Dichte benötigen. // 4 channels × 100G = 400G total (PAM4). Same housing as QSFP28 but 4× the capacity. For data centers needing 400G at maximum port density.', + 'IEEE 802.3bs subset. PAM4. High thermal demands within standard QSFP envelope.', + 'https://www.snia.org/technology-communities/sff'), + +('QSFP-DD', + 'Quad Small Form-factor Pluggable Double Density (400G/800G)', + 'QSFP family', 'double density QSFP', + 400, 8, 53.125, 18.4, 89.4, TRUE, 'varies (MPO-12/16 or LC)', 2019, + '{QSFP28,QSFP56}', 'QSFP-DD800', 'current', + 'Doppelte Dichte: 8 Kanäle statt 4, für 400G (8×50G) oder mit neueren Chips 800G (8×100G). Rückwärtskompatibel — QSFP-DD-Slots können auch QSFP28-Module aufnehmen. Der wichtigste Hochgeschwindigkeitsstandard aktuell. // Double density: 8 channels instead of 4, enabling 400G (8×50G) or with newer chips 800G (8×100G). Backward compatible — QSFP-DD slots also accept QSFP28 modules. Currently the most important high-speed form factor.', + 'QSFP-DD MSA. Backward compatible with QSFP28/QSFP56. Dominant 400G standard alongside OSFP.', + 'https://www.qsfp-dd.com'), + +('QSFP-DD800', + 'Quad Small Form-factor Pluggable Double Density 800 (800G)', + 'QSFP family', 'double density 800G', + 800, 8, 112.0, 18.4, 89.4, TRUE, 'varies', 2022, + '{QSFP-DD}', NULL, 'current', + 'Die 800G-Version des QSFP-DD. 8 Kanäle à 100G = 800G total (PAM4). Für AI/ML-Cluster der neuesten Generation und Hyperscale-Netzwerke die 800G-Verbindungen benötigen. // The 800G version of QSFP-DD. 8 channels × 100G = 800G total (PAM4). For latest-generation AI/ML clusters and hyperscale networks requiring 800G connections.', + 'QSFP-DD MSA v5.0+. 8×112Gbps PAM4. Higher power envelope than standard QSFP-DD.', + 'https://www.qsfp-dd.com'), + +-- ───────────────────────────── +-- OSFP Family +-- ───────────────────────────── +('OSFP', + 'Octal Small Form-factor Pluggable (400G/800G)', + 'OSFP family', '1st generation OSFP', + 800, 8, 112.0, 22.58, 100.4, TRUE, 'varies (MPO or LC)', 2019, + '{}', 'OSFP112', 'current', + 'Etwas größer als QSFP-DD, dafür besser gekühlt. 8 Kanäle für 400G (8×50G) oder 800G (8×100G). Bevorzugt von Cisco und einigen anderen Herstellern. Bietet mehr thermischen Spielraum für leistungsstarke Kohärenz-Module. // Slightly larger than QSFP-DD but better cooled. 8 channels for 400G (8×50G) or 800G (8×100G). Preferred by Cisco and some other vendors. Provides more thermal headroom for high-power coherent modules.', + 'OSFP MSA. 22.58mm wide vs 18.4mm for QSFP-DD. Better thermal management for coherent optics.', + 'https://osfpmsa.org'), + +('OSFP112', + 'Octal Small Form-factor Pluggable 112 (800G/1.6T)', + 'OSFP family', '2nd generation OSFP', + 1600, 8, 224.0, 22.58, 107.8, TRUE, 'MPO-16 or varies', 2023, + '{OSFP}', 'OSFP224', 'emerging', + 'Nächste Generation OSFP für 800G (8×100G) und zukünftige 1.6T-Anwendungen (8×200G). Für AI/ML-Cluster der übernächsten Generation. Noch in früher Markteinführungsphase. // Next-generation OSFP for 800G (8×100G) and future 1.6T applications (8×200G). For the next-next-generation of AI/ML clusters. Still in early market adoption.', + 'OSFP MSA v2.0+. 224Gbps per lane target. Key form factor for 1.6T AI/ML networks.', + 'https://osfpmsa.org'), + +('OSFP224', + 'Octal Small Form-factor Pluggable 224 (1.6T)', + 'OSFP family', '3rd generation OSFP (emerging)', + 1600, 8, 224.0, 22.58, 107.8, TRUE, 'MPO-32 or varies', 2024, + '{OSFP112}', NULL, 'emerging', + 'Der kommende Standard für 1.6 Terabit/s: 8 Kanäle à 200G = 1.6T total. Für zukünftige AI/ML-GPU-Cluster-Verbindungen (z.B. NVIDIA NVLink 5.0 Skala). Markteinführung ab 2025/2026 erwartet. // The upcoming 1.6T standard: 8 channels × 200G = 1.6T total. For future AI/ML GPU cluster connections (e.g. NVIDIA scale-out AI networks). Market entry expected 2025/2026.', + 'OSFP MSA target. 224Gbps PAM4 per lane. Primary target for next-gen AI networking.', + 'https://osfpmsa.org'), + +-- ───────────────────────────── +-- CFP Family (coherent / 100G legacy) +-- ───────────────────────────── +('CFP', + 'C Form-factor Pluggable (100G, large)', + 'CFP family', '1st generation CFP', + 100, 10, 10.3125, 82.0, 144.75, TRUE, 'LC duplex or MPO', 2010, + '{}', 'CFP2', 'legacy', + 'Das erste 100G-Modulformat — groß wie ein Taschenbuch, für early-100G-WDM-Anwendungen. Heute veraltet und durch kleinere CFP2/CFP4 oder QSFP28 ersetzt. Noch in älteren Telko- und Transport-Geräten zu finden. // The first 100G module format — about the size of a small book, used for early 100G WDM applications. Now obsolete, replaced by smaller CFP2/CFP4 or QSFP28. Still found in older telecom and transport equipment.', + 'CFP MSA. 82mm wide. Largely obsolete since ~2014. Very high power consumption.', + 'https://www.cfp-msa.org'), + +('CFP2', + 'C Form-factor Pluggable 2 (100G/200G, medium)', + 'CFP family', '2nd generation CFP', + 200, 4, 25.78125, 41.5, 107.0, TRUE, 'LC duplex or MPO', 2013, + '{CFP}', 'CFP4', 'current', + 'Halb so groß wie CFP, doppelte Portdichte. Für 100G und 200G kohärente WDM-Anwendungen in Telekommunikationsnetzen. Weit verbreitet für langreichweitige koherente Verbindungen. // Half the size of CFP, double the port density. Used for 100G and 200G coherent WDM applications in telecom networks. Widely used for long-haul coherent links.', + 'CFP2 MSA. 41.5mm wide. Dominant coherent form factor for carrier transport equipment.', + 'https://www.cfp-msa.org'), + +('CFP4', + 'C Form-factor Pluggable 4 (100G, small)', + 'CFP family', '4th generation CFP', + 100, 4, 25.78125, 21.5, 107.0, TRUE, 'LC duplex', 2014, + '{CFP2}', NULL, 'current', + 'Ein Viertel der Größe des Original-CFP. Gleiche Portdichte wie QSFP28, aber bevorzugt für kohärente/abstimmbare WDM-Anwendungen die mehr Platz für optische Komponenten benötigen. // Quarter the size of original CFP. Same port density as QSFP28 but preferred for coherent/tunable WDM applications requiring more space for optical components.', + 'CFP4 MSA. 21.5mm wide. Popular for tunable DWDM 100G.', + 'https://www.cfp-msa.org'), + +-- ───────────────────────────── +-- CXP (obsolete) +-- ───────────────────────────── +('CXP', + 'C Form-factor 10×10G (100G, parallel, legacy)', + 'legacy', 'CXP generation', + 100, 12, 10.3125, 45.0, 101.0, TRUE, 'MPO-24', 2010, + '{}', 'QSFP28', 'obsolete', + 'Frühes 100G-Modul mit 10 parallelen 10G-Kanälen (24-Faser-MPO). Sehr kurze Produktionsphase — wurde schnell durch QSFP28 abgelöst. Praktisch nicht mehr im Einsatz. // Early 100G module using 10 parallel 10G channels (24-fiber MPO). Very short production lifetime — quickly replaced by QSFP28. Practically no longer in active use.', + 'CXP MSA. 12 lanes, 10 used for data. Replaced by QSFP28 before becoming mainstream.', + NULL) + +ON CONFLICT (name) DO UPDATE SET + description = EXCLUDED.description, + full_name = EXCLUDED.full_name, + max_speed_gbps = EXCLUDED.max_speed_gbps, + status = EXCLUDED.status, + notes = COALESCE(EXCLUDED.notes, form_factors.notes);