from __future__ import annotations from collections.abc import Generator from typing import TYPE_CHECKING import simpy from kernbench.components.base import ComponentBase if TYPE_CHECKING: from kernbench.components.context import ComponentContext from kernbench.topology.types import Node class TransitComponent(ComponentBase): """Transit component for NOC, UCIe, XBAR nodes. Applies overhead_ns processing delay (from node.attrs) then forwards the Transaction to the next hop via inherited _forward_txn(). """ def __init__(self, node: Node, ctx: ComponentContext | None = None) -> None: super().__init__(node, ctx) def run(self, env: simpy.Environment, nbytes: int) -> Generator: overhead_ns = float(self.node.attrs.get("overhead_ns", 0.0)) yield env.timeout(overhead_ns)