693 lines
33 KiB
TypeScript
693 lines
33 KiB
TypeScript
/**
|
|
* Whitebox / Open Networking Switch Seed Data
|
|
*
|
|
* Comprehensive catalog of whitebox ODM/OEM switches from:
|
|
* Edgecore, Celestica, Delta, QCT, Inventec, UfiSpace, Asterfusion, Netberg, Ragile
|
|
*
|
|
* Sources: Public datasheets, SONiC HCL, OCP specs, vendor product pages.
|
|
*/
|
|
import { pool, ensureWhiteboxVendor, findOrCreateSwitch } from "../utils/db";
|
|
import type { SwitchParams } from "../utils/db";
|
|
|
|
interface WhiteboxSeed {
|
|
vendor: string;
|
|
vendorWebsite: string;
|
|
vendorOpts: { isOdm: boolean; ocpMember: boolean; sonicContributor: boolean };
|
|
model: string;
|
|
series: string;
|
|
category: "DataCenter" | "Campus" | "Edge" | "Core" | "SP" | "Industrial";
|
|
layer: "L2" | "L3" | "L2/L3";
|
|
portsConfig: Record<string, number>;
|
|
totalPorts: number;
|
|
maxSpeedGbps: number;
|
|
switchingCapacityTbps?: number;
|
|
forwardingRateMpps?: number;
|
|
asicVendor: string;
|
|
asicModel: string;
|
|
asicSeries?: string;
|
|
rackUnits?: number;
|
|
maxPowerW?: number;
|
|
cpu?: string;
|
|
cpuCores?: number;
|
|
ramGb?: number;
|
|
storageGb?: number;
|
|
storageType?: string;
|
|
sonicCompatible: boolean;
|
|
onlCompatible?: boolean;
|
|
cumulusCompatible?: boolean;
|
|
dentCompatible?: boolean;
|
|
fbossCompatible?: boolean;
|
|
onieSupport?: boolean;
|
|
ocpStatus?: "Accepted" | "Inspired" | "None";
|
|
supportedNos?: string[];
|
|
sonicHwsku?: string;
|
|
transceiverFormFactors: string[];
|
|
catalogUrl?: string;
|
|
tags: string[];
|
|
}
|
|
|
|
// ═══════════════════════════════════════════════════════
|
|
// EDGECORE NETWORKS (Accton subsidiary)
|
|
// ═══════════════════════════════════════════════════════
|
|
const EDGECORE: WhiteboxSeed[] = [
|
|
{
|
|
vendor: "Edgecore Networks", vendorWebsite: "https://www.edge-core.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "AS7946-74XKDB", series: "AS7946", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "800G_OSFP": 74 }, totalPorts: 74,
|
|
maxSpeedGbps: 800, switchingCapacityTbps: 59.2,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 5", asicSeries: "memory Memory",
|
|
rackUnits: 2, maxPowerW: 3500,
|
|
cpu: "Intel Xeon D-1649N", cpuCores: 8, ramGb: 32, storageGb: 128, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
ocpStatus: "Accepted",
|
|
supportedNos: ["SONiC", "ONL", "FBOSS", "DENT"],
|
|
sonicHwsku: "Edgecore-AS7946-74XKDB",
|
|
transceiverFormFactors: ["OSFP"],
|
|
catalogUrl: "https://www.edge-core.com/product/as7946-74xkdb/",
|
|
tags: ["800G", "whitebox", "spine", "AI-fabric", "OCP", "Tomahawk5"],
|
|
},
|
|
{
|
|
vendor: "Edgecore Networks", vendorWebsite: "https://www.edge-core.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "AS9516-32D", series: "AS9516", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 12.8,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 3", asicSeries: "memory Memory",
|
|
rackUnits: 1, maxPowerW: 1800,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 16, storageGb: 64, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
ocpStatus: "Accepted",
|
|
supportedNos: ["SONiC", "ONL", "Cumulus", "FBOSS"],
|
|
sonicHwsku: "Edgecore-AS9516-32D",
|
|
transceiverFormFactors: ["QSFP-DD"],
|
|
catalogUrl: "https://www.edge-core.com/product/as9516-32d/",
|
|
tags: ["400G", "whitebox", "spine", "OCP", "Tomahawk3"],
|
|
},
|
|
{
|
|
vendor: "Edgecore Networks", vendorWebsite: "https://www.edge-core.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "AS7726-32X", series: "AS7726", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 32, "10G_SFP+": 2 }, totalPorts: 34,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 6.4, forwardingRateMpps: 4760,
|
|
asicVendor: "Broadcom", asicModel: "Trident III", asicSeries: "memory Memory",
|
|
rackUnits: 1, maxPowerW: 460,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 8, storageGb: 32, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, cumulusCompatible: true, onieSupport: true,
|
|
ocpStatus: "Accepted",
|
|
supportedNos: ["SONiC", "ONL", "Cumulus", "DENT", "FBOSS"],
|
|
sonicHwsku: "Edgecore-AS7726-32X",
|
|
transceiverFormFactors: ["QSFP28", "SFP+"],
|
|
catalogUrl: "https://www.edge-core.com/product/as7726-32x/",
|
|
tags: ["100G", "whitebox", "leaf", "spine", "OCP", "Trident3"],
|
|
},
|
|
{
|
|
vendor: "Edgecore Networks", vendorWebsite: "https://www.edge-core.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "AS7712-32X", series: "AS7712", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 6.4, forwardingRateMpps: 4760,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk", asicSeries: "memory Memory",
|
|
rackUnits: 1, maxPowerW: 460,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 8, storageGb: 32, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, cumulusCompatible: true, onieSupport: true,
|
|
ocpStatus: "Accepted",
|
|
supportedNos: ["SONiC", "ONL", "Cumulus", "FBOSS"],
|
|
sonicHwsku: "Edgecore-AS7712-32X",
|
|
transceiverFormFactors: ["QSFP28"],
|
|
catalogUrl: "https://www.edge-core.com/product/as7712-32x/",
|
|
tags: ["100G", "whitebox", "leaf", "spine", "OCP", "Tomahawk"],
|
|
},
|
|
{
|
|
vendor: "Edgecore Networks", vendorWebsite: "https://www.edge-core.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "DCS204", series: "DCS200", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "25G_SFP28": 48, "100G_QSFP28": 8 }, totalPorts: 56,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 2.0,
|
|
asicVendor: "Broadcom", asicModel: "Trident III", asicSeries: "memory Memory",
|
|
rackUnits: 1, maxPowerW: 450,
|
|
cpu: "Intel Atom C3558", cpuCores: 4, ramGb: 8, storageGb: 32, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
ocpStatus: "Inspired",
|
|
supportedNos: ["SONiC", "ONL"],
|
|
transceiverFormFactors: ["SFP28", "QSFP28"],
|
|
tags: ["25G", "whitebox", "ToR", "leaf"],
|
|
},
|
|
{
|
|
vendor: "Edgecore Networks", vendorWebsite: "https://www.edge-core.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "Minipack2", series: "Minipack", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 128 }, totalPorts: 128,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 51.2,
|
|
asicVendor: "Broadcom", asicModel: "Memory Tomahawk 4", asicSeries: "memory Memory",
|
|
rackUnits: 4, maxPowerW: 5000,
|
|
cpu: "Intel Xeon D-1649N", cpuCores: 8, ramGb: 32, storageGb: 128, storageType: "SSD",
|
|
sonicCompatible: true, fbossCompatible: true, onieSupport: true,
|
|
ocpStatus: "Accepted",
|
|
supportedNos: ["SONiC", "FBOSS"],
|
|
transceiverFormFactors: ["QSFP-DD"],
|
|
tags: ["400G", "whitebox", "modular", "chassis", "OCP", "Meta"],
|
|
},
|
|
];
|
|
|
|
// ═══════════════════════════════════════════════════════
|
|
// CELESTICA
|
|
// ═══════════════════════════════════════════════════════
|
|
const CELESTICA: WhiteboxSeed[] = [
|
|
{
|
|
vendor: "Celestica", vendorWebsite: "https://www.celestica.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "DS5000", series: "DS5000", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "800G_OSFP": 64 }, totalPorts: 64,
|
|
maxSpeedGbps: 800, switchingCapacityTbps: 51.2,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 5", asicSeries: "memory Memory",
|
|
rackUnits: 2, maxPowerW: 3200,
|
|
cpu: "Intel Xeon D-1649N", cpuCores: 8, ramGb: 32, storageGb: 128, storageType: "SSD",
|
|
sonicCompatible: true, onieSupport: true,
|
|
ocpStatus: "Inspired",
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["OSFP"],
|
|
tags: ["800G", "whitebox", "spine", "AI-fabric", "Tomahawk5"],
|
|
},
|
|
{
|
|
vendor: "Celestica", vendorWebsite: "https://www.celestica.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "DS4000", series: "DS4000", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 12.8,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 4", asicSeries: "memory Memory",
|
|
rackUnits: 1, maxPowerW: 1500,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 16, storageGb: 64, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
ocpStatus: "Inspired",
|
|
supportedNos: ["SONiC", "ONL"],
|
|
transceiverFormFactors: ["QSFP-DD"],
|
|
tags: ["400G", "whitebox", "spine", "Tomahawk4"],
|
|
},
|
|
{
|
|
vendor: "Celestica", vendorWebsite: "https://www.celestica.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "Seastone2", series: "Seastone", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 6.4,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk", asicSeries: "memory Memory",
|
|
rackUnits: 1, maxPowerW: 460,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 8, storageGb: 32, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
ocpStatus: "Accepted",
|
|
supportedNos: ["SONiC", "ONL", "Cumulus"],
|
|
sonicHwsku: "Celestica-Seastone2",
|
|
transceiverFormFactors: ["QSFP28"],
|
|
tags: ["100G", "whitebox", "leaf", "spine", "OCP"],
|
|
},
|
|
{
|
|
vendor: "Celestica", vendorWebsite: "https://www.celestica.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "Midstone-200i", series: "Midstone", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "25G_SFP28": 48, "100G_QSFP28": 8 }, totalPorts: 56,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 2.0,
|
|
asicVendor: "Broadcom", asicModel: "Trident III",
|
|
rackUnits: 1, maxPowerW: 450,
|
|
cpu: "Intel Atom C3558", cpuCores: 4, ramGb: 8, storageGb: 32, storageType: "SSD",
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL"],
|
|
transceiverFormFactors: ["SFP28", "QSFP28"],
|
|
tags: ["25G", "whitebox", "ToR", "leaf"],
|
|
},
|
|
];
|
|
|
|
// ═══════════════════════════════════════════════════════
|
|
// DELTA NETWORKS
|
|
// ═══════════════════════════════════════════════════════
|
|
const DELTA: WhiteboxSeed[] = [
|
|
{
|
|
vendor: "Delta Networks", vendorWebsite: "https://www.deltaww.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "AG9064v2", series: "AG9064", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 64 }, totalPorts: 64,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 25.6,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 3",
|
|
rackUnits: 2, maxPowerW: 2500,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 16, storageGb: 64, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL"],
|
|
sonicHwsku: "Delta-AG9064v2",
|
|
transceiverFormFactors: ["QSFP-DD"],
|
|
tags: ["400G", "whitebox", "spine", "Tomahawk3"],
|
|
},
|
|
{
|
|
vendor: "Delta Networks", vendorWebsite: "https://www.deltaww.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "AG9032v2A", series: "AG9032", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 6.4,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk+",
|
|
rackUnits: 1, maxPowerW: 480,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 8, storageGb: 32, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL", "DENT"],
|
|
sonicHwsku: "Delta-AG9032v2A",
|
|
transceiverFormFactors: ["QSFP28"],
|
|
tags: ["100G", "whitebox", "leaf", "spine"],
|
|
},
|
|
{
|
|
vendor: "Delta Networks", vendorWebsite: "https://www.deltaww.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "AGC7648A", series: "AGC7648", category: "DataCenter", layer: "L2/L3",
|
|
portsConfig: { "25G_SFP28": 48, "100G_QSFP28": 6 }, totalPorts: 54,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 1.8,
|
|
asicVendor: "Broadcom", asicModel: "Trident III",
|
|
rackUnits: 1, maxPowerW: 420,
|
|
cpu: "Intel Atom C3558", cpuCores: 4, ramGb: 8, storageGb: 32, storageType: "SSD",
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL"],
|
|
transceiverFormFactors: ["SFP28", "QSFP28"],
|
|
tags: ["25G", "whitebox", "ToR", "leaf"],
|
|
},
|
|
{
|
|
vendor: "Delta Networks", vendorWebsite: "https://www.deltaww.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "AG5648", series: "AG5648", category: "DataCenter", layer: "L2/L3",
|
|
portsConfig: { "10G_SFP+": 48, "40G_QSFP+": 6 }, totalPorts: 54,
|
|
maxSpeedGbps: 40, switchingCapacityTbps: 0.72,
|
|
asicVendor: "Broadcom", asicModel: "Memory Memory",
|
|
rackUnits: 1, maxPowerW: 350,
|
|
sonicCompatible: true, onlCompatible: true, dentCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL", "DENT"],
|
|
transceiverFormFactors: ["SFP+", "QSFP+"],
|
|
tags: ["10G", "whitebox", "campus", "enterprise", "DENT"],
|
|
},
|
|
];
|
|
|
|
// ═══════════════════════════════════════════════════════
|
|
// QUANTA CLOUD TECHNOLOGY (QCT)
|
|
// ═══════════════════════════════════════════════════════
|
|
const QCT: WhiteboxSeed[] = [
|
|
{
|
|
vendor: "Quanta Cloud Technology", vendorWebsite: "https://www.qct.io",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "QuantaMesh T9032-IX9", series: "QuantaMesh T9032", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 12.8,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 3",
|
|
rackUnits: 1, maxPowerW: 1500,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 16, storageGb: 64, storageType: "SSD",
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL"],
|
|
sonicHwsku: "QuantaMesh-T9032-IX9",
|
|
transceiverFormFactors: ["QSFP-DD"],
|
|
catalogUrl: "https://www.qct.io/product/index/Networking",
|
|
tags: ["400G", "whitebox", "spine", "Tomahawk3"],
|
|
},
|
|
{
|
|
vendor: "Quanta Cloud Technology", vendorWebsite: "https://www.qct.io",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "QuantaMesh T7064-IX4", series: "QuantaMesh T7064", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 64 }, totalPorts: 64,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 12.8,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 2",
|
|
rackUnits: 2, maxPowerW: 900,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 8, storageGb: 32, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL", "Cumulus"],
|
|
transceiverFormFactors: ["QSFP28"],
|
|
tags: ["100G", "whitebox", "spine", "Tomahawk2"],
|
|
},
|
|
{
|
|
vendor: "Quanta Cloud Technology", vendorWebsite: "https://www.qct.io",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "QuantaMesh T7032-IX1", series: "QuantaMesh T7032", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 6.4,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk",
|
|
rackUnits: 1, maxPowerW: 460,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 8, storageGb: 32, storageType: "SSD",
|
|
sonicCompatible: true, onlCompatible: true, cumulusCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL", "Cumulus"],
|
|
sonicHwsku: "QuantaMesh-T7032-IX1",
|
|
transceiverFormFactors: ["QSFP28"],
|
|
tags: ["100G", "whitebox", "leaf", "spine"],
|
|
},
|
|
{
|
|
vendor: "Quanta Cloud Technology", vendorWebsite: "https://www.qct.io",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "QuantaMesh T3048-LY8", series: "QuantaMesh T3048", category: "DataCenter", layer: "L2/L3",
|
|
portsConfig: { "25G_SFP28": 48, "100G_QSFP28": 8 }, totalPorts: 56,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 2.0,
|
|
asicVendor: "Broadcom", asicModel: "Trident III",
|
|
rackUnits: 1, maxPowerW: 420,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL"],
|
|
transceiverFormFactors: ["SFP28", "QSFP28"],
|
|
tags: ["25G", "whitebox", "ToR", "leaf"],
|
|
},
|
|
];
|
|
|
|
// ═══════════════════════════════════════════════════════
|
|
// UFISPACE
|
|
// ═══════════════════════════════════════════════════════
|
|
const UFISPACE: WhiteboxSeed[] = [
|
|
{
|
|
vendor: "UfiSpace", vendorWebsite: "https://www.ufispace.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "S9600-72XC", series: "S9600", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 72 }, totalPorts: 72,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 14.4,
|
|
asicVendor: "Broadcom", asicModel: "Jericho2",
|
|
rackUnits: 2, maxPowerW: 1200,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 16, storageGb: 64, storageType: "SSD",
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
sonicHwsku: "UfiSpace-S9600-72XC",
|
|
transceiverFormFactors: ["QSFP28"],
|
|
catalogUrl: "https://www.ufispace.com/products/datacenter-switches",
|
|
tags: ["100G", "whitebox", "spine", "Jericho2", "deep-buffer"],
|
|
},
|
|
{
|
|
vendor: "UfiSpace", vendorWebsite: "https://www.ufispace.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "S9600-32X", series: "S9600", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 6.4,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk",
|
|
rackUnits: 1, maxPowerW: 460,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 8, storageGb: 32, storageType: "SSD",
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["QSFP28"],
|
|
tags: ["100G", "whitebox", "leaf", "spine"],
|
|
},
|
|
{
|
|
vendor: "UfiSpace", vendorWebsite: "https://www.ufispace.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "S9700-53DX", series: "S9700", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 32, "100G_QSFP28": 20 }, totalPorts: 52,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 14.8,
|
|
asicVendor: "Broadcom", asicModel: "Jericho2",
|
|
rackUnits: 2, maxPowerW: 2000,
|
|
cpu: "Intel Xeon D-1649N", cpuCores: 8, ramGb: 16, storageGb: 64, storageType: "SSD",
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["QSFP-DD", "QSFP28"],
|
|
tags: ["400G", "whitebox", "disaggregated", "chassis", "DDC"],
|
|
},
|
|
{
|
|
vendor: "UfiSpace", vendorWebsite: "https://www.ufispace.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "S9510-28DC", series: "S9510", category: "Edge", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 20, "10G_SFP+": 8 }, totalPorts: 28,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 2.4,
|
|
asicVendor: "Broadcom", asicModel: "Memory Trident III",
|
|
rackUnits: 1, maxPowerW: 350,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["QSFP28", "SFP+"],
|
|
tags: ["cell-site", "whitebox", "edge", "DCSG", "telecom"],
|
|
},
|
|
{
|
|
vendor: "UfiSpace", vendorWebsite: "https://www.ufispace.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "S9600-30DX", series: "S9600", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 30, "10G_SFP+": 2 }, totalPorts: 32,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 12.0,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 3",
|
|
rackUnits: 1, maxPowerW: 1500,
|
|
cpu: "Intel Xeon D-1527", cpuCores: 4, ramGb: 16, storageGb: 64, storageType: "SSD",
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["QSFP-DD", "SFP+"],
|
|
tags: ["400G", "whitebox", "spine", "Tomahawk3"],
|
|
},
|
|
];
|
|
|
|
// ═══════════════════════════════════════════════════════
|
|
// INVENTEC
|
|
// ═══════════════════════════════════════════════════════
|
|
const INVENTEC: WhiteboxSeed[] = [
|
|
{
|
|
vendor: "Inventec", vendorWebsite: "https://www.inventec.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "D7332", series: "D7332", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 12.8,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 3",
|
|
rackUnits: 1, maxPowerW: 1500,
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL"],
|
|
transceiverFormFactors: ["QSFP-DD"],
|
|
tags: ["400G", "whitebox", "spine"],
|
|
},
|
|
{
|
|
vendor: "Inventec", vendorWebsite: "https://www.inventec.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "D7264Q28B", series: "D7264", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 64 }, totalPorts: 64,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 12.8,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 2",
|
|
rackUnits: 2, maxPowerW: 900,
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL"],
|
|
sonicHwsku: "Inventec-D7264Q28B",
|
|
transceiverFormFactors: ["QSFP28"],
|
|
tags: ["100G", "whitebox", "spine", "Tomahawk2"],
|
|
},
|
|
{
|
|
vendor: "Inventec", vendorWebsite: "https://www.inventec.com",
|
|
vendorOpts: { isOdm: true, ocpMember: true, sonicContributor: true },
|
|
model: "D7054Q28B", series: "D7054", category: "DataCenter", layer: "L2/L3",
|
|
portsConfig: { "25G_SFP28": 48, "100G_QSFP28": 6 }, totalPorts: 54,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 1.8,
|
|
asicVendor: "Broadcom", asicModel: "Trident III",
|
|
rackUnits: 1, maxPowerW: 420,
|
|
sonicCompatible: true, onlCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC", "ONL"],
|
|
transceiverFormFactors: ["SFP28", "QSFP28"],
|
|
tags: ["25G", "whitebox", "ToR", "leaf"],
|
|
},
|
|
];
|
|
|
|
// ═══════════════════════════════════════════════════════
|
|
// ASTERFUSION
|
|
// ═══════════════════════════════════════════════════════
|
|
const ASTERFUSION: WhiteboxSeed[] = [
|
|
{
|
|
vendor: "Asterfusion", vendorWebsite: "https://www.asterfusion.com",
|
|
vendorOpts: { isOdm: true, ocpMember: false, sonicContributor: true },
|
|
model: "CX864E-N", series: "CX864", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "800G_OSFP": 64 }, totalPorts: 64,
|
|
maxSpeedGbps: 800, switchingCapacityTbps: 51.2,
|
|
asicVendor: "Marvell", asicModel: "Teralynx 10",
|
|
rackUnits: 2, maxPowerW: 3000,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["OSFP"],
|
|
tags: ["800G", "whitebox", "spine", "AI-fabric", "Marvell"],
|
|
},
|
|
{
|
|
vendor: "Asterfusion", vendorWebsite: "https://www.asterfusion.com",
|
|
vendorOpts: { isOdm: true, ocpMember: false, sonicContributor: true },
|
|
model: "CX732Q-N", series: "CX732", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 12.8,
|
|
asicVendor: "Marvell", asicModel: "Teralynx 7",
|
|
rackUnits: 1, maxPowerW: 1500,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["QSFP-DD"],
|
|
tags: ["400G", "whitebox", "spine", "Marvell"],
|
|
},
|
|
{
|
|
vendor: "Asterfusion", vendorWebsite: "https://www.asterfusion.com",
|
|
vendorOpts: { isOdm: true, ocpMember: false, sonicContributor: true },
|
|
model: "CX564P-N", series: "CX564", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 64 }, totalPorts: 64,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 12.8,
|
|
asicVendor: "Marvell", asicModel: "Teralynx 7",
|
|
rackUnits: 2, maxPowerW: 800,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["QSFP28"],
|
|
tags: ["100G", "whitebox", "spine", "Marvell"],
|
|
},
|
|
{
|
|
vendor: "Asterfusion", vendorWebsite: "https://www.asterfusion.com",
|
|
vendorOpts: { isOdm: true, ocpMember: false, sonicContributor: true },
|
|
model: "CX532P-N", series: "CX532", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 32, "10G_SFP+": 2 }, totalPorts: 34,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 6.4,
|
|
asicVendor: "Marvell", asicModel: "Teralynx",
|
|
rackUnits: 1, maxPowerW: 460,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["QSFP28", "SFP+"],
|
|
tags: ["100G", "whitebox", "leaf", "spine", "Marvell"],
|
|
},
|
|
{
|
|
vendor: "Asterfusion", vendorWebsite: "https://www.asterfusion.com",
|
|
vendorOpts: { isOdm: true, ocpMember: false, sonicContributor: true },
|
|
model: "CX308P-48Y-N", series: "CX308", category: "DataCenter", layer: "L2/L3",
|
|
portsConfig: { "25G_SFP28": 48, "100G_QSFP28": 8 }, totalPorts: 56,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 2.0,
|
|
asicVendor: "Marvell", asicModel: "Prestera",
|
|
rackUnits: 1, maxPowerW: 400,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["SFP28", "QSFP28"],
|
|
tags: ["25G", "whitebox", "ToR", "leaf", "Marvell"],
|
|
},
|
|
];
|
|
|
|
// ═══════════════════════════════════════════════════════
|
|
// NETBERG
|
|
// ═══════════════════════════════════════════════════════
|
|
const NETBERG: WhiteboxSeed[] = [
|
|
{
|
|
vendor: "Netberg", vendorWebsite: "https://netbergtw.com",
|
|
vendorOpts: { isOdm: true, ocpMember: false, sonicContributor: true },
|
|
model: "Aurora 810", series: "Aurora", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "800G_OSFP": 64 }, totalPorts: 64,
|
|
maxSpeedGbps: 800, switchingCapacityTbps: 51.2,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 5",
|
|
rackUnits: 2, maxPowerW: 3200,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["OSFP"],
|
|
tags: ["800G", "whitebox", "spine", "AI-fabric", "Tomahawk5"],
|
|
},
|
|
{
|
|
vendor: "Netberg", vendorWebsite: "https://netbergtw.com",
|
|
vendorOpts: { isOdm: true, ocpMember: false, sonicContributor: true },
|
|
model: "Aurora 750", series: "Aurora", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 12.8,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 3",
|
|
rackUnits: 1, maxPowerW: 1500,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["QSFP-DD"],
|
|
tags: ["400G", "whitebox", "spine", "Tomahawk3"],
|
|
},
|
|
{
|
|
vendor: "Netberg", vendorWebsite: "https://netbergtw.com",
|
|
vendorOpts: { isOdm: true, ocpMember: false, sonicContributor: true },
|
|
model: "Aurora 620", series: "Aurora", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "100G_QSFP28": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 6.4,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk",
|
|
rackUnits: 1, maxPowerW: 460,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["QSFP28"],
|
|
tags: ["100G", "whitebox", "leaf", "spine"],
|
|
},
|
|
];
|
|
|
|
// ═══════════════════════════════════════════════════════
|
|
// RAGILE NETWORKS
|
|
// ═══════════════════════════════════════════════════════
|
|
const RAGILE: WhiteboxSeed[] = [
|
|
{
|
|
vendor: "Ragile Networks", vendorWebsite: "https://www.ragilenetworks.com",
|
|
vendorOpts: { isOdm: true, ocpMember: false, sonicContributor: true },
|
|
model: "RA-B6920-4S", series: "RA-B6920", category: "DataCenter", layer: "L3",
|
|
portsConfig: { "400G_QSFP-DD": 32 }, totalPorts: 32,
|
|
maxSpeedGbps: 400, switchingCapacityTbps: 12.8,
|
|
asicVendor: "Broadcom", asicModel: "Tomahawk 3",
|
|
rackUnits: 1, maxPowerW: 1500,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["QSFP-DD"],
|
|
tags: ["400G", "whitebox", "spine"],
|
|
},
|
|
{
|
|
vendor: "Ragile Networks", vendorWebsite: "https://www.ragilenetworks.com",
|
|
vendorOpts: { isOdm: true, ocpMember: false, sonicContributor: true },
|
|
model: "RA-B6510-48V8C", series: "RA-B6510", category: "DataCenter", layer: "L2/L3",
|
|
portsConfig: { "25G_SFP28": 48, "100G_QSFP28": 8 }, totalPorts: 56,
|
|
maxSpeedGbps: 100, switchingCapacityTbps: 2.0,
|
|
asicVendor: "Broadcom", asicModel: "Trident III",
|
|
rackUnits: 1, maxPowerW: 420,
|
|
sonicCompatible: true, onieSupport: true,
|
|
supportedNos: ["SONiC"],
|
|
transceiverFormFactors: ["SFP28", "QSFP28"],
|
|
tags: ["25G", "whitebox", "ToR", "leaf"],
|
|
},
|
|
];
|
|
|
|
// ═══════════════════════════════════════════════════════
|
|
// SEED FUNCTION
|
|
// ═══════════════════════════════════════════════════════
|
|
|
|
const ALL_WHITEBOX = [
|
|
...EDGECORE, ...CELESTICA, ...DELTA, ...QCT,
|
|
...UFISPACE, ...INVENTEC, ...ASTERFUSION, ...NETBERG, ...RAGILE,
|
|
];
|
|
|
|
export async function seedWhiteboxSwitches(): Promise<void> {
|
|
console.log(`\n=== Seeding ${ALL_WHITEBOX.length} Whitebox Switches ===\n`);
|
|
let created = 0;
|
|
let updated = 0;
|
|
|
|
for (const sw of ALL_WHITEBOX) {
|
|
try {
|
|
const vendorId = await ensureWhiteboxVendor(sw.vendor, sw.vendorWebsite, sw.vendorOpts);
|
|
|
|
const existing = await pool.query(
|
|
`SELECT id FROM switches WHERE model = $1 AND vendor_id = $2`,
|
|
[sw.model, vendorId]
|
|
);
|
|
const isNew = existing.rows.length === 0;
|
|
|
|
await findOrCreateSwitch({
|
|
model: sw.model,
|
|
vendorId,
|
|
series: sw.series,
|
|
category: sw.category,
|
|
layer: sw.layer,
|
|
portsConfig: sw.portsConfig,
|
|
totalPorts: sw.totalPorts,
|
|
maxSpeedGbps: sw.maxSpeedGbps,
|
|
switchingCapacityTbps: sw.switchingCapacityTbps,
|
|
forwardingRateMpps: sw.forwardingRateMpps,
|
|
asicVendor: sw.asicVendor,
|
|
asicModel: sw.asicModel,
|
|
asicSeries: sw.asicSeries,
|
|
rackUnits: sw.rackUnits,
|
|
maxPowerW: sw.maxPowerW,
|
|
sonicCompatible: sw.sonicCompatible,
|
|
tags: sw.tags,
|
|
// Whitebox fields
|
|
isWhitebox: true,
|
|
isOcpAccepted: sw.ocpStatus === "Accepted",
|
|
ocpStatus: sw.ocpStatus || "None",
|
|
supportedNos: sw.supportedNos || [],
|
|
onlCompatible: sw.onlCompatible,
|
|
dentCompatible: sw.dentCompatible,
|
|
cumulusCompatible: sw.cumulusCompatible,
|
|
fbossCompatible: sw.fbossCompatible,
|
|
cpu: sw.cpu,
|
|
cpuCores: sw.cpuCores,
|
|
ramGb: sw.ramGb,
|
|
storageGb: sw.storageGb,
|
|
storageType: sw.storageType,
|
|
transceiverFormFactors: sw.transceiverFormFactors,
|
|
catalogUrl: sw.catalogUrl,
|
|
sonicHwsku: sw.sonicHwsku,
|
|
onieSupport: sw.onieSupport,
|
|
scrapeSource: "whitebox-seed",
|
|
});
|
|
|
|
if (isNew) {
|
|
created++;
|
|
console.log(` + ${sw.vendor} ${sw.model} (${sw.maxSpeedGbps}G, ${sw.asicVendor} ${sw.asicModel})`);
|
|
} else {
|
|
updated++;
|
|
}
|
|
} catch (err) {
|
|
console.error(` ! Error seeding ${sw.vendor} ${sw.model}:`, err);
|
|
}
|
|
}
|
|
|
|
console.log(`\n Created: ${created}, Updated: ${updated}, Total: ${ALL_WHITEBOX.length}\n`);
|
|
}
|