Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 113 additions & 0 deletions pipeline/inputs/someip.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
# SOMEIP

The `someip` input plugin is used to interact with a `SOME/IP` communication network to subscribe to events and to exchange request/response with `SOME/IP` services.

This plugin uses the [`vsomeip`](https://github.com/COVESA/vsomeip) library (built-in dependency).

## Configuration parameters

The plugin supports the following configuration parameters:

| Key | Description |
| ------------ | ----------- |
| `event` | `SOME/IP` event to subscribe to. The configuration can have multiple events, one on each line. An event is identified by a comma-separated list with, `service_ID, event_ID, event_group_ID_1, event_group_ID_2, ...`. The event must include at least one `event_group_ID`, but can be associated with multiple. |
| `rpc` | `SOME/IP` request to send when service is available. The configuration can have multiple RPC entries, one on each line. An RPC is composed as a comma-separated list with, `service_ID, service_instance, method_ID, request_payload`. The request payload should be base64 encoded. |

Comment thread
coderabbitai[bot] marked this conversation as resolved.
## Get started

To subscribe to `SOME/IP` events or send request/receive `SOME/IP` response, run the plugin from the command line or through the configuration file:

### Command line

The `someip` plugin can be enabled with options from the command line:

```shell
./fluent-bit -i someip -p Event=4,1,32768,1 -o stdout
```

### Configuration file

In your main configuration file append the following sections:

{% tabs %}
{% tab title="fluent-bit.yaml" %}
```yaml
pipeline:
inputs:
- name: someip
event:
- '4,1,32768,1'
- '4,1,32769,2'
rpc: '4,1,1,CgAQAw=='
```
{% endtab %}
{% tab title="fluent-bit.conf" %}
```text
[INPUT]
Name someip
Tag in.someip

Event 4,1,32768,1
Event 4,1,32769,2
RPC 4,1,1,CgAQAw==

[OUTPUT]
Name stdout
```
{% endtab %}
{% endtabs %}

## Testing

Once Fluent Bit is running, you can send some `SOME/IP` messages using the `SOME/IP` test service provided.

```shell
$ bin/someip_test_service
2025-02-06 22:18:06.211337 [info] Parsed vsomeip configuration in 0ms
...
Sending event with message Event Number 1
Sent notification for service 4, event 32768
Sending event with message Event Number 2
Sent notification for service 4, event 32768
```

The following output displays in [Fluent Bit](https://fluentbit.io):

```shell
$ bin/fluent-bit -i someip -p Event=4,1,32768,1 -o stdout
Fluent Bit v3.2.0
* Copyright (C) 2015-2024 The Fluent Bit Authors
* Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
* https://fluentbit.io

______ _ _ ______ _ _ _____ _____
| ___| | | | | ___ (_) | |____ |/ __ \
| |_ | |_ _ ___ _ __ | |_ | |_/ /_| |_ __ __ / /`' / /'
| _| | | | | |/ _ \ '_ \| __| | ___ \ | __| \ \ / / \ \ / /
| | | | |_| | __/ | | | |_ | |_/ / | |_ \ V /.___/ /./ /___
\_| |_|\__,_|\___|_| |_|\__| \____/|_|\__| \_/ \____(_)_____/


[2025/02/06 22:12:23] [ info] [fluent bit] version=3.2.0, commit=239b46be20, pid=51044
[2025/02/06 22:12:23] [ info] [storage] ver=1.5.2, type=memory, sync=normal, checksum=off, max_chunks_up=128
[2025/02/06 22:12:23] [ info] [simd ] disabled
[2025/02/06 22:12:23] [ info] [cmetrics] version=0.9.8
[2025/02/06 22:12:23] [ info] [ctraces ] version=0.5.7
[2025/02/06 22:12:23] [ info] [input:someip:someip.0] initializing
[2025/02/06 22:12:23] [ info] [input:someip:someip.0] storage_strategy='memory' (memory only)
[2025/02/06 22:12:23] [ info] [input:someip:someip.0] Received 1 configured events
[2025/02/06 22:12:23] [ info] [input:someip:someip.0] No RPC configured.
...
2025-02-06 22:18:03.130557 [info] vSomeIP 3.5.1 | (default)
2025-02-06 22:18:06.223714 [info] Application/Client 0101 is registering.
2025-02-06 22:18:06.225581 [info] Client [100] is connecting to [101] at /tmp/vsomeip-101 endpoint > 0x79a50c000e30
2025-02-06 22:18:06.230477 [info] REGISTERED_ACK(0101)
2025-02-06 22:18:06.236103 [info] Port configuration missing for [4.1]. Service is internal.
2025-02-06 22:18:06.236923 [info] OFFER(0101): [0004.0001:0.0] (true)
2025-02-06 22:18:06.240237 [info] SUBSCRIBE ACK(0101): [0004.0001.0001.ffff]
Received message for service 4 event = 32768
[0] someip.0: [[1738880288.622425534, {}], {"record type"=>"event", "service"=>4, "instance"=>1, "event"=>32768, "payload"=>"RXZlbnQgTnVtYmVyIDE="}]
Received message for service 4 event = 32768
[0] someip.0: [[1738880290.622781511, {}], {"record type"=>"event", "service"=>4, "instance"=>1, "event"=>32768, "payload"=>"RXZlbnQgTnVtYmVyIDI="}]
...
```