ecal.configs.protocol_configs

OSI-layer protocol energy parameters used by ecal.calculators.transmission.Transmission to estimate the energy cost of sending data across a network stack.

Each OSI layer (application, presentation, session, transport, network, data link, physical) has a dictionary mapping protocol name to a LayerProtocol describing that protocol’s overhead and per-bit energy cost.

Classes

LayerProtocol(name, data_plane_overhead, ...)

Protocol metrics for a single layer.

class ecal.configs.protocol_configs.LayerProtocol(name, data_plane_overhead, control_plane_overhead, base_energy_per_bit_sender, base_energy_per_bit_receiver, Niot, Piot, Ngateway, Pgateway)[source]

Bases: object

Protocol metrics for a single layer.

Parameters:
  • name (str) – Protocol name (e.g. “HTTP”, “TCP”, “IPv4”).

  • data_plane_overhead (float) – Data-plane overhead ratio — fraction of extra bits added on top of the payload for framing/formatting at this layer.

  • control_plane_overhead (float) – Control-plane overhead ratio — fraction of extra bits added for control messages/handshakes at this layer.

  • base_energy_per_bit_sender (float) – Energy consumed per bit by the sender (Joules/bit).

  • base_energy_per_bit_receiver (float) – Energy consumed per bit by the receiver (Joules/bit).

  • Niot (int) – Number of IoT nodes contributing to this layer’s energy draw.

  • Piot (float) – Power draw per IoT node (watts).

  • Ngateway (int) – Number of gateway nodes contributing to this layer’s energy draw.

  • Pgateway (float) – Power draw per gateway node (watts).

Ngateway: int
Niot: int
Pgateway: float
Piot: float
base_energy_per_bit_receiver: float
base_energy_per_bit_sender: float
control_plane_overhead: float
data_plane_overhead: float
name: str