flync_4_general_configuration

The flync_4_general_configuration module holds the system-wide configuration shared across all ECUs in the project, including bus definitions, PDU and frame definitions, SOME/IP service descriptions, and TCP profiles.

Expand for Schematic
        classDiagram

    class NamingStrategy {
        <<Enumeration>>
        AUTO: int = 0
        FIELD_NAME: int = 0
        FIXED_PATH: int = 1
    }

    class OutputStrategy {
        <<Enumeration>>
        AUTO: int = 1
        FOLDER: int = 1
        SINGLE_FILE: int = 2
        OMMIT_ROOT: int = 4
        FIXED_ROOT: int = 8
    }

    class SOMEIPConfig {
        version: Literal['1.0'] = '1.0'
        sd_config: SDConfig
        services: list[SOMEIPServiceInterface]
        someip_timings: SOMEIPTimingProfile
    }

    class FLYNCBaseModel {
    }

    class FLYNCGeneralConfig {
        tcp_profiles: list[TCPOption] = []
        someip_config: SOMEIPConfig | None = None
        channels: FLYNCChannelConfig | None = None
    }

    class TCPOption {
        tcp_profile_id: int
        nagle: bool | None = False
        keepalive_enabled: bool | None = True
        keepidle: int | None = 10
        keepcount: int | None = 10
        keepintvl: int | None = 2
        user_timeout: int | None = 28
        congestion_avoidance: Literal['reno', 'cubic', 'bbr'] | None = 'reno'
        tcp_maxseg: int | None = 1460
        tcp_quickack: bool | None = False
        tcp_syncnt: int | None = 6
    }

    class FLYNCChannelConfig {
        pdus: list[StandardPDU | MultiplexedPDU] | None = list
        can_buses: list[CANBus] | None = None
        lin_buses: list[LINBus] | None = None
        ethernet_pdu_containers: list[ContainerPDU] | None = None
    }

    SOMEIPConfig ..> SDConfig
    SOMEIPConfig ..> SOMEIPTimingProfile
    SOMEIPConfig ..> SOMEIPServiceInterface
    FLYNCChannelConfig ..> CANBus
    FLYNCChannelConfig ..> LINBus
    FLYNCChannelConfig ..> ContainerPDU
    FLYNCChannelConfig ..> MultiplexedPDU
    FLYNCChannelConfig ..> StandardPDU
    FLYNCGeneralConfig ..> TCPOption
    FLYNCGeneralConfig ..> FLYNCChannelConfig
    FLYNCGeneralConfig ..> SOMEIPConfig


    
class FLYNCGeneralConfig

Bases: FLYNCBaseModel

The top-level configuration object that aggregates all reusable FLYNC settings for the whole system.

Parameters

tcp_profileslist of TCPOption

List of TCP profiles that define the selectable TCP socket options.

someip_configSOMEIPConfig

Configuration block that holds the global SOME/IP service interface definition, SOME/IP timings, and SD timings profiles used by every ECU in the system.

channelsFLYNCChannelConfig, optional

Channel-level configuration grouping CAN buses, LIN buses, and Ethernet Container PDU definitions. Loaded from the general/channels/ directory. Each bus or container PDU is stored in its own file under the corresponding sub-folder (can/, lin/, container_pdus/). Absent when the general/channels/ directory does not exist.

Channel Configuration

FLYNCChannelConfig groups all bus and PDU definitions that are stored under general/channels/. Every sub-field is optional — omit the corresponding sub-folder entirely when the system does not use that channel type.

Channel sub-folders

Sub-folder

Content

general/channels/pdus/

PDU definitions (Standard, Multiplexed, Container). One file per PDU.

general/channels/can/

CAN / CAN FD bus configurations. One file per bus.

general/channels/lin/

LIN bus configurations. One file per bus.

general/channels/ethernet_pdu_containers/

Ethernet definitions.

class FLYNCChannelConfig

Bases: FLYNCBaseModel

Channel-level configuration grouping all buses and shared PDU definitions.

Parameters

pduslist of StandardPDU | MultiplexedPDU, optional

Shared PDU definitions that may be referenced from any channel.

can_buseslist of CANBus, optional

CAN and CAN FD bus configurations.

lin_buseslist of LINBus, optional

LIN bus configurations.

ethernet_pdu_containerslist of ContainerPDU, optional

Ethernet Container PDU definitions.

TCP Options

Expand for a YAML example - 📄 tcp_profiles.flync.yaml

Note

This file contains a list of TCP profiles that describes a bunch of TCP options that can be set in a socket. These profiles can be imported in a TCP socket.

tcp_profiles:
  - tcp_profile_id: 1
    nagle: False
    keepalive_enabled: True
    keepidle: 10
    keepcount: 10
    keepintvl: 2
    user_timeout: 28
    congestion_avoidance: reno
    tcp_maxseg: False
    tcp_syncnt: 6
  - tcp_profile_id: 2
    nagle: True
    keepalive_enabled: True
    keepidle: 10
    keepcount: 10
    keepintvl: 2
    user_timeout: 14
    congestion_avoidance: cubic
    tcp_maxseg: False
    tcp_syncnt: 6
  
class TCPOption

Bases: DictInstances

TCP options that can be enabled for a connection.

Parameters

tcp_profile_idint

Unique identifier of the TCP profile.

naglestrict_bool

Enable or disable Nagle algorithm.

keepalive_enabledbool

Enable or disable the TCP keep-alive option.

keepidleint

Seconds the connection must stay idle before the first keep-alive probe is sent.

keepcountint

Maximum number of keep-alive probes that may be sent before the connection is dropped.

keepintvlint

Seconds between successive keep-alive probes.

user_timeoutint

Maximum time in seconds that unacknowledged data may remain before the connection is closed.

congestion_avoidancestr

Congestion-avoidance algorithm to use (e.g., Reno, cubic, or bbr).

tcp_maxsegint

Maximum segment size for outgoing TCP packets.

tcp_quickackbool

Enable or disable the “quick-ack” feature.

tcp_syncntint

Number of SYN retransmissions TCP may perform before aborting the connection attempt.

class UDPOption

Bases: FLYNCBaseModel

UDP options that can be enabled for a connection.

Parameters

udp_corkbool

Enables buffering of UDP messages before they are sent.