Protocol Utilities

icspacket.proto.iso_ses.util.build_connect_spdu(*, extended: bool = False, version2: bool = True, requirements: PV_SessionRequirements | None = None, called_ses_sel: bytes | None = b'\x00\x01', calling_ses_sel: bytes | None = b'\x00\x01', user_data: bytes | None = None, extra_parameters: Iterable[Px_Unit] | None = None) SPDU[source]

Construct a CONNECT SPDU (Session Protocol Data Unit).

This initiates a COSP (X.225 / ISO 8327) session connection, encoding protocol version, session requirements, session selectors, and optional user data.

Parameters:
  • extended (bool) – If True, enables extended protocol options (e.g. extended addressing or token handling). Defaults to False.

  • version2 (bool) – If True, enables version 2 of the session protocol. If False, version 1 is set. Defaults to True.

  • requirements (PV_SessionRequirements | None) – Session requirements parameter block. If omitted, defaults to an empty PV_SessionRequirements instance.

  • called_ses_sel (bytes | None) – Selector of the called session entity. Used for identifying the target service access point.

  • calling_ses_sel (bytes | None) – Selector of the calling session entity. Used for identifying the initiating SAP.

  • user_data (bytes | None) – Optional user data to carry within the SPDU. Typically contains higher-layer negotiation payload.

  • extra_parameters (Iterable[Px_Unit] | None) – Additional session parameter elements (e.g. for vendor-specific extensions).

Returns:

A fully constructed SPDU representing a connection request.

Return type:

SPDU

Note

Future implementations may include negotiation of additional protocol features (e.g., token assignment, activity management, or session layer QoS). These can be injected via extra_parameters to remain forward-compatible.

icspacket.proto.iso_ses.util.build_data_tsdu(user_data: bytes, *, extra_parameters: Iterable[Px_Unit] | None = None) TSDU[source]

Construct a DATA TSDU (Transport Service Data Unit).

Parameters:
  • user_data (bytes) – User payload to carry inside the DATA_TRANSFER_SPDU.

  • extra_parameters (Iterable[Px_Unit] | None) – Optional session parameter extensions to append to the DATA_TRANSFER_SPDU.

Returns:

A fully constructed TSDU containing the encapsulated SPDUs.

Return type:

TSDU

icspacket.proto.iso_ses.util.build_finish_spdu(*, user_data: bytes | None = None, extra_parameters: Iterable[Px_Unit] | None = None) SPDU[source]

Construct a FINISH SPDU for orderly session release.

Encapsulates optional user data and any protocol-specific extension parameters, signaling graceful termination of the COSP session.

Parameters:
  • user_data (bytes | None) – Optional user data to include in the SPDU (e.g., end-of-session diagnostics or higher-layer release information).

  • extra_parameters (Iterable[Px_Unit] | None) – Additional parameters to extend SPDU capabilities for session release.

Returns:

A fully constructed SPDU representing session termination.

Return type:

SPDU