models

package
v0.5.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 16, 2026 License: MIT Imports: 0 Imported by: 0

Documentation

Overview

Package models provides OT network model definitions.

Package models provides OT network model definitions.

Package models provides OT network model definitions.

Package models provides node and edge definitions for OT network models. These definitions are used by the builder to construct graph instances.

Package models provides OT network model definitions.

Index

Constants

View Source
const (
	NodeTypeTechnical = "technical"
	NodeTypeHuman     = "human"
	NodeTypeProcess   = "process"
	NodeTypeExternal  = "external"
)

Node type constants used throughout the codebase.

View Source
const (
	EdgeTypeTechnical   = "TECHNICAL"
	EdgeTypeHumanAccess = "HUMAN_ACCESS"
	EdgeTypeProcess     = "PROCESS"
)

Edge type constants used for layer analysis.

Variables

View Source
var ChemicalFacilityEdgePairs = [][2]string{
	{"SIS_Controller", "SIS_Logic_Solver"},
	{"SIS_Logic_Solver", "ESD_Panel"},
	{"SIS_Controller", "DCS_Server"},
	{"DCS_Controller1", "DCS_Server"},
	{"DCS_Controller2", "DCS_Server"},
	{"DCS_Server", "Op_Console1"},
	{"DCS_Server", "Op_Console2"},
	{"DCS_Server", "OT_Firewall"},
	{"OT_Firewall", "Historian"},
	{"OT_Firewall", "MES_Server"},
	{"OT_Firewall", "Eng_Station"},
	{"OT_Firewall", "DMZ_Firewall"},
	{"DMZ_Firewall", "Patch_Relay"},
	{"DMZ_Firewall", "Remote_Access"},
	{"DMZ_Firewall", "Corp_Firewall"},
	{"Corp_Firewall", "Corp_Network"},
	{"Corp_Network", "ERP"},
	{"Corp_Network", "Internet_GW"},
	{"DCS_Engineer", "Eng_Station"},
	{"DCS_Engineer", "DCS_Server"},
	{"DCS_Engineer", "DCS_Controller1"},
	{"DCS_Engineer", "DCS_Controller2"},
	{"Process_Operator", "Op_Console1"},
	{"Process_Operator", "Op_Console2"},
	{"Safety_Engineer", "SIS_Controller"},
	{"Safety_Engineer", "SIS_Logic_Solver"},
	{"Safety_Engineer", "DCS_Server"},
	{"IT_OT_Coord", "OT_Firewall"},
	{"IT_OT_Coord", "DMZ_Firewall"},
	{"IT_OT_Coord", "Corp_Firewall"},
	{"IT_OT_Coord", "Remote_Access"},
	{"IT_OT_Coord", "Patch_Relay"},
	{"IT_OT_Coord", "DCS_Engineer"},
	{"IT_OT_Coord", "Site_IT"},
	{"Site_IT", "Corp_Network"},
	{"Site_IT", "Corp_Firewall"},
	{"Site_IT", "DMZ_Firewall"},
}

ChemicalFacilityEdgePairs defines edges as simple [from, to] pairs. Edge types are auto-detected based on node types.

View Source
var ChemicalFacilityNodes = []NodeDef{

	{"SIS_Controller", []string{"Technical", "SIS", "SafetyCritical"}, "Safety", NodeTypeTechnical, ""},
	{"SIS_Logic_Solver", []string{"Technical", "SIS"}, "Safety", NodeTypeTechnical, ""},
	{"ESD_Panel", []string{"Technical", "SIS"}, "Safety", NodeTypeTechnical, ""},

	{"DCS_Controller1", []string{"Technical", "DCS"}, "DCS", NodeTypeTechnical, ""},
	{"DCS_Controller2", []string{"Technical", "DCS"}, "DCS", NodeTypeTechnical, ""},
	{"DCS_Server", []string{"Technical", "DCS", "Server"}, "DCS", NodeTypeTechnical, ""},
	{"Op_Console1", []string{"Technical", "Console"}, "DCS", NodeTypeTechnical, ""},
	{"Op_Console2", []string{"Technical", "Console"}, "DCS", NodeTypeTechnical, ""},

	{"OT_Firewall", []string{"Technical", "Firewall"}, "Site", NodeTypeTechnical, ""},
	{"Historian", []string{"Technical", "Database"}, "Site", NodeTypeTechnical, ""},
	{"MES_Server", []string{"Technical", "Server"}, "Site", NodeTypeTechnical, ""},
	{"Eng_Station", []string{"Technical", "Workstation"}, "Site", NodeTypeTechnical, ""},

	{"DMZ_Firewall", []string{"Technical", "Firewall"}, "DMZ", NodeTypeTechnical, ""},
	{"Patch_Relay", []string{"Technical", "Server"}, "DMZ", NodeTypeTechnical, ""},
	{"Remote_Access", []string{"Technical", "Gateway"}, "DMZ", NodeTypeTechnical, ""},

	{"Corp_Firewall", []string{"Technical", "Firewall"}, "Corporate", NodeTypeTechnical, ""},
	{"Corp_Network", []string{"Technical", "Network"}, "Corporate", NodeTypeTechnical, ""},
	{"ERP", []string{"Technical", "Server"}, "Corporate", NodeTypeTechnical, ""},
	{"Internet_GW", []string{"Technical", "Gateway"}, "Corporate", NodeTypeTechnical, ""},

	{"DCS_Engineer", []string{"Human", "Engineer"}, "Human", NodeTypeHuman, ""},
	{"Process_Operator", []string{"Human", "Operator"}, "Human", NodeTypeHuman, ""},
	{"Safety_Engineer", []string{"Human", "Engineer", "SafetyCertified"}, "Human", NodeTypeHuman, ""},
	{"IT_OT_Coord", []string{"Human", "Coordinator"}, "Human", NodeTypeHuman, ""},
	{"Site_IT", []string{"Human", "Admin"}, "Human", NodeTypeHuman, ""},
}

ChemicalFacilityNodes defines all 24 nodes for the Chemical Facility model. Demonstrates IT/OT bridge concentration through the IT_OT_Coord role.

View Source
var StevesUtilityEdges = []EdgeDef{

	{"PLC_Turbine1", "HMI_Control1", EdgeTypeTechnical},
	{"PLC_Turbine2", "HMI_Control2", EdgeTypeTechnical},
	{"PLC_Substation", "HMI_Control1", EdgeTypeTechnical},
	{"RTU_Remote1", "SCADA_Server", EdgeTypeTechnical},
	{"RTU_Remote2", "SCADA_Server", EdgeTypeTechnical},
	{"Safety_PLC", "HMI_Control1", EdgeTypeTechnical},
	{"Safety_PLC", "HMI_Control2", EdgeTypeTechnical},
	{"HMI_Control1", "SCADA_Server", EdgeTypeTechnical},
	{"HMI_Control2", "SCADA_Server", EdgeTypeTechnical},
	{"SCADA_Server", "Historian_OT", EdgeTypeTechnical},
	{"SCADA_Server", "Eng_Workstation", EdgeTypeTechnical},
	{"SCADA_Server", "OT_Switch_Core", EdgeTypeTechnical},
	{"Historian_OT", "OT_Switch_Core", EdgeTypeTechnical},
	{"Eng_Workstation", "OT_Switch_Core", EdgeTypeTechnical},
	{"OT_Switch_Core", "Patch_Server", EdgeTypeTechnical},
	{"OT_Switch_Core", "AD_Server_OT", EdgeTypeTechnical},
	{"OT_Switch_Core", "Firewall_ITOT", EdgeTypeTechnical},
	{"Firewall_ITOT", "Jump_Server", EdgeTypeTechnical},
	{"Firewall_ITOT", "Data_Diode", EdgeTypeTechnical},
	{"Data_Diode", "Historian_OT", EdgeTypeTechnical},
	{"Firewall_ITOT", "IT_Switch_Core", EdgeTypeTechnical},
	{"Jump_Server", "IT_Switch_Core", EdgeTypeTechnical},
	{"IT_Switch_Core", "Email_Server", EdgeTypeTechnical},
	{"IT_Switch_Core", "ERP_System", EdgeTypeTechnical},
	{"IT_Switch_Core", "AD_Server_IT", EdgeTypeTechnical},
	{"IT_Switch_Core", "VPN_Gateway", EdgeTypeTechnical},

	{"Steve", "PLC_Turbine1", EdgeTypeHumanAccess},
	{"Steve", "PLC_Turbine2", EdgeTypeHumanAccess},
	{"Steve", "PLC_Substation", EdgeTypeHumanAccess},
	{"Steve", "HMI_Control1", EdgeTypeHumanAccess},
	{"Steve", "HMI_Control2", EdgeTypeHumanAccess},
	{"Steve", "SCADA_Server", EdgeTypeHumanAccess},
	{"Steve", "Eng_Workstation", EdgeTypeHumanAccess},
	{"Steve", "Historian_OT", EdgeTypeHumanAccess},
	{"Steve", "OT_Switch_Core", EdgeTypeHumanAccess},
	{"Steve", "Patch_Server", EdgeTypeHumanAccess},
	{"Steve", "Jump_Server", EdgeTypeHumanAccess},
	{"Steve", "Firewall_ITOT", EdgeTypeHumanAccess},
	{"Steve", "VPN_Gateway", EdgeTypeHumanAccess},
	{"Steve", "AD_Server_OT", EdgeTypeHumanAccess},
	{"Steve", "Vendor_Rep", EdgeTypeHumanAccess},
	{"Steve", "OT_Manager", EdgeTypeHumanAccess},
	{"Steve", "Control_Op1", EdgeTypeHumanAccess},
	{"Steve", "Control_Op2", EdgeTypeHumanAccess},
	{"Steve", "IT_Admin", EdgeTypeHumanAccess},

	{"Control_Op1", "HMI_Control1", EdgeTypeHumanAccess},
	{"Control_Op1", "HMI_Control2", EdgeTypeHumanAccess},
	{"Control_Op2", "HMI_Control1", EdgeTypeHumanAccess},
	{"Control_Op2", "HMI_Control2", EdgeTypeHumanAccess},
	{"OT_Manager", "SCADA_Server", EdgeTypeHumanAccess},
	{"OT_Manager", "Plant_Manager", EdgeTypeHumanAccess},
	{"IT_Admin", "IT_Switch_Core", EdgeTypeHumanAccess},
	{"IT_Admin", "Email_Server", EdgeTypeHumanAccess},
	{"IT_Admin", "ERP_System", EdgeTypeHumanAccess},
	{"IT_Admin", "AD_Server_IT", EdgeTypeHumanAccess},
	{"IT_Admin", "VPN_Gateway", EdgeTypeHumanAccess},
	{"IT_Admin", "Firewall_ITOT", EdgeTypeHumanAccess},
	{"Plant_Manager", "ERP_System", EdgeTypeHumanAccess},
	{"Plant_Manager", "Email_Server", EdgeTypeHumanAccess},
	{"Vendor_Rep", "VPN_Gateway", EdgeTypeHumanAccess},
	{"Vendor_Rep", "Jump_Server", EdgeTypeHumanAccess},

	{"Steve", "Change_Mgmt_Process", EdgeTypeProcess},
	{"Steve", "Incident_Response", EdgeTypeProcess},
	{"Steve", "Vendor_Access_Process", EdgeTypeProcess},
	{"Steve", "Patch_Approval", EdgeTypeProcess},
	{"Control_Op1", "Incident_Response", EdgeTypeProcess},
	{"Control_Op2", "Incident_Response", EdgeTypeProcess},
	{"OT_Manager", "Change_Mgmt_Process", EdgeTypeProcess},
	{"OT_Manager", "Patch_Approval", EdgeTypeProcess},
	{"Vendor_Rep", "Vendor_Access_Process", EdgeTypeProcess},
}

StevesUtilityEdges defines all edges with their types for layer analysis.

View Source
var StevesUtilityNodes = []NodeDef{

	{"PLC_Turbine1", []string{"Technical", "PLC"}, "L0_Process", NodeTypeTechnical, ""},
	{"PLC_Turbine2", []string{"Technical", "PLC"}, "L0_Process", NodeTypeTechnical, ""},
	{"PLC_Substation", []string{"Technical", "PLC"}, "L0_Process", NodeTypeTechnical, ""},
	{"RTU_Remote1", []string{"Technical", "RTU"}, "L0_Process", NodeTypeTechnical, ""},
	{"RTU_Remote2", []string{"Technical", "RTU"}, "L0_Process", NodeTypeTechnical, ""},

	{"HMI_Control1", []string{"Technical", "HMI"}, "L1_Control", NodeTypeTechnical, ""},
	{"HMI_Control2", []string{"Technical", "HMI"}, "L1_Control", NodeTypeTechnical, ""},
	{"Safety_PLC", []string{"Technical", "PLC", "SafetyCritical"}, "L1_Control", NodeTypeTechnical, ""},

	{"SCADA_Server", []string{"Technical", "SCADA"}, "L2_Supervisory", NodeTypeTechnical, ""},
	{"Historian_OT", []string{"Technical", "Database"}, "L2_Supervisory", NodeTypeTechnical, ""},
	{"Eng_Workstation", []string{"Technical", "Workstation"}, "L2_Supervisory", NodeTypeTechnical, ""},

	{"OT_Switch_Core", []string{"Technical", "NetworkSwitch"}, "L3_SiteOps", NodeTypeTechnical, ""},
	{"Patch_Server", []string{"Technical", "Server"}, "L3_SiteOps", NodeTypeTechnical, ""},
	{"AD_Server_OT", []string{"Technical", "Server"}, "L3_SiteOps", NodeTypeTechnical, ""},

	{"Firewall_ITOT", []string{"Technical", "Firewall"}, "L3.5_DMZ", NodeTypeTechnical, ""},
	{"Jump_Server", []string{"Technical", "Server"}, "L3.5_DMZ", NodeTypeTechnical, ""},
	{"Data_Diode", []string{"Technical", "SecurityDevice"}, "L3.5_DMZ", NodeTypeTechnical, ""},

	{"IT_Switch_Core", []string{"Technical", "NetworkSwitch"}, "L4_IT", NodeTypeTechnical, ""},
	{"Email_Server", []string{"Technical", "Server"}, "L4_IT", NodeTypeTechnical, ""},
	{"ERP_System", []string{"Technical", "Server"}, "L4_IT", NodeTypeTechnical, ""},
	{"AD_Server_IT", []string{"Technical", "Server"}, "L4_IT", NodeTypeTechnical, ""},
	{"VPN_Gateway", []string{"Technical", "Gateway"}, "L4_IT", NodeTypeTechnical, ""},

	{"Steve", []string{"Human", "Operator"}, "Human", NodeTypeHuman, ""},
	{"OT_Manager", []string{"Human", "Manager"}, "Human", NodeTypeHuman, ""},
	{"IT_Admin", []string{"Human", "Admin"}, "Human", NodeTypeHuman, ""},
	{"Control_Op1", []string{"Human", "Operator"}, "Human", NodeTypeHuman, ""},
	{"Control_Op2", []string{"Human", "Operator"}, "Human", NodeTypeHuman, ""},
	{"Plant_Manager", []string{"Human", "Manager"}, "Human", NodeTypeHuman, ""},
	{"Vendor_Rep", []string{"Human", "Vendor"}, "Human", NodeTypeHuman, ""},

	{"Change_Mgmt_Process", []string{"Process", "ChangeManagement"}, "Process", NodeTypeProcess, ""},
	{"Incident_Response", []string{"Process", "IncidentResponse"}, "Process", NodeTypeProcess, ""},
	{"Vendor_Access_Process", []string{"Process", "VendorManagement"}, "Process", NodeTypeProcess, ""},
	{"Patch_Approval", []string{"Process", "PatchManagement"}, "Process", NodeTypeProcess, ""},
}

StevesUtilityNodes defines all 33 nodes for Steve's Utility model. Demonstrates how one helpful senior OT technician accumulates cross-domain access, creating an invisible single point of failure.

View Source
var TelecomEdgeGroups = []EdgeGroup{
	{"BACKBONE", [][2]string{
		{"Core_Router_SYD", "DWDM_SYD_MEL"},
		{"Core_Router_SYD", "DWDM_SYD_BNE"},
		{"Core_Router_SYD", "Core_Router_MEL"},
		{"Core_Router_SYD", "Core_Router_BNE"},
		{"Core_Router_MEL", "DWDM_SYD_MEL"},
		{"Core_Router_MEL", "DWDM_MEL_ADL"},
		{"Core_Router_BNE", "DWDM_SYD_BNE"},
		{"Core_Router_PER", "DWDM_ADL_PER"},
		{"Core_Router_ADL", "DWDM_MEL_ADL"},
		{"Core_Router_ADL", "DWDM_ADL_PER"},
	}},
	{"MOBILE_CORE", [][2]string{
		{"Core_Router_SYD", "PGW_Primary"},
		{"Core_Router_SYD", "MME_Primary"},
		{"Core_Router_MEL", "PGW_Secondary"},
		{"Core_Router_MEL", "MME_Secondary"},
		{"MME_Primary", "SGW_Primary"},
		{"MME_Primary", "HSS_Primary"},
		{"MME_Secondary", "SGW_Secondary"},
		{"MME_Secondary", "HSS_Primary"},
		{"SGW_Primary", "PGW_Primary"},
		{"SGW_Primary", "IMS_Core"},
		{"SGW_Secondary", "PGW_Secondary"},
		{"IMS_Core", "SIP_Trunk_Emergency"},
	}},
	{"ACCESS", [][2]string{
		{"Core_Router_SYD", "Exchange_CBD"},
		{"Core_Router_SYD", "Exchange_North"},
		{"Core_Router_SYD", "Exchange_South"},
		{"Core_Router_SYD", "Exchange_West"},
		{"Core_Router_SYD", "Exchange_Industrial"},
		{"MME_Primary", "Cell_CBD_1"},
		{"MME_Primary", "Cell_CBD_2"},
		{"MME_Primary", "Cell_CBD_3"},
		{"MME_Primary", "Cell_Suburban_1"},
		{"MME_Primary", "Cell_Hospital"},
		{"MME_Primary", "Cell_Emergency_HQ"},
		{"MME_Secondary", "Cell_Suburban_2"},
		{"MME_Secondary", "Cell_Regional_1"},
		{"MME_Secondary", "Cell_Regional_2"},
		{"Exchange_CBD", "Cell_CBD_1"},
		{"Exchange_CBD", "Cell_CBD_2"},
		{"Exchange_CBD", "Cell_CBD_3"},
		{"Exchange_CBD", "Cell_Emergency_HQ"},
		{"Exchange_CBD", "FDH_CBD"},
		{"Exchange_CBD", "FDH_Gov_Precinct"},
		{"Exchange_North", "Cell_Suburban_1"},
		{"Exchange_North", "FDH_Business_Park"},
		{"Exchange_South", "Cell_Suburban_2"},
		{"Exchange_South", "Cell_Hospital"},
		{"Exchange_South", "FDH_Hospital"},
		{"Exchange_West", "Cell_Regional_1"},
		{"Exchange_West", "Cell_Regional_2"},
		{"Exchange_Industrial", "FDH_Data_Centre"},
	}},
	{"MANAGEMENT", [][2]string{
		{"Core_Router_SYD", "NMS_Primary"},
		{"Core_Router_SYD", "Performance_Monitor"},
		{"NMS_Primary", "NMS_Secondary"},
		{"NMS_Primary", "NOC_Dashboard"},
		{"NMS_Primary", "Fault_Mgmt_System"},
		{"NMS_Primary", "Performance_Monitor"},
		{"NMS_Primary", "SIEM_Telecom"},
		{"NMS_Secondary", "NOC_Dashboard"},
		{"SIEM_Telecom", "Corp_Firewall"},
		{"SIEM_Telecom", "AAA_Server"},
		{"SIEM_Telecom", "Security_Manager"},
		{"Fault_Mgmt_System", "NOC_Dashboard"},
		{"Fault_Mgmt_System", "Ticketing_System"},
		{"NOC_Dashboard", "Ticketing_System"},
		{"Ticketing_System", "Workforce_Mgmt"},
		{"Corp_Email", "CTO"},
		{"Corp_ERP", "CTO"},
		{"NOC_Shift_Lead", "NOC_Manager"},
		{"Security_Manager", "CTO"},
		{"Security_Manager", "Regulatory_Compliance"},
		{"Security_Manager", "Vendor_Access_Control"},
		{"Security_Manager", "Patch_Management"},
		{"CTO", "Network_Director"},
		{"CTO", "NOC_Manager"},
		{"CTO", "Change_Advisory_Board"},
		{"CTO", "Regulatory_Compliance"},
		{"NOC_Manager", "Network_Director"},
		{"NOC_Manager", "Incident_Mgmt_Process"},
		{"NOC_Manager", "SLA_Management"},
		{"Network_Director", "Change_Advisory_Board"},
		{"Network_Director", "Capacity_Planning"},
		{"Network_Director", "Disaster_Recovery"},
	}},
	{"BSS_OSS", [][2]string{
		{"Core_Router_SYD", "DNS_Primary"},
		{"Core_Router_SYD", "AAA_Server"},
		{"Core_Router_SYD", "RADIUS_Server"},
		{"Core_Router_MEL", "DNS_Secondary"},
		{"NMS_Primary", "Provisioning_System"},
		{"Billing_System", "CRM_System"},
		{"Billing_System", "Provisioning_System"},
		{"CRM_System", "Corp_ERP"},
		{"Provisioning_System", "Inventory_System"},
		{"Inventory_System", "Workforce_Mgmt"},
		{"DNS_Primary", "DNS_Secondary"},
		{"AAA_Server", "RADIUS_Server"},
	}},
	{"CORPORATE", [][2]string{
		{"Core_Router_SYD", "Corp_Firewall"},
		{"Corp_Firewall", "IT_Switch_Core"},
		{"Corp_Firewall", "Corp_VPN"},
		{"Corp_AD", "IT_Switch_Core"},
		{"Corp_Email", "IT_Switch_Core"},
		{"Corp_ERP", "IT_Switch_Core"},
	}},
	{"INTERCONNECTION", [][2]string{
		{"Core_Router_SYD", "IX_Peering"},
		{"Core_Router_SYD", "Gateway_Internet"},
		{"Core_Router_SYD", "Gateway_Banking"},
		{"Core_Router_SYD", "Gateway_Emergency"},
		{"Core_Router_SYD", "Gateway_Healthcare"},
		{"Core_Router_SYD", "Gateway_Transport"},
		{"Core_Router_SYD", "Gateway_Energy"},
		{"Core_Router_MEL", "IX_Peering"},
		{"Exchange_Industrial", "Gateway_Transport"},
		{"Exchange_Industrial", "Gateway_Energy"},
		{"FDH_CBD", "Gateway_Banking"},
		{"FDH_Business_Park", "Gateway_Banking"},
		{"FDH_Hospital", "Gateway_Healthcare"},
		{"FDH_Gov_Precinct", "Gateway_Emergency"},
		{"IX_Peering", "Gateway_Internet"},
		{"Gateway_Emergency", "SIP_Trunk_Emergency"},
	}},
	{"SECTOR_DEPENDENCY", [][2]string{
		{"FDH_Hospital", "Hospital_Network"},
		{"Gateway_Banking", "Bank_ATM_Network"},
		{"Gateway_Banking", "Bank_Branch_WAN"},
		{"Gateway_Banking", "Bank_Trading_Floor"},
		{"Gateway_Banking", "Bank_SWIFT_Gateway"},
		{"Gateway_Emergency", "Triple_Zero_Centre"},
		{"Gateway_Emergency", "CAD_System"},
		{"Gateway_Emergency", "Police_Radio_GW"},
		{"Gateway_Healthcare", "Hospital_Network"},
		{"Gateway_Healthcare", "Telehealth_Platform"},
		{"Gateway_Healthcare", "Pathology_WAN"},
		{"Gateway_Transport", "Rail_SCADA_Comms"},
		{"Gateway_Transport", "Traffic_Mgmt_System"},
		{"Gateway_Transport", "Port_Operations"},
		{"Gateway_Energy", "Grid_SCADA_Comms"},
		{"Gateway_Energy", "Gas_Pipeline_Comms"},
		{"Gateway_Energy", "Substation_Comms"},
		{"SIP_Trunk_Emergency", "Triple_Zero_Centre"},
		{"CAD_System", "Fire_Dispatch"},
		{"CAD_System", "Ambulance_Dispatch"},
	}},
	{EdgeTypeHumanAccess, [][2]string{
		{"Core_Router_SYD", "Senior_Network_Eng"},
		{"Core_Router_SYD", "IP_Engineer"},
		{"Core_Router_MEL", "Senior_Network_Eng"},
		{"Core_Router_MEL", "IP_Engineer"},
		{"Core_Router_BNE", "Senior_Network_Eng"},
		{"Core_Router_BNE", "IP_Engineer"},
		{"Core_Router_PER", "IP_Engineer"},
		{"Core_Router_ADL", "IP_Engineer"},
		{"DWDM_SYD_MEL", "Optical_Engineer"},
		{"DWDM_SYD_BNE", "Optical_Engineer"},
		{"DWDM_MEL_ADL", "Optical_Engineer"},
		{"DWDM_ADL_PER", "Optical_Engineer"},
		{"MME_Primary", "Senior_Network_Eng"},
		{"MME_Primary", "Mobile_Engineer"},
		{"MME_Secondary", "Senior_Network_Eng"},
		{"MME_Secondary", "Mobile_Engineer"},
		{"SGW_Primary", "Mobile_Engineer"},
		{"SGW_Secondary", "Mobile_Engineer"},
		{"PGW_Primary", "Mobile_Engineer"},
		{"HSS_Primary", "Mobile_Engineer"},
		{"IMS_Core", "Mobile_Engineer"},
		{"Exchange_CBD", "Senior_Network_Eng"},
		{"Exchange_CBD", "Field_Tech_1"},
		{"Exchange_North", "Field_Tech_1"},
		{"Exchange_South", "Field_Tech_2"},
		{"Exchange_West", "Field_Tech_2"},
		{"Cell_CBD_1", "Field_Tech_1"},
		{"Cell_CBD_2", "Field_Tech_1"},
		{"Cell_Suburban_1", "Field_Tech_1"},
		{"Cell_Suburban_2", "Field_Tech_2"},
		{"Cell_Regional_1", "Field_Tech_2"},
		{"Cell_Regional_2", "Field_Tech_2"},
		{"NMS_Primary", "Senior_Network_Eng"},
		{"NMS_Primary", "NOC_Shift_Lead"},
		{"SIEM_Telecom", "NOC_Security_Analyst"},
		{"Fault_Mgmt_System", "Senior_Network_Eng"},
		{"Fault_Mgmt_System", "NOC_Shift_Lead"},
		{"Fault_Mgmt_System", "NOC_Operator_1"},
		{"Fault_Mgmt_System", "NOC_Operator_2"},
		{"NOC_Dashboard", "NOC_Shift_Lead"},
		{"NOC_Dashboard", "NOC_Operator_1"},
		{"NOC_Dashboard", "NOC_Operator_2"},
		{"NOC_Dashboard", "NOC_Security_Analyst"},
		{"Ticketing_System", "NOC_Shift_Lead"},
		{"Ticketing_System", "NOC_Operator_1"},
		{"Ticketing_System", "NOC_Operator_2"},
		{"Billing_System", "BSS_Admin"},
		{"CRM_System", "BSS_Admin"},
		{"Provisioning_System", "Senior_Network_Eng"},
		{"Provisioning_System", "BSS_Admin"},
		{"Inventory_System", "BSS_Admin"},
		{"Workforce_Mgmt", "Field_Tech_1"},
		{"Workforce_Mgmt", "Field_Tech_2"},
		{"DNS_Primary", "Senior_Network_Eng"},
		{"AAA_Server", "Senior_Network_Eng"},
		{"AAA_Server", "IP_Engineer"},
		{"Corp_Firewall", "IT_Admin_Corp"},
		{"Corp_AD", "IT_Admin_Corp"},
		{"Corp_Email", "IT_Admin_Corp"},
		{"Corp_VPN", "Senior_Network_Eng"},
		{"Corp_VPN", "IT_Admin_Corp"},
		{"IT_Switch_Core", "IT_Admin_Corp"},
		{"Gateway_Banking", "Senior_Network_Eng"},
		{"Gateway_Emergency", "Senior_Network_Eng"},
		{"NOC_Shift_Lead", "Senior_Network_Eng"},
		{"NOC_Shift_Lead", "NOC_Operator_1"},
		{"NOC_Shift_Lead", "NOC_Operator_2"},
		{"NOC_Shift_Lead", "NOC_Security_Analyst"},
		{"NOC_Shift_Lead", "Incident_Mgmt_Process"},
		{"NOC_Security_Analyst", "Security_Manager"},
		{"NOC_Security_Analyst", "Incident_Mgmt_Process"},
		{"Senior_Network_Eng", "Change_Advisory_Board"},
		{"Senior_Network_Eng", "Incident_Mgmt_Process"},
		{"Senior_Network_Eng", "Vendor_Access_Control"},
		{"Senior_Network_Eng", "Capacity_Planning"},
		{"Senior_Network_Eng", "Disaster_Recovery"},
		{"Senior_Network_Eng", "IP_Engineer"},
		{"Senior_Network_Eng", "Mobile_Engineer"},
		{"Senior_Network_Eng", "Optical_Engineer"},
		{"Senior_Network_Eng", "Vendor_Ericsson"},
		{"Senior_Network_Eng", "Vendor_Cisco"},
		{"Senior_Network_Eng", "Vendor_Nokia"},
		{"Senior_Network_Eng", "Network_Director"},
		{"Senior_Network_Eng", "CTO"},
		{"Senior_Network_Eng", "Emergency_Liaison"},
		{"Senior_Network_Eng", "Banking_Liaison"},
		{"IP_Engineer", "Change_Advisory_Board"},
		{"Mobile_Engineer", "Change_Advisory_Board"},
		{"Optical_Engineer", "Change_Advisory_Board"},
		{"IT_Admin_Corp", "Patch_Management"},
		{"BSS_Admin", "SLA_Management"},
		{"BSS_Admin", "Patch_Management"},
	}},
	{"VENDOR_ACCESS", [][2]string{
		{"Core_Router_SYD", "Vendor_Cisco"},
		{"Core_Router_MEL", "Vendor_Cisco"},
		{"DWDM_SYD_MEL", "Vendor_Nokia"},
		{"DWDM_SYD_BNE", "Vendor_Nokia"},
		{"MME_Primary", "Vendor_Ericsson"},
		{"MME_Secondary", "Vendor_Ericsson"},
		{"HSS_Primary", "Vendor_Ericsson"},
		{"SIEM_Telecom", "Managed_SOC_Analyst"},
		{"Corp_VPN", "Vendor_Ericsson"},
		{"Corp_VPN", "Vendor_Cisco"},
		{"Corp_VPN", "Vendor_Nokia"},
		{"Corp_VPN", "Managed_SOC_Analyst"},
		{"Security_Manager", "Managed_SOC_Analyst"},
		{"Vendor_Ericsson", "Vendor_Access_Control"},
		{"Vendor_Cisco", "Vendor_Access_Control"},
		{"Vendor_Nokia", "Vendor_Access_Control"},
		{"Managed_SOC_Analyst", "Vendor_Access_Control"},
	}},
	{"LIAISON", [][2]string{
		{"CRM_System", "Banking_Liaison"},
		{"Gateway_Banking", "Banking_Liaison"},
		{"Gateway_Emergency", "Emergency_Liaison"},
		{"SIP_Trunk_Emergency", "Emergency_Liaison"},
		{"Banking_Liaison", "SLA_Management"},
		{"Banking_Liaison", "Incident_Mgmt_Process"},
		{"Emergency_Liaison", "Incident_Mgmt_Process"},
		{"Emergency_Liaison", "Regulatory_Compliance"},
	}},
}

TelecomEdgeGroups organizes all 253 edges by type.

View Source
var TelecomProviderNodes = []NodeDef{}/* 114 elements not displayed */

TelecomProviderNodes defines all 114 nodes for the Telecom Provider model. Demonstrates cross-sector critical infrastructure dependencies and the invisible node pattern at scale. The telecom sector is the "infrastructure of infrastructures".

View Source
var WaterFlatEdgePairs = [][2]string{
	{"Switch_A", "Switch_B"},
	{"Switch_B", "Switch_C"},
	{"Switch_A", "Switch_C"},
	{"PLC_Chlorine", "Switch_A"},
	{"PLC_Filtration", "Switch_A"},
	{"PLC_Pumping", "Switch_B"},
	{"HMI_1", "Switch_A"},
	{"HMI_2", "Switch_B"},
	{"SCADA_Server", "Switch_B"},
	{"Historian", "Switch_C"},
	{"Eng_Laptop", "Switch_C"},
	{"Operator_PC", "Switch_C"},
	{"Router_WAN", "Switch_C"},
}

WaterFlatEdgePairs defines edges for the flat mesh topology. Three switches in full mesh topology (13 nodes, 13 undirected edges).

View Source
var WaterTreatmentNodes = []NodeDef{
	{"PLC_Chlorine", []string{"Technical", "PLC"}, "Flat", NodeTypeTechnical, ""},
	{"PLC_Filtration", []string{"Technical", "PLC"}, "Flat", NodeTypeTechnical, ""},
	{"PLC_Pumping", []string{"Technical", "PLC"}, "Flat", NodeTypeTechnical, ""},
	{"HMI_1", []string{"Technical", "HMI"}, "Flat", NodeTypeTechnical, ""},
	{"HMI_2", []string{"Technical", "HMI"}, "Flat", NodeTypeTechnical, ""},
	{"SCADA_Server", []string{"Technical", "SCADA"}, "Flat", NodeTypeTechnical, ""},
	{"Historian", []string{"Technical", "Database"}, "Flat", NodeTypeTechnical, ""},
	{"Switch_A", []string{"Technical", "NetworkSwitch"}, "Flat", NodeTypeTechnical, ""},
	{"Switch_B", []string{"Technical", "NetworkSwitch"}, "Flat", NodeTypeTechnical, ""},
	{"Switch_C", []string{"Technical", "NetworkSwitch"}, "Flat", NodeTypeTechnical, ""},
	{"Eng_Laptop", []string{"Technical", "Workstation"}, "Flat", NodeTypeTechnical, ""},
	{"Operator_PC", []string{"Technical", "Workstation"}, "Flat", NodeTypeTechnical, ""},
	{"Router_WAN", []string{"Technical", "Router"}, "Flat", NodeTypeTechnical, ""},
}

WaterTreatmentNodes defines all 13 nodes for the Water Treatment model. Used by both flat and VLAN variants.

View Source
var WaterVLANEdgePairs = [][2]string{
	{"Switch_A", "L3_Core_Switch"},
	{"Switch_B", "L3_Core_Switch"},
	{"Switch_C", "L3_Core_Switch"},
	{"PLC_Chlorine", "Switch_A"},
	{"PLC_Filtration", "Switch_A"},
	{"PLC_Pumping", "Switch_A"},
	{"HMI_1", "Switch_B"},
	{"HMI_2", "Switch_B"},
	{"SCADA_Server", "Switch_B"},
	{"Historian", "Switch_C"},
	{"Eng_Laptop", "Switch_C"},
	{"Operator_PC", "Switch_C"},
	{"Router_WAN", "L3_Core_Switch"},
}

WaterVLANEdgePairs defines edges for the VLAN star topology. Star topology through L3 core switch (14 nodes, 13 undirected edges). Demonstrates how VLAN segmentation concentrates betweenness centrality.

Functions

This section is empty.

Types

type EdgeDef

type EdgeDef struct {
	From     string
	To       string
	EdgeType string // EdgeTypeTechnical, EdgeTypeHumanAccess, EdgeTypeProcess
}

EdgeDef defines an edge between two nodes.

func StevesUtilityEdgesWithoutSteve

func StevesUtilityEdgesWithoutSteve() []EdgeDef

StevesUtilityEdgesWithoutSteve returns edges filtered to exclude Steve.

type EdgeGroup

type EdgeGroup struct {
	EdgeType string
	Edges    [][2]string
}

EdgeGroup groups edges by their type for cleaner iteration.

func TelecomEdgeGroupsWithoutSeniorEng

func TelecomEdgeGroupsWithoutSeniorEng() []EdgeGroup

TelecomEdgeGroupsWithoutSeniorEng filters edge groups to exclude Senior_Network_Eng.

type NodeDef

type NodeDef struct {
	Name     string
	Labels   []string
	Level    string
	NodeType string // NodeTypeTechnical, NodeTypeHuman, NodeTypeProcess, NodeTypeExternal
	Function string // optional function description (for telecom model)
}

NodeDef defines a node with its properties.

func StevesUtilityNodesWithoutSteve

func StevesUtilityNodesWithoutSteve() []NodeDef

StevesUtilityNodesWithoutSteve returns nodes filtered to exclude Steve.

func TelecomNodesWithoutSeniorEng

func TelecomNodesWithoutSeniorEng() []NodeDef

TelecomNodesWithoutSeniorEng returns nodes filtered to exclude Senior_Network_Eng.

func WaterVLANNodes

func WaterVLANNodes() []NodeDef

WaterVLANNodes returns nodes for the VLAN variant, including L3 core switch.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL