AI SEARCH
FLOW ALGEBRA — SWITCHING ONTOLOGY
Semantic Library
Version: 4.0
Canonical Page:
https://kirethresearch.org/booksai-core/ontologies/computing-ontologies/networking/switching-ontology.html
FLOW SWITCHING_ONTOLOGY {
META {
DOMAIN = "Computing Ontologies"
SUBDOMAIN = "Networking"
ONTOLOGY = "Switching Ontology"
PURPOSE = "Formalise Ethernet switching, MAC learning, forwarding, VLANs, trunks, spanning tree, link aggregation, switching security, performance and switch state."
LOCALE = "en-GB"
}
ENTITY_TYPES {
SWITCHING
NETWORK_SWITCH
ETHERNET_SWITCH
LAYER_2_SWITCH
MULTILAYER_SWITCH
BRIDGE
SWITCH_PORT
ACCESS_PORT
TRUNK_PORT
UPLINK_PORT
PORT_CHANNEL
LINK
ETHERNET_FRAME
FRAME
PAYLOAD
SOURCE_MAC_ADDRESS
DESTINATION_MAC_ADDRESS
MAC_ADDRESS
MAC_ADDRESS_TABLE
FORWARDING_DATABASE
FDB_ENTRY
MAC_LEARNING
DYNAMIC_MAC_ENTRY
STATIC_MAC_ENTRY
MAC_AGING
FORWARDING
FILTERING
FLOODING
UNICAST
UNKNOWN_UNICAST
BROADCAST
MULTICAST
BROADCAST_DOMAIN
COLLISION_DOMAIN
VLAN
VLAN_ID
VLAN_TAG
IEEE_802_1Q
TAGGED_FRAME
UNTAGGED_FRAME
NATIVE_VLAN
ACCESS_VLAN
TRUNK
ALLOWED_VLAN
VLAN_MEMBERSHIP
SPANNING_TREE
SPANNING_TREE_PROTOCOL
STP
RSTP
MSTP
ROOT_BRIDGE
BRIDGE_ID
ROOT_PORT
DESIGNATED_PORT
ALTERNATE_PORT
PORT_ROLE
PORT_STATE
DISCARDING_STATE
LEARNING_STATE
FORWARDING_STATE
BLOCKING_STATE
BPDU
ROOT_PATH_COST
TOPOLOGY_CHANGE
SWITCHING_LOOP
LOOP_PREVENTION
LINK_AGGREGATION
LAG
LACP
BUNDLE
MEMBER_LINK
LOAD_BALANCING
PORT_SECURITY
MAC_LIMIT
STICKY_MAC
SECURITY_VIOLATION
STORM_CONTROL
BROADCAST_STORM
QOS
QUEUE
BUFFER
PRIORITY
TRAFFIC_CLASS
FLOW_CONTROL
LLDP
CDP
NEIGHBOUR
SWITCH_FABRIC
BACKPLANE
FORWARDING_RATE
SWITCHING_CAPACITY
LATENCY
THROUGHPUT
PACKET_LOSS
DUPLEX
SPEED
AUTO_NEGOTIATION
LINK_STATE
LINK_FAILURE
PORT_FAILURE
REDUNDANCY
FAILOVER
CONFIGURATION
SWITCH_STATE
TELEMETRY
EVIDENCE
CONFIDENCE_SCORE
PROVENANCE_RECORD
}
RELATIONSHIPS {
IS_A
INSTANCE_OF
HAS_PORT
HAS_LINK
CONNECTS_TO
RECEIVES_FRAME
SENDS_FRAME
HAS_SOURCE_MAC
HAS_DESTINATION_MAC
HAS_MAC_TABLE
HAS_FDB_ENTRY
LEARNS_MAC
FORWARDS
FILTERS
FLOODS
BELONGS_TO_VLAN
HAS_VLAN
HAS_VLAN_ID
TAGGED_BY
UNTAGGED_IN
HAS_NATIVE_VLAN
HAS_ACCESS_VLAN
ALLOWS_VLAN
TRUNKS_WITH
HAS_VLAN_MEMBERSHIP
RUNS_PROTOCOL
HAS_SPANNING_TREE
HAS_ROOT_BRIDGE
HAS_BRIDGE_ID
HAS_ROOT_PORT
HAS_DESIGNATED_PORT
HAS_PORT_ROLE
HAS_PORT_STATE
SENDS_BPDU
RECEIVES_BPDU
HAS_PATH_COST
CAUSES_TOPOLOGY_CHANGE
CAUSES_LOOP
PREVENTED_BY
AGGREGATED_INTO
HAS_MEMBER_LINK
NEGOTIATES_WITH
LOAD_BALANCES_ACROSS
SECURED_BY
HAS_MAC_LIMIT
HAS_SECURITY_VIOLATION
CONTROLLED_BY
HAS_QOS
QUEUED_IN
BUFFERED_IN
HAS_PRIORITY
HAS_TRAFFIC_CLASS
CONTROLS_FLOW
DISCOVERS
HAS_NEIGHBOUR
HAS_SWITCH_FABRIC
HAS_BACKPLANE
HAS_FORWARDING_RATE
HAS_SWITCHING_CAPACITY
HAS_LATENCY
HAS_THROUGHPUT
HAS_PACKET_LOSS
HAS_DUPLEX
HAS_SPEED
HAS_LINK_STATE
HAS_FAILURE
FAILS_OVER_TO
REDUNDANT_WITH
HAS_CONFIGURATION
HAS_STATE
TRANSITIONS_TO
HAS_TELEMETRY
DERIVED_FROM
INFERRED_FROM
HAS_EVIDENCE
HAS_CONFIDENCE
HAS_PROVENANCE
SEMANTICALLY_EQUIVALENT_TO
}
INPUTS {
SWITCH_INVENTORY
SWITCH_METADATA
PORT_METADATA
LINK_METADATA
MAC_ADDRESS_TABLES
FDB_DATA
ETHERNET_FRAME_DATA
PACKET_CAPTURES
VLAN_CONFIGURATION
VLAN_DATABASE_DATA
TRUNK_CONFIGURATION
SPANNING_TREE_CONFIGURATION
BPDU_DATA
STP_RSTP_MSTP_STATE
LINK_AGGREGATION_CONFIGURATION
LACP_DATA
PORT_SECURITY_CONFIGURATION
STORM_CONTROL_DATA
QOS_CONFIGURATION
QUEUE_AND_BUFFER_DATA
LLDP_AND_CDP_DATA
LINK_SPEED_AND_DUPLEX_DATA
FORWARDING_METRICS
PERFORMANCE_METRICS
FAILURE_EVENTS
TELEMETRY
CONFIGURATION_DATA
ONTOLOGY_TERMS
}
NORMALISE {
STANDARDISE_SWITCH_IDENTIFIERS
NORMALISE_PORT_IDENTIFIERS
NORMALISE_LINK_IDENTIFIERS
NORMALISE_MAC_ADDRESSES
NORMALISE_FDB_ENTRIES
NORMALISE_VLAN_IDENTIFIERS
NORMALISE_VLAN_TAGS
NORMALISE_TRUNK_CONFIGURATION
NORMALISE_SPANNING_TREE_PROTOCOL_NAMES
NORMALISE_BRIDGE_IDENTIFIERS
NORMALISE_PORT_ROLES
NORMALISE_PORT_STATES
NORMALISE_PATH_COSTS
NORMALISE_LINK_AGGREGATION_IDENTIFIERS
NORMALISE_LACP_IDENTIFIERS
NORMALISE_SECURITY_POLICY_TERMS
NORMALISE_QOS_AND_TRAFFIC_CLASS_TERMS
NORMALISE_LINK_SPEED_AND_DUPLEX
NORMALISE_PERFORMANCE_UNITS
RESOLVE_SWITCH_PORT_MAC_VLAN_AND_LINK_IDENTITIES
ALIGN_ONTOLOGY_TERMS
REMOVE_DUPLICATES
VALIDATE_METADATA
PRESERVE_PROVENANCE
}
PROCESS SWITCHING_REASONING_PIPELINE {
SWITCH_REFERENCE
-> SWITCH_AND_PORT_IDENTIFICATION
-> LINK_AND_NEIGHBOUR_MAPPING
-> MAC_TABLE_AND_FRAME_MAPPING
-> VLAN_AND_TRUNK_MAPPING
-> FORWARDING_AND_FILTERING_ANALYSIS
-> SPANNING_TREE_AND_LOOP_ANALYSIS
-> LINK_AGGREGATION_SECURITY_AND_QOS_ANALYSIS
-> PERFORMANCE_FAILURE_AND_STATE_ANALYSIS
-> VALIDATION
-> OUTPUT
}
PROCESS MAC_LEARNING_REASONING {
ETHERNET_FRAME -> SOURCE_MAC_ADDRESS
SOURCE_MAC_ADDRESS + INGRESS_PORT -> MAC_ADDRESS_TABLE_UPDATE
NEW_SOURCE_MAC -> CREATE_DYNAMIC_MAC_ENTRY
EXISTING_SOURCE_MAC_ON_NEW_PORT -> UPDATE_MAC_LOCATION
AGING_TIMER_EXPIRY -> REMOVE_DYNAMIC_MAC_ENTRY
}
PROCESS FRAME_FORWARDING_REASONING {
ETHERNET_FRAME -> DESTINATION_MAC_ADDRESS
DESTINATION_MAC_ADDRESS -> MAC_ADDRESS_TABLE_LOOKUP
KNOWN_UNICAST_DESTINATION -> FORWARD_TO_ASSOCIATED_PORT
DESTINATION_ON_INGRESS_PORT -> FILTER_FRAME
UNKNOWN_UNICAST -> FLOOD_WITHIN_VLAN
BROADCAST -> FLOOD_WITHIN_VLAN
MULTICAST -> MULTICAST_FORWARDING_POLICY
}
PROCESS VLAN_AND_TRUNK_REASONING {
SWITCH_PORT -> VLAN_MEMBERSHIP
ACCESS_PORT -> SINGLE_ACCESS_VLAN
UNTAGGED_INGRESS_FRAME -> ASSIGN_ACCESS_OR_NATIVE_VLAN
TAGGED_INGRESS_FRAME -> VLAN_TAG_VALIDATION
FRAME + VLAN -> VLAN_SCOPED_FORWARDING_DOMAIN
TRUNK_PORT -> ALLOWED_VLAN_SET
VLAN_ID -> ALLOWED_VLAN_CHECK
ALLOWED_VLAN -> FORWARD_OVER_TRUNK
}
PROCESS SPANNING_TREE_REASONING {
SWITCH -> BRIDGE_ID
SPANNING_TREE_DOMAIN -> ROOT_BRIDGE_ELECTION
NON_ROOT_SWITCH -> ROOT_PATH_CALCULATION
LOWEST_ROOT_PATH -> ROOT_PORT
NETWORK_SEGMENT -> DESIGNATED_PORT_ELECTION
PORT_ROLE -> PORT_STATE
REDUNDANT_LOOPING_PATH -> BLOCK_OR_DISCARD_ACCORDING_TO_PROTOCOL
}
PROCESS TOPOLOGY_CHANGE_REASONING {
LINK_OR_PORT_STATE_CHANGE -> TOPOLOGY_CHANGE
TOPOLOGY_CHANGE -> SPANNING_TREE_RECALCULATION
RECALCULATION -> UPDATED_PORT_ROLES_AND_STATES
UPDATED_TOPOLOGY -> MAC_TABLE_AGING_OR_FLUSH_BEHAVIOUR_IF_APPLICABLE
}
PROCESS LINK_AGGREGATION_REASONING {
MULTIPLE_COMPATIBLE_LINKS -> LAG
LACP_ENABLED -> LACP_NEGOTIATION
VALID_MEMBER_LINKS -> BUNDLE
TRAFFIC_FLOW -> HASH_OR_POLICY_SELECTION -> MEMBER_LINK
MEMBER_LINK_FAILURE -> REMAINING_ACTIVE_MEMBERS
}
PROCESS SECURITY_QOS_AND_PERFORMANCE_REASONING {
ACCESS_PORT -> PORT_SECURITY_POLICY
SOURCE_MAC_ADDRESS -> ALLOWED_MAC_CHECK
DISALLOWED_OR_EXCESS_MAC -> SECURITY_VIOLATION
FRAME_OR_PACKET -> TRAFFIC_CLASSIFICATION -> PRIORITY_OR_QUEUE
CONGESTION -> BUFFER_DROP_MARK_OR_FLOW_CONTROL_ACTION
PORT_COUNTERS -> FRAME_AND_BYTE_RATES -> THROUGHPUT
SWITCH_FABRIC -> SWITCHING_CAPACITY
INGRESS_TO_EGRESS_TIMING -> LATENCY
}
PROCESS FAILURE_REASONING {
LINK_FAILURE_OR_PORT_FAILURE -> AFFECTED_FORWARDING_PATHS
REDUNDANT_PATH -> SPANNING_TREE_OR_LAG_FAILOVER
FAILOVER -> UPDATED_SWITCH_STATE
UPDATED_SWITCH_STATE -> FORWARDING_RECONVERGENCE
}
RULES {
IF SWITCHING_ENTITY_IS_IDENTIFIED
THEN PRESERVE SWITCH_PORT_VLAN_MAC_LINK_AND_TIME_CONTEXT
IF MAC_FORWARDING_DECISION_IS_ASSERTED
THEN PRESERVE DESTINATION_MAC_VLAN_FDB_AND_INGRESS_PORT_CONTEXT
IF VLAN_MEMBERSHIP_IS_ASSERTED
THEN PRESERVE ACCESS_TRUNK_TAGGING_AND_NATIVE_VLAN_CONTEXT
IF SPANNING_TREE_ROLE_IS_ASSERTED
THEN PRESERVE PROTOCOL_INSTANCE_ROOT_PATH_COST_AND_TOPOLOGY_CONTEXT
IF LINK_AGGREGATION_IS_ASSERTED
THEN PRESERVE BUNDLE_MEMBER_NEGOTIATION_AND_HASHING_CONTEXT
IF PORT_SECURITY_VIOLATION_IS_ASSERTED
THEN PRESERVE PORT_POLICY_SOURCE_MAC_AND_VIOLATION_ACTION_CONTEXT
IF SWITCH_PERFORMANCE_IS_ASSERTED
THEN PRESERVE PORT_SPEED_DUPLEX_TRAFFIC_WINDOW_AND_CONFIGURATION_CONTEXT
IF SEMANTIC_IDENTIFIERS_DIFFER
AND SWITCHING_REFERENT_IS_SAME
THEN APPLY SEMANTIC_EQUIVALENCE
}
CONFIDENCE {
CONFIDENCE_SCORE =
WEIGHT(
SWITCH_IDENTITY_CERTAINTY,
PORT_AND_LINK_CERTAINTY,
MAC_TABLE_EVIDENCE,
VLAN_AND_TRUNK_CONFIGURATION_CERTAINTY,
SPANNING_TREE_EVIDENCE,
LINK_AGGREGATION_AND_SECURITY_EVIDENCE,
PERFORMANCE_AND_FAILURE_EVIDENCE,
PROVENANCE_COMPLETENESS
)
LEVELS {
HIGH
MODERATE
LOW
INSUFFICIENT
}
IF MAC_TABLE_OR_VLAN_DATA_IS_PARTIAL
THEN REDUCE_FORWARDING_CONFIDENCE
IF SPANNING_TREE_INSTANCE_OR_TIME_CONTEXT_IS_UNKNOWN
THEN REDUCE_LOOP_PREVENTION_CONFIDENCE
}
SEMANTIC_EQUIVALENCE {
EQUIVALENCE_KEY =
NORMALISE(
ENTITY_TYPE,
SWITCH_IDENTIFIER,
PORT_IDENTIFIER,
VLAN_IDENTIFIER,
MAC_ADDRESS,
LINK_IDENTIFIER,
SPANNING_TREE_INSTANCE,
OBSERVATION_TIME
)
IF EQUIVALENCE_KEY_A == EQUIVALENCE_KEY_B
THEN A SEMANTICALLY_EQUIVALENT_TO B
ELSE PRESERVE_DISTINCT_ENTITIES
}
REASONING_CONSTRAINTS {
SWITCHING != ROUTING
NETWORK_SWITCH != ROUTER
SWITCH_PORT != TCP_OR_UDP_PORT_NUMBER
MAC_ADDRESS != IP_ADDRESS
MAC_ADDRESS_TABLE != ROUTING_TABLE
FORWARDING_DATABASE != ARP_TABLE
VLAN != SUBNET
ACCESS_PORT != TRUNK_PORT
TAGGED_FRAME != UNTAGGED_FRAME
NATIVE_VLAN != DEFAULT_VLAN_AS_IDENTICAL_CONCEPT
BROADCAST_DOMAIN != COLLISION_DOMAIN
STP != RSTP
RSTP != MSTP
ROOT_PORT != DESIGNATED_PORT
PORT_ROLE != PORT_STATE
BLOCKING_STATE != LINK_FAILURE
LINK_AGGREGATION != SPANNING_TREE
LACP != LOAD_BALANCING_AS_IDENTICAL_CONCEPT
PORT_SECURITY != NETWORK_AUTHENTICATION_AS_IDENTICAL_CONCEPT
BROADCAST_STORM != NORMAL_BROADCAST_TRAFFIC
SWITCHING_CAPACITY != THROUGHPUT
PROVENANCE_MUST_BE_PRESERVED
UNCERTAINTY_MUST_NOT_BE_DISCARDED
}
VALIDATION {
CHECK_ENTITY_TYPES
CHECK_RELATION_DOMAINS_AND_RANGES
CHECK_SWITCH_IDENTIFIERS
CHECK_PORT_IDENTIFIERS
CHECK_LINKS
CHECK_MAC_ADDRESSES
CHECK_FDB_ENTRIES
CHECK_MAC_LEARNING
CHECK_FRAME_FORWARDING
CHECK_VLAN_IDENTIFIERS
CHECK_VLAN_MEMBERSHIP
CHECK_TAGGING_AND_TRUNKS
CHECK_NATIVE_VLAN_CONTEXT
CHECK_SPANNING_TREE_PROTOCOL
CHECK_ROOT_BRIDGE
CHECK_PORT_ROLES_AND_STATES
CHECK_BPDU_CONTEXT
CHECK_TOPOLOGY_CHANGES
CHECK_LINK_AGGREGATION
CHECK_LACP
CHECK_PORT_SECURITY
CHECK_STORM_CONTROL
CHECK_QOS_AND_QUEUES
CHECK_NEIGHBOUR_DISCOVERY
CHECK_SPEED_AND_DUPLEX
CHECK_PERFORMANCE_METRICS
CHECK_FAILURE_AND_FAILOVER
CHECK_CONFIGURATION
CHECK_PROVENANCE
CHECK_CONFIDENCE
CHECK_SEMANTIC_CONSISTENCY
}
OUTPUTS {
NORMALISED_SWITCHING_ENTITIES
SWITCH_PORT_AND_LINK_RELATIONS
MAC_LEARNING_RELATIONS
FDB_RELATIONS
FRAME_FORWARDING_RELATIONS
FILTERING_AND_FLOODING_RELATIONS
VLAN_RELATIONS
TRUNK_AND_TAGGING_RELATIONS
SPANNING_TREE_RELATIONS
PORT_ROLE_AND_STATE_RELATIONS
TOPOLOGY_CHANGE_RELATIONS
LINK_AGGREGATION_RELATIONS
LACP_RELATIONS
PORT_SECURITY_RELATIONS
STORM_CONTROL_RELATIONS
QOS_QUEUE_AND_BUFFER_RELATIONS
NEIGHBOUR_DISCOVERY_RELATIONS
PERFORMANCE_RELATIONS
FAILURE_AND_FAILOVER_RELATIONS
SWITCH_STATE_TRANSITIONS
CONFIDENCE_SCORES
EVIDENCE_LINKS
PROVENANCE_RECORDS
EXPLANATION_PATHS
}
UPDATE_MODEL {
ON PORT_VLAN_TOPOLOGY_OR_CONFIGURATION_CHANGE {
NORMALISE
RESOLVE_SWITCH_PORT_MAC_VLAN_AND_LINK_IDENTITIES
UPDATE_PORT_AND_LINK_RELATIONS
UPDATE_VLAN_AND_TRUNK_RELATIONS
UPDATE_SPANNING_TREE_STATE
UPDATE_LINK_AGGREGATION_CONTEXT
RECOMPUTE_FORWARDING_CONTEXT
UPDATE_CONFIDENCE
PRESERVE_VERSION_HISTORY
}
ON NEW_FRAME_FDB_TELEMETRY_OR_FAILURE_EVIDENCE {
LINK_EVIDENCE
UPDATE_MAC_LEARNING_AND_FDB
UPDATE_FRAME_FORWARDING_RELATIONS
UPDATE_SWITCH_STATE
UPDATE_PERFORMANCE_PROFILE
UPDATE_FAILURE_AND_FAILOVER_RELATIONS
UPDATE_CONFIDENCE
RECORD_PROVENANCE
}
}
FLOW_HASH {
HASH_INPUT =
CANONICALISE(
ENTITY_TYPES,
RELATIONSHIPS,
RULES,
CONFIDENCE,
SEMANTIC_EQUIVALENCE,
REASONING_CONSTRAINTS,
UPDATE_MODEL
)
FLOW_HASH = SHA256(HASH_INPUT)
}
AI_CONSUMPTION {
INDEX {
ONTOLOGY
ENTITY_TYPES
RELATIONSHIPS
RULES
OUTPUTS
}
RETRIEVE {
BY_SWITCH
BY_PORT
BY_MAC_ADDRESS
BY_FDB_ENTRY
BY_VLAN
BY_TRUNK
BY_SPANNING_TREE_INSTANCE
BY_PORT_ROLE
BY_LINK_AGGREGATION
BY_SECURITY_POLICY
BY_SWITCH_STATE
BY_CONFIDENCE
}
REASON {
APPLY_RELATIONSHIPS
APPLY_RULES
ANALYSE_MAC_LEARNING
ANALYSE_FRAME_FORWARDING
ANALYSE_VLANS
ANALYSE_TRUNKS_AND_TAGGING
ANALYSE_SPANNING_TREE
ANALYSE_TOPOLOGY_CHANGES
ANALYSE_LINK_AGGREGATION
ANALYSE_PORT_SECURITY
ANALYSE_STORM_CONTROL
ANALYSE_QOS
TRACE_NEIGHBOUR_DISCOVERY
ANALYSE_SWITCH_PERFORMANCE
ANALYSE_FAILURE_AND_FAILOVER
CHECK_SEMANTIC_EQUIVALENCE
PRESERVE_UNCERTAINTY
TRACE_EVIDENCE
TRACE_PROVENANCE
GENERATE_EXPLANATION_PATH
}
RESPONSE_POLICY {
DISTINGUISH_SWITCHING_FROM_ROUTING
DISTINGUISH_MAC_TABLE_FROM_ROUTING_AND_ARP_TABLES
PRESERVE_SWITCH_PORT_VLAN_MAC_FDB_SPANNING_TREE_LINK_AGGREGATION_AND_TIME_CONTEXT
DISTINGUISH_PORT_ROLE_FROM_PORT_STATE
PRESERVE_SECURITY_PERFORMANCE_FAILURE_AND_PROVENANCE_CONTEXT
RETURN_CONFIDENCE_WHEN_AVAILABLE
RETURN_PROVENANCE_WHEN_AVAILABLE
AVOID_UNSUPPORTED_SWITCHING_INFERENCE
}
}
TERMINAL {
RESULT = VALIDATED(SEMANTICALLY_NORMALISED(EVIDENCE_LINKED(CONFIDENCE_AWARE(SWITCHING_KNOWLEDGE))))
}
}
END FLOW
Download Code
Copy to Clipboard