Nils Tonnaett
2dd60fdbc6
module-avb: fix types
2026-05-25 07:55:01 +00:00
Nils Tonnaett
ef77d995cd
module-avb: SET_NAME: check that string is valid utf8 and zero padded
2026-05-25 07:55:01 +00:00
Nils Tonnaett
b47c07b9cd
module-avb: add UTF-8 validation function
2026-05-25 07:55:01 +00:00
hackerman-kl
97436efe1e
milan-avb: cmd-get-as-path: build [gm,...,local] and emit unsolicited GET_AS_PATH
2026-05-03 10:26:16 +02:00
hackerman-kl
46f9c5130e
milan-avb: cmd-get-as-path: build path from gptp data
2026-05-03 10:26:16 +02:00
hackerman-kl
deeea620f6
milan-avb: aecp-aem: GET_AS_PATH placeholder per IEEE 1722.1-2021 Section 7.4.41
2026-04-27 10:56:44 +00:00
hackerman-kl
d8b9a0f5ab
milan-avb: aecp-aem: GET_STREAM_INFO CDL excludes 12-octet AVTPDU common
2026-04-27 10:56:44 +00:00
hackerman-kl
9c0007173b
milan-avb: stream: wire Milan Section 5.4.5 stream counters, TX heartbeat, and MAX_TRANSIT_TIME plumbing
2026-04-27 10:56:44 +00:00
hackerman-kl
16d793db38
milan-avb: acmp: fixing the missing stream deactivate
2026-04-27 10:56:44 +00:00
hackerman-kl
de17f14da4
milan-avb: introducing GET_AS_PATH and GET/SET_MAX_TRANSIT
2026-04-27 10:56:44 +00:00
hackerman-kl
d9f8bacc76
milan-avb: AEM non-success replies preserve command payload size
2026-04-27 10:56:44 +00:00
hackerman-kl
52c6c0a0cf
milan-avb: GET_STREAM_INFO: fixing the bound state according tol the ACMP status
2026-04-27 10:56:44 +00:00
hackerman-kl
0bf4864d84
milan-avb: move teh descriptor FAM at the end of the structure to avoid overflow
2026-04-27 10:56:44 +00:00
hackerman-kl
76e7806251
milan-avb: cmd-get-set-stream-info: treat LV registrar as still registering
2026-04-27 10:56:44 +00:00
hackerman-kl
8bcdc2896c
milan-avb: cmd-get-as-path: add command handler stub
2026-04-27 10:56:44 +00:00
hackerman-kl
2f4dbe3ca7
milan-avb: cmd-audio-mappings: add command handler stub
2026-04-27 10:56:44 +00:00
hackerman-kl
d9f224b122
milan-avb: cmd-start-stop-streaming: add command handler
2026-04-27 10:56:44 +00:00
hackerman-kl
6bf27b6c4e
milan-avb: cmd-get-set-stream-info: add command handler
2026-04-27 10:56:44 +00:00
hackerman-kl
99c9248a17
milan-avb: cmd-get-counters: add header
2026-04-27 10:56:44 +00:00
hackerman-kl
2118aefcdd
milan-avb: aecp-aem: NOT_IMPLEMENTED replies use CDL=12
2026-04-27 10:56:44 +00:00
hackerman-kl
e6f1245ffc
milan-avb: cmd-get-counters: fix CDL field
2026-04-27 10:56:44 +00:00
hackerman-kl
4856f85de2
first draft for ACMP/ timeout handling, and communication between SRP/ADP and the ACMP state machine
2026-04-27 10:56:44 +00:00
hackerman-kl
d46523e6ad
module-avb: milan: introducing GET_DYNAMIC_INFO
2026-04-27 10:56:44 +00:00
Wim Taymans
710414730d
security: validate packet length in AVB AECP AEM command handlers
...
Memory Safety: High
Multiple AVB AECP AEM command handler functions copied network packet
data into stack buffers via memcpy(buf, m, len) without validating
that len fits within the destination buffer. A crafted AVB packet with
an oversized length could overflow the stack buffer.
Added bounds validation before each memcpy in:
- cmd-available.c: handle_cmd_entity_available_milan_v12
- cmd-get-set-configuration.c: set and get configuration handlers
- cmd-get-set-sampling-rate.c: unsolicited, invalid response, and get handlers
- cmd-get-set-stream-format.c: get and set stream format handlers
- cmd-lock-entity.c: handle_cmd_lock_entity_milan_v12
This matches the bounds checking pattern already used in
cmd-get-set-control.c, cmd-get-set-clock-source.c, and
cmd-get-set-name.c.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-27 11:35:41 +02:00
hackerman-kl
0ac8b1c5fa
module-avb: fix GET_NAME to validate length before field reads and reply with fixed size
2026-04-24 11:50:23 +02:00
hackerman-kl
01dd7e607c
module-avb: bound packet copy length in reply_status helper
2026-04-24 11:50:20 +02:00
hackerman-kl
a8832c74d0
module-avb: bound packet copy length in get-set-name handlers
2026-04-20 18:29:56 +02:00
hackerman-kl
e6b4de6442
milan-avb: guard against size_t underflow on short packets in unsol reply prepare
2026-04-19 18:58:01 +02:00
hackerman-kl
09f9100ce7
milan-avb: validate packet length before dereferencing SET_CONTROL value byte
2026-04-19 07:39:03 +02:00
hackerman-kl
0291895498
milan-avb: zero-pad oversized SET_CONTROL reply buffer to avoid stack info leak
2026-04-18 17:13:05 +02:00
hackerman-kl
b831fd857f
milan-avb: bound packet copy length in get-set-control handlers
2026-04-16 19:50:33 +02:00
hackerman-kl
f06234fda8
milan-avb: bound packet copy length in clock-source handlers
2026-04-16 19:07:59 +02:00
hackerman-kl
d1deabe5ac
milan-avb: fix descriptor field and endianness in GET_CLOCK_SOURCE lookup
2026-04-14 19:00:02 +02:00
hackerman-kl
8fbeb23bbf
milan-avb: implement deregister unsolicited notifications to actually clear registration
2026-04-13 18:52:30 +02:00
hackerman-kl
c551acf4d1
milan-avb: lock: make it lockable:
...
1. The period calls were added to handle timeouts.
2. Handle the case where lock must be unlocked after 60s if the
controller owning the locked does not release it.
2026-04-16 12:42:23 +02:00
Christian F.K. Schaller
d9821d09c7
module-avb: fix Milan lock entity error response and re-lock timeout
...
Fix two bugs in handle_cmd_lock_entity_milan_v12():
1. When server_find_descriptor() returns NULL, reply_status() was called
with the AEM packet pointer instead of the full ethernet frame,
corrupting the response ethernet header.
2. When refreshing an existing lock, the expire timeout was extended by
raw seconds (60) instead of nanoseconds (60 * SPA_NSEC_PER_SEC),
causing the lock to expire almost immediately after re-lock.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-09 07:43:19 +00:00
Wim Taymans
0869be11f8
avb: fix compilation
2026-01-11 11:27:15 +01:00
hackerman-kl
3597e09600
milan-avb: introducing SET/GET CONTROL, first IDENTIFY
2026-01-11 10:26:10 +00:00
hackerman-kl
2fe254821c
module-avb: milan: aecp-aem: introducing GET/SET_SAMPLING_RATE commands
2026-01-09 13:04:19 +00:00
hackerman-kl
e7f1a8f55d
milan-avb: get-set name: removing unused var
2026-01-09 13:03:02 +00:00
hackerman-kl
d3a5b352b2
milan-avb: Make sure to get payload size not the packet size
2026-01-09 09:38:06 +01:00
Wim Taymans
bb564d5eb6
avb: fix compilation
2025-12-15 09:27:10 +01:00
hackerman-kl
6f1938d501
milan-avb: milan: adding set/get clock-source for a clock-domain
2025-12-15 08:18:30 +00:00
hackerman-kl
b22e442b10
module-avb: milan: adding get/set for configuration
2025-12-15 08:17:50 +00:00
hackerman-kl
ba8c6154a0
milan-avb: silent gcc warning as the variable will be used
2025-12-11 08:13:20 +01:00
Wim Taymans
548f26882f
avb: fix compilation
2025-12-10 11:33:06 +01:00
hackerman-kl
63abd4e71c
milan-avb: cmds-get-set-name: fix unused variable warning
2025-12-10 07:11:16 +01:00
hackerman-kl
c2ada3175e
module-avb: aecp-aem: SET/GET STREAM_FORMAT answer implemented.
...
In the current state the GET/SET stream format can handle the commands
response however, yet, it does not take care of checking that:
* A bound input stream cannot have it set, should reply accordingly
* A STREAMING_STREAM output stream cannot have it set, should reply
accordingly.
2025-12-10 07:07:24 +01:00
hackerman-kl
d9fa0629f6
milan-avb: milan: adding set/get name command handler
2025-12-09 19:40:59 +00:00
hackerman-kl
ea653a52e3
module-avb: milan: lock command handles unsolicited notifications
2025-12-07 16:08:36 +00:00