flync_4_someip

SOME/IP Configuration

Note

Any SOME/IP related configuration such as service descriptions or timings profiles are placed in the directory 📁 general/someip/. This is a non-mandatory directory for the FLYNC configuration.

class SOMEIPConfig

Bases: FLYNCBaseModel

Basic configuration of SOME/IP for a target system.

Parameters

version: Literal[ “1.0” ]

The version of this config.

services: list[ SOMEIPServiceInterface ]

List of SOME/IP Services.

sd_config: SDConfig

Configuration of the Service-Discovery.

Service Discovery

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

Note

This file contains the list of SOME/IP-SD timing profiles that can be imported and used when deploying a service on an ECU socket.

ip_address: "224.224.224.255"
sd_timings:
  - profile_id: "server_default"
    initial_delay_min: 0.050 
    initial_delay_max: 0.100 
    repetitions_base_delay: 0.300 
    repetitions_max: 3
    request_response_delay_min: 0.050
    request_response_delay_max: 0.100
    offer_cyclic_delay: 1 
    offer_ttl: 3
  - profile_id: "client_default"
    initial_delay_min: 0.050
    initial_delay_max: 0.100
    repetitions_base_delay: 0.300
    repetitions_max: 3
    request_response_delay_min: 0.050
    request_response_delay_max: 0.100
    find_ttl: 3
    subscribe_ttl: 3
class SDConfig

Bases: FLYNCBaseModel

allows to configure the SOME/IP Service-Discovery. Represent from the Chapter SD, the Endpoint and SD Endpoint.

Parameters

ip_addressIPvAnyAddress

IP on which the service discovery operates.

portint

Port which the service discovery operates on. Must be greater than 0 and lower than 0xFFFF.

sd_timingsList[ SDTimings ]

Timing Configurations for SOME/IP-SD.

class SDTimings

Bases: DictInstances

Configurations for SOME/IP-SD Timings.

Parameters

profile_idstr

A unique ID for the SOME/IP-SD timings profile.

initial_delay_minfloat

Initial delay in milliseconds: This parameter keeps back service offers to pack more entries together. Must be greater or equal to 0 and lower or equal to 10. Defaults to 10.

initial_delay_maxfloat

Initial delay in milliseconds: This parameter keeps back service offers to pack more entries together. Must be greater or equal to 0 and lower or equal to 10. Defaults to 10.

repetitions_base_delayfloat

Repetitions Base delay in milliseconds: This parameter helps in fast startup and to make startup more robust.Loss of the first offer results in this delay. Must be greater or equal to 0 and lower or equal to 30. Defaults to 30.

repetitions_maxfloat

Number of repetitions while doubling delay. Must be greater or equal to 0 and lower or equal to 3. Defaults to 3.

request_response_delay_minfloat

Request response delay in milliseconds: This parameter keeps back subscribes to pack more entries together. Must be greater or equal to 0 and lower or equal to 10. Defaults to 10.

request_response_delay_maxfloat = Field(

Request response delay in milliseconds: This parameter keeps back subscribes to pack more entries together.”, Must be greater or equal to 0 and lower or equal to 10. Defaults to 10.

offer_cyclic_delay: float, optional

Offer cyclic delay in milliseconds: This parameter keeps system alive with cyclic offer. Must be greater or equal to 0 and lower or equal to 1000. Defaults to 1000.

offer_ttlfloat, optional

Time to live in milliseconds: This parameter determines how fast to age out state. Must be greater or equal to 0 and lower or equal to 3000. Defaults to 3000.

find_ttlfloat, optional

Offer cyclic delay in milliseconds: This parameter keeps system alive with cyclic offer. Must be greater or equal to 0 and lower or equal to 1000. Defaults to 1000.

subscribe_ttl: float, optional

Time to live in milliseconds: This parameter determines how fast to age out state. Must be greater or equal to 0 and lower or equal to 3000. Defaults to 3.

Service Interface

Expand for Schematic
        classDiagram

    class SOMEIPServiceMetadata {
        type: Literal['someip_service'] = 'someip_service'
        author: str
        compatible_flync_version: BaseVersion
        extensions: dict[str, str] | None = None
    }

    class SOMEIPFireAndForgetMethod {
        name: str
        description: str | None = ''
        type: Literal['fire_and_forget'] = 'fire_and_forget'
        id: int
        reliable: bool = False
        someip_tp: SOMEIPTP | None = None
        input_parameters: list[SInt8 | SInt16 | SInt32 | SInt64 | UInt8 | UInt16 | UInt32 | UInt64 | Float32 | Float64 | Enum | Boolean | Struct | Union | ArrayType | DynamicLengthString | FixedLengthString | Bitfield] | None = []
    }

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

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

    class SDTimings {
        profile_id: str
        initial_delay_min: float = 10
        initial_delay_max: float = 10
        repetitions_base_delay: float = 30
        repetitions_max: float = 3
        request_response_delay_min: float = 10.0
        request_response_delay_max: float = 10
        offer_cyclic_delay: float | None = 1000
        offer_ttl: float | None = 3
        find_ttl: float | None = 1000
        subscribe_ttl: float | None = 3
    }

    class Parameters {
        name: str
        type: SInt8 | SInt16 | SInt32 | SInt64 | UInt8 | UInt16 | UInt32 | UInt64 | Float32 | Float64 | Enum | Boolean | Struct | Union | ArrayType | DynamicLengthString | FixedLengthString | Bitfield
    }

    class SOMEIPMethod {
        name: str
        description: str | None = ''
        type: Literal['request_response', 'fire_and_forget']
        id: int
        reliable: bool = False
        someip_tp: SOMEIPTP | None = None
        input_parameters: list[SInt8 | SInt16 | SInt32 | SInt64 | UInt8 | UInt16 | UInt32 | UInt64 | Float32 | Float64 | Enum | Boolean | Struct | Union | ArrayType | DynamicLengthString | FixedLengthString | Bitfield] | None = []
    }

    class SOMEIPEvent {
        name: str
        description: str | None = ''
        id: int
        reliable: bool = False
        parameters: list[Parameters]
    }

    class SDConfig {
        ip_address: IPvAnyAddress
        port: int = 30490
        sd_timings: list[SDTimings]
    }

    class SOMEIPField {
        name: str
        parameters: list[SInt8 | SInt16 | SInt32 | SInt64 | UInt8 | UInt16 | UInt32 | UInt64 | Float32 | Float64 | Enum | Boolean | Struct | Union | ArrayType | DynamicLengthString | FixedLengthString | Bitfield]
        description: str | None = ''
        notifier_id: int | None = None
        setter_id: int | None = None
        getter_id: int | None = None
    }

    class SOMEIPEventgroup {
        name: str
        description: str | None = ''
        id: int
        multicast_threshold: int | None = 0
        events: list[SOMEIPEvent | SOMEIPField]
    }

    class SOMEIPServiceInterface {
        name: str
        description: str | None = ''
        id: int
        major_version: int = 0
        minor_version: int = 0
        fields: list[SOMEIPField] | None = []
        events: list[SOMEIPEvent] | None = []
        eventgroups: list[SOMEIPEventgroup] | None = []
        methods: list[SOMEIPFireAndForgetMethod | SOMEIPRequestResponseMethod] = []
        meta: SOMEIPServiceMetadata
    }

    class SOMEIPTP {
        enabled: bool = False
        max_segment_length: int = 0
    }

    class FLYNCBaseModel {
    }

    class SOMEIPRequestResponseMethod {
        name: str
        description: str | None = ''
        type: Literal['request_response'] = 'request_response'
        id: int
        reliable: bool = False
        someip_tp: SOMEIPTP | None = None
        input_parameters: list[SInt8 | SInt16 | SInt32 | SInt64 | UInt8 | UInt16 | UInt32 | UInt64 | Float32 | Float64 | Enum | Boolean | Struct | Union | ArrayType | DynamicLengthString | FixedLengthString | Bitfield] | None = []
        output_parameters: list[SInt8 | SInt16 | SInt32 | SInt64 | UInt8 | UInt16 | UInt32 | UInt64 | Float32 | Float64 | Enum | Boolean | Struct | Union | ArrayType | DynamicLengthString | FixedLengthString | Bitfield] | None = []
    }

    class DictInstances {
    }

    SOMEIPServiceMetadata ..> BaseVersion
    SOMEIPField ..> Boolean
    SOMEIPField ..> UInt64
    SOMEIPField ..> ArrayType
    SOMEIPField ..> SInt8
    SOMEIPField ..> Float32
    SOMEIPField ..> UInt8
    SOMEIPField ..> Bitfield
    SOMEIPField ..> DynamicLengthString
    SOMEIPField ..> Float64
    SOMEIPField ..> SInt16
    SOMEIPField ..> SInt32
    SOMEIPField ..> Struct
    SOMEIPField ..> SInt64
    SOMEIPField ..> UInt16
    SOMEIPField ..> FixedLengthString
    SOMEIPField ..> UInt32
    SOMEIPField ..> Union
    SOMEIPField ..> Enum
    Parameters ..> Boolean
    Parameters ..> UInt64
    Parameters ..> ArrayType
    Parameters ..> SInt8
    Parameters ..> Float32
    Parameters ..> UInt8
    Parameters ..> Bitfield
    Parameters ..> DynamicLengthString
    Parameters ..> Float64
    Parameters ..> SInt16
    Parameters ..> SInt32
    Parameters ..> Struct
    Parameters ..> SInt64
    Parameters ..> UInt16
    Parameters ..> FixedLengthString
    Parameters ..> UInt32
    Parameters ..> Union
    Parameters ..> Enum
    SOMEIPEvent ..> Parameters
    SOMEIPEventgroup ..> SOMEIPField
    SOMEIPEventgroup ..> SOMEIPEvent
    SOMEIPMethod ..> Boolean
    SOMEIPMethod ..> UInt64
    SOMEIPMethod ..> ArrayType
    SOMEIPMethod ..> SInt8
    SOMEIPMethod ..> Float32
    SOMEIPMethod ..> UInt8
    SOMEIPMethod ..> Bitfield
    SOMEIPMethod ..> DynamicLengthString
    SOMEIPMethod ..> Float64
    SOMEIPMethod ..> SInt16
    SOMEIPMethod ..> SInt32
    SOMEIPMethod ..> Struct
    SOMEIPMethod ..> SOMEIPTP
    SOMEIPMethod ..> SInt64
    SOMEIPMethod ..> UInt16
    SOMEIPMethod ..> FixedLengthString
    SOMEIPMethod ..> UInt32
    SOMEIPMethod ..> Union
    SOMEIPMethod ..> Enum
    SOMEIPRequestResponseMethod ..> Boolean
    SOMEIPRequestResponseMethod ..> UInt64
    SOMEIPRequestResponseMethod ..> ArrayType
    SOMEIPRequestResponseMethod ..> SInt8
    SOMEIPRequestResponseMethod ..> Float32
    SOMEIPRequestResponseMethod ..> UInt8
    SOMEIPRequestResponseMethod ..> Bitfield
    SOMEIPRequestResponseMethod ..> DynamicLengthString
    SOMEIPRequestResponseMethod ..> Float64
    SOMEIPRequestResponseMethod ..> SInt16
    SOMEIPRequestResponseMethod ..> SInt32
    SOMEIPRequestResponseMethod ..> Struct
    SOMEIPRequestResponseMethod ..> SOMEIPTP
    SOMEIPRequestResponseMethod ..> SInt64
    SOMEIPRequestResponseMethod ..> UInt16
    SOMEIPRequestResponseMethod ..> FixedLengthString
    SOMEIPRequestResponseMethod ..> UInt32
    SOMEIPRequestResponseMethod ..> Union
    SOMEIPRequestResponseMethod ..> Enum
    SOMEIPFireAndForgetMethod ..> Boolean
    SOMEIPFireAndForgetMethod ..> UInt64
    SOMEIPFireAndForgetMethod ..> ArrayType
    SOMEIPFireAndForgetMethod ..> SInt8
    SOMEIPFireAndForgetMethod ..> Float32
    SOMEIPFireAndForgetMethod ..> UInt8
    SOMEIPFireAndForgetMethod ..> Bitfield
    SOMEIPFireAndForgetMethod ..> DynamicLengthString
    SOMEIPFireAndForgetMethod ..> Float64
    SOMEIPFireAndForgetMethod ..> SInt16
    SOMEIPFireAndForgetMethod ..> SInt32
    SOMEIPFireAndForgetMethod ..> Struct
    SOMEIPFireAndForgetMethod ..> SOMEIPTP
    SOMEIPFireAndForgetMethod ..> SInt64
    SOMEIPFireAndForgetMethod ..> UInt16
    SOMEIPFireAndForgetMethod ..> FixedLengthString
    SOMEIPFireAndForgetMethod ..> UInt32
    SOMEIPFireAndForgetMethod ..> Union
    SOMEIPFireAndForgetMethod ..> Enum
    SOMEIPServiceInterface ..> SOMEIPServiceMetadata
    SOMEIPServiceInterface ..> SOMEIPField
    SOMEIPServiceInterface ..> SOMEIPEvent
    SOMEIPServiceInterface ..> SOMEIPEventgroup
    SOMEIPServiceInterface ..> SOMEIPRequestResponseMethod
    SOMEIPServiceInterface ..> SOMEIPFireAndForgetMethod
    SDConfig ..> SDTimings
    SDConfig ..> IPvAnyAddress
    SOMEIPConfig ..> SDConfig
    SOMEIPConfig ..> SOMEIPServiceInterface


    
Expand for a YAML example - 📁 services/

Note

All the SOME/IP services used in the system are configured in this directory. Each file contains following configuration parameters required to create a manifest of a SOME/IP service used in the system:

  • Name of the SOME/IP Service

  • Unique Service Identifier of the SOME/IP Service

  • Optional configuration for the Fields used in the SOME/IP Service

  • Optional configuration for the Events used in the SOME/IP Service

  • Optional configuration for the Eventgroups used in the SOME/IP Service

  • Optional configuration for the Methods used in the SOME/IP Service

The example file below shows the Enhanced Testability from TC8.

meta:
  author: "Dev"
  compatible_flync_version:
    version_schema: semver
    version: 0.9.0

name: Enhanced Testability Services (High)
id: 0x101
major_version: 1
minor_version: 1
fields:
- &field_0x8005
  name: InterfaceVersion
  parameters:
  - name: InterfaceVersion_Param
    type: uint8
  notifier_id: 32773
  getter_id: 37
- &field_0x8006
  name: TestFieldUINT8
  notifier_id: 32774
  setter_id: 39
  getter_id: 38
  parameters:
  - name: TestFieldUINT8_Param
    type: uint8
- &field_0x8007
  name: TestFieldUINT8Array
  notifier_id: 32775
  setter_id: 41
  getter_id: 40
  parameters:
  - name: TestFieldUINT8Array_Param
    type: uint8
- &field_0x8008
  name: TestFieldUINT8Reliable
  notifier_id: 32776
  setter_id: 43
  getter_id: 42
  parameters:
  - name: TestFieldUINT8Reliable_Param
    type: uint8
events:
- &event_0x8001
  name: TestEventUINT8
  id: 32769
  reliable: false
  parameters:
  - name: clientServiceGetLastValueOfEventUDPUnicast_ResArg1
    type: uint8
- &event_0x8002
  name: TestEventUINT8Array
  id: 32770
  reliable: false
  parameters:
  - name: TestEventUINT8Array_ResArg1
    type: uint8
- &event_0x8004
  name: TestEventUINT8E2E
  id: 32772
  reliable: false
  parameters:
  - name: TestEventUINT8E2E_ResArg1
    type: uint8
- &event_0x8003
  name: TestEventUINT8Reliable
  id: 32771
  reliable: false
  parameters:
  - name: clientServiceGetLastValueOfEventTCP_ResArg1
    type: uint8
- &event_0x800b
  name: TestEventUINT8Multicast
  id: 32779
  reliable: false
  parameters:
  - name: clientServiceGetLastValueOfEventUDPMulticast_ResArg1
    type: uint8
eventgroups:
- name: eventgroup_2
  id: 2
  multicast_threshold: 2
  events:
  - *event_0x8001
  - *event_0x8002
  - *event_0x8004
  - *event_0x8003
  - *event_0x800b
  - *field_0x8005
  - *field_0x8006
  - *field_0x8007
  - *field_0x8008
- name: eventgroup_5
  id: 5
  multicast_threshold: 2
  events:
  - *event_0x8001
  - *event_0x8002
  - *event_0x8004
  - *event_0x800b
  - *field_0x8005
  - *field_0x8006
  - *field_0x8007
- name: eventgroup_6
  id: 6
  multicast_threshold: 2
  events:
  - *event_0x800b
methods:
- name: checkByteOrder
  type: request_response
  id: 31
  reliable: true
  input_parameters:
  - name: checkByteOrder_ReqArg1
    type: uint8
  - name: checkByteOrder_ReqArg2
    type: uint16
  output_parameters:
  - name: checkByteOrder_ResArg1
    type: uint32
- name: clientServiceActivate
  type: fire_and_forget
  reliable: false
  id: 47
  input_parameters:
  - name: clientServiceActivate_ReqArg1
    type: uint8
    description: delay
- name: clientServiceDeactivate
  type: fire_and_forget
  id: 48
  reliable: false
  input_parameters:
  - name: clientServiceDeactivate_ReqArg1
    type: uint8
    description: delay
- name: clientServiceSubscribeEventgroup
  type: fire_and_forget
  id: 50
  reliable: false
  input_parameters:
  - name: clientServiceSubscribeEventgroup_ReqArg1
    type: uint32
    description: delay
  - name: clientServiceSubscribeEventgroup_ReqArg2
    type: uint32
    description: duration
- name: echoCommonDatatypes
  type: request_response
  id: 35
  reliable: true
  input_parameters:
  - name: EchoCommonDatatypes_ReqArg1
    type: boolean
  - name: EchoCommonDatatypes_ReqArg2
    type: uint8
  - name: EchoCommonDatatypes_ReqArg3
    type: uint16
  - name: EchoCommonDatatypes_ReqArg4
    type: uint32
  - name: EchoCommonDatatypes_ReqArg5
    type: sint8
  - name: EchoCommonDatatypes_ReqArg6
    type: sint16
  - name: EchoCommonDatatypes_ReqArg7
    type: sint32
  - name: EchoCommonDatatypes_ReqArg8
    type: float32
  - name: EchoCommonDatatypes_ReqArg9
    type: float64
  output_parameters:
  - name: EchoCommonDatatypes_ResArg1
    type: float64
  - name: EchoCommonDatatypes_ResArg2
    type: float32
  - name: EchoCommonDatatypes_ResArg3
    type: sint32
  - name: EchoCommonDatatypes_ResArg4
    type: sint16
  - name: EchoCommonDatatypes_ResArg5
    type: sint8
  - name: EchoCommonDatatypes_ResArg6
    type: uint32
  - name: EchoCommonDatatypes_ResArg7
    type: uint16
  - name: EchoCommonDatatypes_ResArg8
    type: uint8
  - name: EchoCommonDatatypes_ResArg9
    type: boolean
- name: echoENUM
  type: request_response
  id: 23
  reliable: true
  input_parameters:
  - name: echoENUM_ReqArg
    type: enum
    base_type:
      type: uint8
    entries:
    - value: 0
      name: echoENUM_ReqArg1
      description: This is the first request of echoENUM
  output_parameters:
  - name: echoENUM_ResArg
    type: enum
    base_type:
      type: uint8
    entries:
    - value: 0
      name: echoENUM_ResArg1
      description: This is the first response of echoENUM
- name: echoFLOAT64
  type: request_response
  reliable: true
  id: 18
  input_parameters:
  - name: echoFLOAT64_ReqArg1
    type: float64
  output_parameters:
  - name: echoFLOAT64_ResArg1
    type: float64
- name: echoInt64
  type: request_response
  id: 52
  reliable: true
  input_parameters:
  - name: echoInt64_ReqArg1
    type: sint64
  output_parameters:
  - name: echoInt64_ResArg1
    type: sint64
- name: echoINT8
  type: request_response
  id: 14
  reliable: true
  input_parameters:
  - name: echoINT8_ReqArg1
    type: sint8
  output_parameters:
  - name: echoINT8_ResArg1
    type: sint8
- name: echoStaticUINT8Array
  type: request_response
  id: 54
  reliable: true
  input_parameters:
  - name: echoStaticUINT8Array_ReqArg1
    type: array
    dimensions:
    - kind: fixed
      length: 5
    element_type:
      type: uint8
  output_parameters:
  - name: echoStaticUINT8Array_ResArg1
    type: array
    dimensions:
    - kind: fixed
      length: 5
    element_type:
      type: uint8
- name: echoUINT8
  type: request_response
  id: 8
  reliable: true
  input_parameters:
  - name: echoUINT8_ReqArg1
    type: uint8
  output_parameters:
  - name: echoUINT8_ResArg1
    type: uint8
- name: echoUINT8Array
  type: request_response
  id: 9
  reliable: true
  input_parameters:
  - name: echoUINT8Array_ReqArg1
    type: uint32
    description: array len
  - name: echoUINT8Array_ReqArg2
    type: array
    description: array
    dimensions:
    - kind: dynamic
      length_of_length_field: 32
    element_type:
      type: uint8
  output_parameters:
  - name: echoUINT8Array_ResArg1
    type: uint32
    description: array len
  - name: echoUINT8Array_ResArg2
    type: array
    description: array
    dimensions:
    - kind: dynamic
      length_of_length_field: 32
    element_type:
      type: uint8
- name: echoUINT8Array8BitLength
  type: request_response
  id: 62
  reliable: true
  input_parameters:
  - name: echoUINT8Array8BitLength_ReqArg1
    type: uint8
    description: array len
  - name: echoUINT8Array8BitLength_ReqArg2
    type: array
    description: array
    dimensions:
    - kind: dynamic
      length_of_length_field: 8
    element_type:
      type: uint8
  output_parameters:
  - name: echoUINT8Array8BitLength_ResArg1
    type: uint8
    description: array len
  - name: echoUINT8Array8BitLength_ResArg2
    type: array
    description: array
    element_type:
      type: uint8
    dimensions:
    - kind: dynamic
      length_of_length_field: 8
- name: echoUINT8Array16BitLength
  type: request_response
  id: 63
  reliable: true
  input_parameters:
  - name: echoUINT8Array16BitLength_ReqArg1
    type: uint16
    description: array len
  - name: echoUINT8Array16BitLength_ReqArg2
    type:   array
    description: array
    dimensions:
    - kind: dynamic
      length_of_length_field: 16
    element_type:
      type: uint8
  output_parameters:
  - name: echoUINT8Array16BitLength_ResArg1
    type: uint16
    description: array len
  - name: echoUINT8Array16BitLength_ResArg2
    type: array
    description: array
    dimensions:
    - kind: dynamic
      length_of_length_field: 16
    element_type:
      type: uint8
- name: echoUINT8Array2Dim
  type: request_response
  id: 53
  reliable: true
  input_parameters:
  - name: echoUINT8Array2Dim_ReqArg1
    type: uint32
    description: array len
  - name: echoUINT8Array2Dim_ReqArg2
    type: array
    description: array
    dimensions:
    - kind: dynamic
      length_of_length_field: 32
    element_type:
      type: uint8
  output_parameters:
  - name: echoUINT8Array2Dim_ResArg1
    type: uint32
    description: array len
  - name: echoUINT8Array2Dim_ResArg2
    type: array
    description: array
    dimensions:
    - kind: dynamic
      length_of_length_field: 32
    element_type:
      type: uint8
- name: echoUINT8ArrayMinSize
  type: request_response
  id: 55
  reliable: true
  input_parameters:
  - name: echoUINT8ArrayMinSize_ReqArg1
    type: uint32
    description: array len
  - name: echoUINT8ArrayMinSize_ReqArg2
    type: array
    description: array
    dimensions:
    - kind: dynamic
      length_of_length_field: 32
      lower_limit: 3
      upper_limit: 5
    element_type:
      type: uint8
  output_parameters:
  - name: echoUINT8ArrayMinSize_ResArg1
    type: uint32
    description: array len
  - name: echoUINT8ArrayMinSize_ResArg2
    type: array
    description: array
    dimensions:
    - kind: dynamic
      length_of_length_field: 32
      lower_limit: 3
      upper_limit: 5
    element_type:
      type: uint8
- name: echoUINT8E2E
  type: request_response
  id: 11
  reliable: true
  input_parameters:
  - name: echoUINT8E2E_ReqArg1
    type: uint32
    description: len
  - name: echoUINT8E2E_ReqArg2
    type: uint32
    description: counter
  - name: echoUINT8E2E_ReqArg3
    type: uint32
    description: dataID
  - name: echoUINT8E2E_ReqArg4
    type: uint32
    description: crc
  - name: echoUINT8E2E_ReqArg5
    type: uint8
    description: value
  output_parameters:
  - name: echoUINT8E2E_ResArg1
    type: uint32
    description: len
  - name: echoUINT8E2E_ResArg2
    type: uint32
    description: counter
  - name: echoUINT8E2E_ResArg3
    type: uint32
    description: dataID
  - name: echoUINT8E2E_ResArg4
    type: uint32
    description: crc
  - name: echoUINT8E2E_ResArg5
    type: uint8
    description: value
- name: echoUINT8RELIABLE
  type: request_response
  id: 10
  reliable: true
  input_parameters:
  - name: echoUINT8RELIABLE_ReqArg1
    type: uint8
  output_parameters:
  - name: echoUINT8RELIABLE_ResArg1
    type: uint8
- name: echoUNION
  type: request_response
  id: 25
  reliable: true
  input_parameters:
  - name: echoUNION_ReqArg1
    type: uint32
    description: len
  - name: echoUNION_ReqArg2
    type: uint32
    description: type
  - name: echoUNION_ReqArg3
    type: union
    description: value
    members:
    - type: boolean
      index: 0
      name: Boolean
    - type: uint8
      index: 1
      name: UInt8
    - type: uint16
      index: 2
      name: UInt16
    - type: uint32
      index: 3
      name: UInt32
    - type: sint8
      index: 4
      name: SInt8
    - type: sint16
      index: 5
      name: SInt16
    - type: sint32
      index: 6
      name: SInt32
    - type: float32
      index: 7
      name: Float32
  output_parameters:
  - name: echoUNION_ResArg1
    type: uint32
    description: len
  - name: echoUNION_ResArg2
    type: uint32
    description: type
  - name: echoUNION_ResArg3
    type: union
    description: value
    members:
    - type: boolean
      index: 0
      name: Boolean
    - type: uint8
      index: 1
      name: UInt8
    - type: uint16
      index: 2
      name: UInt16
    - type: uint32
      index: 3
      name: UInt32
    - type: sint8
      index: 4
      name: SInt8
    - type: sint16
      index: 5
      name: SInt16
    - type: sint32
      index: 6
      name: SInt32
    - type: float32
      index: 7
      name: Float32
- name: echoUTF16DYNAMIC
  type: request_response
  id: 22
  reliable: true
  input_parameters:
  - name: echoUTF16DYNAMIC_ReqArg1
    type: uint32
    description: len
  - name: echoUTF16DYNAMIC_ReqArg2
    type: dynamic_length_string
    description: string
    encoding: UTF-16BE
  output_parameters:
  - name: echoUTF16DYNAMIC_ResArg1
    type: uint32
    description: len
  - name: echoUTF16DYNAMIC_ResArg2
    type: dynamic_length_string
    description: string
    encoding: UTF-16BE
- name: echoUTF16FIXED
  type: request_response
  id: 20
  reliable: true
  input_parameters:
  - name: echoUTF16FIXED_ReqArg1
    type: fixed_length_string
    description: string
    encoding: UTF-16BE
    length: 64
  output_parameters:
  - name: echoUTF16FIXED_ResArg1
    type: fixed_length_string
    description: string
    encoding: UTF-16BE
    length: 64
- name: echoUTF8DYNAMIC
  type: request_response
  id: 21
  reliable: true
  input_parameters:
  - name: echoUTF8DYNAMIC_ReqArg1
    type: uint32
    description: len
  - name: echoUTF8DYNAMIC_ReqArg2
    type: dynamic_length_string
    description: string
    encoding: UTF-8
  output_parameters:
  - name: echoUTF8DYNAMIC_ResArg1
    type: uint32
    description: len
  - name: echoUTF8DYNAMIC_ResArg2
    type: dynamic_length_string
    description: string
    encoding: UTF-8
- name: echoUTF8FIXED
  type: request_response
  id: 19
  reliable: true
  input_parameters:
  - name: echoUTF8FIXED_ReqArg1
    type: fixed_length_string
    description: string
    encoding: UTF-8
    length: 64
  output_parameters:
  - name: echoUTF8FIXED_ResArg1
    type: fixed_length_string
    description: string
    encoding: UTF-8
    length: 64
- name: resetInterface
  type: fire_and_forget
  id: 1
  reliable: false
- name: suspendInterface
  type: fire_and_forget
  id: 2
  reliable: false
  input_parameters:
  - name: suspendInterface_ReqArg1
    type: uint32
    description: delay
  - name: suspendInterface_ReqArg2
    type: uint32
    description: duration
- name: triggerEventUINT8
  type: fire_and_forget
  id: 3
  reliable: false
  input_parameters:
  - name: triggerEventUINT8_ReqArg1
    type: uint32
    description: delay
  - name: triggerEventUINT8_ReqArg2
    type: uint32
    description: duration
  - name: triggerEventUINT8_ReqArg3
    type: uint32
    description: debounceTime
- name: triggerEventUINT8Array
  type: fire_and_forget
  id: 4
  reliable: false
  input_parameters:
  - name: triggerEventUINT8Array_ReqArg1
    type: uint32
    description: delay
  - name: triggerEventUINT8Array_ReqArg2
    type: uint32
    description: duration
  - name: triggerEventUINT8Array_ReqArg3
    type: uint32
    description: debounceTime
- name: triggerEventUINT8E2E
  type: fire_and_forget
  id: 6
  reliable: false
  input_parameters:
  - name: triggerEventUINT8E2E_ReqArg1
    type: uint32
    description: delay
  - name: triggerEventUINT8E2E_ReqArg2
    type: uint32
    description: duration
  - name: triggerEventUINT8E2E_ReqArg3
    type: uint32
    description: debounceTime
- name: triggerEventUINT8Reliable
  type: fire_and_forget
  id: 5
  reliable: false
  input_parameters:
  - name: triggerEventUINT8Reliable_ReqArg1
    type: uint32
    description: delay
  - name: triggerEventUINT8Reliable_ReqArg2
    type: uint32
    description: duration
  - name: triggerEventUINT8Reliable_ReqArg3
    type: uint32
    description: debounceTime
- name: triggerEventUINT8Multicast
  type: fire_and_forget
  id: 58
  reliable: false
  input_parameters:
  - name: triggerEventUINT8Multicast_ReqArg1
    type: uint32
    description: delay
  - name: triggerEventUINT8Multicast_ReqArg2
    type: uint32
    description: duration
  - name: triggerEventUINT8Multicast_ReqArg3
    type: uint32
    description: debounceTime
- name: clientServiceGetLastValueOfEventTCP
  type: request_response
  id: 59
  reliable: true
  output_parameters:
  - name: clientServiceGetLastValueOfEventTCP_ResArg1
    type: uint8
- name: clientServiceGetLastValueOfEventUDPUnicast
  type: request_response
  id: 60
  reliable: true
  output_parameters:
  - name: clientServiceGetLastValueOfEventUDPUnicast_ResArg1
    type: uint8
- name: clientServiceGetLastValueOfEventUDPMulticast
  type: request_response
  id: 61
  reliable: true
  output_parameters:
  - name: clientServiceGetLastValueOfEventUDPMulticast_ResArg1
    type: uint8
- name: echoBitfields
  type: request_response
  id: 65
  reliable: true
  input_parameters:
  - name: echoBitfields_ReqArg1
    type: bitfield
    length: 8
  - name: echoBitfields_ReqArg2
    type: bitfield
    length: 16
  - name: echoBitfields_ReqArg3
    type: bitfield
    length: 32
  output_parameters:
  - name: echoBitfields_ResArg1
    type: bitfield
    length: 8
  - name: echoBitfields_ResArg2
    type: bitfield
    length: 16
  - name: echoBitfields_ResArg3
    type: bitfield
    length: 32
class SOMEIPServiceInterface

Bases: DictInstances

Class to create a SOME/IP service interface definition.

Parameters

namestr

Name of the service

description : str, optional

idint

Unique identifier for the service. Must be greater than 0 and lower or equal than 0xFFFF.

major_versionint

The major version of this service interface. Must be greater than 0 and lower or equal than 0xFF.

minor_versionint

The minor version of this service interface. Must be greater than 0 and lower or equal than 0xFFFFFFFF.

fieldsList[ SOMEIPField]

Fields of the service.

eventsList[SOMEIPEvent]

Events of the service.

eventgroupsList[SOMEIPEventgroup]

Eventgroups of the service.

methodsList[ SOMEIPFireAndForgetMethod | SOMEIPRequestResponseMethod ]

Methods of the service.

metaSOMEIPServiceMetadata

Metadata for the SOME/IP Service.

Method

class SOMEIPMethod

Bases: FLYNCBaseModel

Datastructure to model SOME/IP methods.

Parameters

namestr

Name of the Method.

descriptionstr, optional

Description of the Method.

typeLiteral[“request_response”, “fire_and_forget”]

Type of the Method.

idint

Unique method identifier for the service interface. Must be greater than 0 and lower or equal than 0xFFFF.

reliablebool

Indicates whether the event is transmitted reliably.

someip_tpSOMEIPTP

SOME/IP Transport Protocol configuration for this method.

input_parameterslist[ AllTypes ]

List of input parameters.

class SOMEIPFireAndForgetMethod

Bases: SOMEIPMethod

Allows to model SOME/IP methods which will not return a response.

class SOMEIPRequestResponseMethod

Bases: SOMEIPMethod

Allows to model SOME/IP methods which will return a response.

Parameters

output_parameterslist[ AllTypes ]

List of output parameters of the response.

class SOMEIPTP

Bases: FLYNCBaseModel

SOME/IP Transport Protocol configuration.

Parameters

enabledbool

Indicates whether SOME/IP-TP is enabled or not. Defaults to False.

max_segment_lengthint

maximum segment length. Defaults to 0.

Eventgroup

class SOMEIPEventgroup

Bases: FLYNCBaseModel

Main datastructure to model a SOME/IP Eventgroup.

Parameters

namestr

Name of the Eventgroup.

description : str, optional

idint

Identifies the Eventgroup. Must be greater than 0 and lower or equal than 0xFFFF.

multicast_thresholdint, optional

Identifies the multicast threshold. Must be greater than 0. Defaults to 0.

events: list[SOMEIPEvent | SOMEIPField]

The events and fields this eventgroup contains.

Event

class SOMEIPEvent

Bases: FLYNCBaseModel

Defines a SOME/IP event definition.

This model is used to describe a SOME/IP event, including its identifier, reliability settings, optional E2E protection configuration, and the list of parameters that the event transports.

Parameters

namestr

Name of the event.

descriptionstr, optional

Human-readable description of the event.

idint

Unique identifier of the event. Must be greater than 0 and lower or equal than 0xFFFF.

reliablebool

Indicates whether the event is transmitted reliably.

parameters list[Parameters]

List of parameters.

class Parameters

Bases: FLYNCBaseModel

Definition of Parameters for SOME-IP Events.

Parameters

namestr

Identifies the parameter.

typeAllTypes

Datatype of the Parameter.

Field

class SOMEIPField

Bases: FLYNCBaseModel

Base datastructure to design a SOME/IP Field

Parameters

namestr

Name of the Field.

parameterslist[ AllTypes ]

List of Parameters of the Field.

descriptionstr, optional

Description of the Field.

notifier_idint, optional

Identifies the Field Notifier. Must be greater than 0 and lower or equal than 0xFFFF. Defaults to 1.

setter_idint, optional

Identifies the Field Setter. Must be greater than 0 and lower or equal than 0xFFFF.

getter_idint, optional

Identifies the Field Getter. Must be greater than 0 and lower or equal than 0xFFFF.

Service Deployment

Expand for Schematic
        classDiagram

    class MulticastEndpoint {
        protocol: Literal['UDP'] = 'UDP'
        port: int
        ip_address: IPvAnyAddress
    }

    class BaseUDPDeployment {
        protocol: Literal['UDP'] = 'UDP'
        port: int
    }

    class SOMEIPServiceDeployment {
        deployment_type: Literal['someip', 'someip_provider', 'someip_consumer']
        service: int
        major_version: int = 0
        instance_id: int
        find_service_multicast: MulticastEndpoint | None = None
        someip_sd_timings_profile: str
    }

    class SOMEIPServiceProvider {
        deployment_type: Literal['someip_provider'] = 'someip_provider'
        service: int
        major_version: int = 0
        instance_id: int
        find_service_multicast: MulticastEndpoint | None = None
        someip_sd_timings_profile: str
    }

    class SOMEIPServiceInterface {
        name: str
        description: str | None = ''
        id: int
        major_version: int = 0
        minor_version: int = 0
        fields: list[SOMEIPField] | None = []
        events: list[SOMEIPEvent] | None = []
        eventgroups: list[SOMEIPEventgroup] | None = []
        methods: list[SOMEIPFireAndForgetMethod | SOMEIPRequestResponseMethod] = []
        meta: SOMEIPServiceMetadata
    }

    class TCPDeployment {
        protocol: Literal['TCP'] = 'TCP'
        port: int
    }

    class SDTimings {
        profile_id: str
        initial_delay_min: float = 10
        initial_delay_max: float = 10
        repetitions_base_delay: float = 30
        repetitions_max: float = 3
        request_response_delay_min: float = 10.0
        request_response_delay_max: float = 10
        offer_cyclic_delay: float | None = 1000
        offer_ttl: float | None = 3
        find_ttl: float | None = 1000
        subscribe_ttl: float | None = 3
    }

    class SOMEIPSDDeployment {
        deployment_type: Literal['someip_sd'] = 'someip_sd'
        multicast: MulticastSDEndpoint | None = None
    }

    class SOMEIPServiceConsumer {
        deployment_type: Literal['someip_consumer'] = 'someip_consumer'
        service: int
        major_version: int = 0
        instance_id: int
        find_service_multicast: MulticastEndpoint | None = None
        someip_sd_timings_profile: str
        consumed_eventgroups: list[str] | None = None
    }

    class Layer4Endpoint {
        protocol: Literal['UDP', 'TCP'] = 'UDP'
        port: int
    }

    class FLYNCBaseModel {
    }

    class MulticastSDEndpoint {
        protocol: Literal['UDP'] = 'UDP'
        port: int
        ip_address: IPvAnyAddress
        ip_ttl: int
    }

    class UDPDeployment {
        protocol: Literal['UDP'] = 'UDP'
        port: int
        multicast: MulticastEndpoint | None = None
    }

    SOMEIPServiceInterface ..> SOMEIPServiceMetadata
    SOMEIPServiceInterface ..> SOMEIPField
    SOMEIPServiceInterface ..> SOMEIPEvent
    SOMEIPServiceInterface ..> SOMEIPEventgroup
    SOMEIPServiceInterface ..> SOMEIPRequestResponseMethod
    SOMEIPServiceInterface ..> SOMEIPFireAndForgetMethod
    MulticastEndpoint ..> IPvAnyAddress
    MulticastSDEndpoint ..> IPvAnyAddress
    UDPDeployment ..> MulticastEndpoint
    SOMEIPSDDeployment ..> MulticastSDEndpoint
    SOMEIPServiceDeployment ..> MulticastEndpoint
    SOMEIPServiceConsumer ..> MulticastEndpoint
    SOMEIPServiceProvider ..> MulticastEndpoint


    

Hint

Service Deployments are directly configured in a socket. For further details on the configuration go to: Socket Config.

class SOMEIPServiceProvider

Bases: SOMEIPServiceDeployment

Defines the provider of a SOME/IP service instance (like offering & sending responses, events).

Parameters

deployment_type : Literal[“someip_provider”]

class SOMEIPServiceConsumer

Bases: SOMEIPServiceDeployment

Defines the consumer of a SOME/IP service instance (like subscribing & calling methods).

Parameters

deployment_type : Literal[“someip_consumer”]

consumed_eventgroups : List[str], optional

class SOMEIPSDDeployment

Bases: FLYNCBaseModel

Defines the Service Discovery endpoint of SOME/IP.

Parameters

deployment_type: Literal[“someip_sd”]

multicastOptional[MulticastSDEndpoint]

Multicast configuration for an SD endpoint.


class Layer4Endpoint

Bases: FLYNCBaseModel

Layer4Endpoint Class method for Layer4 endpoint .

Parameters

protocolLiteral[“UDP”, “TCP”]

Protocol of the Layer4Endpoint. Defaults to UDP.

portint

Layer4 Port. Must be greater than 0 and less or equal to 65535.

class MulticastEndpoint

Bases: BaseUDPDeployment

MulticastEndpoint for UDP Deployments.

Parameters

ip_addressIPvAnyAddress

IP-Address of the Multicast Endpoint.

class MulticastSDEndpoint

Bases: MulticastEndpoint

MulticastSDEndpoint

Parameters

ip_ttlint

IP Time-to-Live. Must be greater or equal to 0 and less or equal to 255.

class SOMEIPServiceDeployment

Bases: ABC, FLYNCBaseModel

SOMEIPServiceDeployment Create a service deployment that will be used for provided service.

Parameters

deployment_type : Literal[“someip”]

serviceint

Identifies the service. Must be greater than 0.

major_versionint

The major version of this service interface. Must be greater than 0.

instance_id: int

Id of the Service Instance. Must be greater than 0.

find_service_multicast: MulticastEndpoint, optional

A multicast endpoint.

someip_sd_timings_profile: str

The SOME/IP timings profile_id used for the deployment.

class BaseUDPDeployment

Bases: Layer4Endpoint

Base class for deploying a SOME/IP service onto a UDP-endpoint.

class UDPDeployment

Bases: BaseUDPDeployment

Allows deploying a SOME/IP service onto a UDP-endpoint (including multicast).

Parameters

multicastMulticastEndpoint, optional

Multicast configuration for this endpoint.

class TCPDeployment

Bases: Layer4Endpoint

Base class for deploying a SOME/IP service onto a TCP-endpoint