Commit graph

15264 commits

Author SHA1 Message Date
hackerman-kl
25949ca6e7 Merge branch '5248-avb-ptp-management' into 'master'
Introduce proper g(PTP) management into the module-avb

See merge request pipewire/pipewire!2811
2026-05-03 10:49:55 +02:00
hackerman-kl
7a826b1580 milan-avb: gptp: track request timing on CLOCK_MONOTONIC 2026-05-03 10:26:16 +02:00
hackerman-kl
4da6e39281 milan-avb: gptp: handle MANAGEMENT_ERROR_STATUS TLV as stale-data signal 2026-05-03 10:26:16 +02:00
hackerman-kl
09b3f0dc34 milan-avb: gptp: invalidate cached state when ptp4l stops responding 2026-05-03 10:26:16 +02: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
ff3367dc05 milan-avb: aecp-aem: emit unsolicited GET_AVB_INFO when gPTP changes 2026-05-03 10:26:16 +02:00
hackerman-kl
e02a4854de milan-avb: gptp: query PATH_TRACE_LIST and store Announce path trace 2026-05-03 10:26:16 +02:00
hackerman-kl
55bb0b6a6a milan-avb: gptp: query CURRENT_DATA_SET for canonical is_grandmaster check 2026-05-03 10:26:16 +02:00
hackerman-kl
c877ea4243 milan-avb: gptp: rate-limit management requests to 375 ms 2026-05-03 10:26:16 +02:00
hackerman-kl
fc08d2444a milan-avb: gptp: send PTP management with majorSdoId=1 for gPTP profile 2026-05-03 10:26:16 +02:00
hackerman-kl
1b81dbab85 milan-avb: adding the ptp4l command line information 2026-05-03 10:26:16 +02:00
hackerman-kl
4b44c15768 milan-avb; introducing gptp/as_path interface specific dirty flags 2026-05-03 10:26:16 +02:00
hackerman-kl
21dd14618c milan-avb: update banner 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
9f019a061d milan-avb: aecp-aem: source GET_AVB_INFO grandmaster from gptp 2026-05-03 10:26:16 +02:00
hackerman-kl
e9a1e50996 milan-avb: adp: refresh grandmaster_id from gptp on each advertise 2026-05-03 10:26:16 +02:00
hackerman-kl
231b0950c5 milan-avb: descriptors: derive AVB_INTERFACE clock_identity from entity_id 2026-05-03 10:26:16 +02:00
hackerman-kl
3f63b51fcc milan-avb: gptp: rework management I/O as non-blocking with sequence-id matching 2026-05-03 10:26:16 +02:00
hackerman-kl
0da747fd44 milan-avb: gptp: do not fail server creation on missing PTP socket 2026-05-03 10:26:16 +02:00
hackerman-kl
0b09fb2b1e milan-avb: gptp: initialise ret in the drain loop 2026-05-03 10:26:16 +02:00
hackerman-kl
21c4c59587 milan-avb: gptp: use entity_id for management source port id 2026-05-03 10:26:16 +02:00
hackerman-kl
1e9f89b638 milan-avb: gptp: emit gm_changed only when the GM actually changes 2026-05-03 10:26:16 +02:00
hackerman-kl
f5389a4225 milan-avb: gptp: drop unused avb_gptp_destroy wrapper 2026-05-03 10:26:16 +02:00
hackerman-kl
8c9e5f1974 milan-avb: gptp: use PTP_DEFAULT_LOG_MESSAGE_INTERVAL macro 2026-05-03 10:26:16 +02:00
hackerman-kl
e83bbfacf1 milan-avb: gptp: drop %m from incomplete request/response warnings 2026-05-03 10:26:16 +02:00
hackerman-kl
d5e4f11be7 milan-avb: gptp: fix log message for SO_PASSCRED setsockopt failure 2026-05-03 10:26:16 +02:00
hackerman-kl
51a997294e milan-avb: gptp: drop unused struct fields 2026-05-03 10:26:16 +02:00
hackerman-kl
7f687cae77 milan-avb: gptp: drop unused includes 2026-05-03 10:26:16 +02:00
hackerman-kl
b197ae79c5 milan-avb: gptp: align code style with the rest of module-avb 2026-05-03 10:26:16 +02:00
Nils Tonnaett
0345623e97 module-avb: remove redundant init_descriptors() call 2026-05-03 10:26:16 +02:00
Nils Tonnaett
37efd5c5f9 module-avb: emit gm_changed event 2026-05-03 10:26:16 +02:00
Nils Tonnaett
5fd9c1eaff module-avb: fail if ptp management socket can't be created 2026-05-03 10:26:16 +02:00
Nils Tonnaett
bf6fae7df9 module-avb: fail if ptp.management-socket not set 2026-05-03 10:26:16 +02:00
Nils Tonnaett
f4c26cd3ed module-avb: check that ptp management request is complete 2026-05-03 10:26:16 +02:00
Nils Tonnaett
f360af0889 module-avb: check return value of read when clearing ptp_fd input buffer 2026-05-03 09:49:22 +02:00
Nils Tonnaett
c8f2edd94e module-avb: check ioctl for success 2026-05-03 09:49:22 +02:00
Nils Tonnaett
07533eb590 module-avb: check that PTP management response is complete 2026-05-03 09:49:22 +02:00
Nils Tonnaett
6c43bdfa85 module-avb: htobe16/be16toh to htons/ntohs 2026-05-03 09:49:22 +02:00
Nils Tonnaett
16189ae167 module-avb: add specs comments for PTP management message format 2026-05-03 09:49:22 +02:00
Nils Tonnaett
fc6f2e33e2 module-avb: close ptp_fd when destroyed 2026-05-03 09:49:22 +02:00
Nils Tonnaett
f752653814 module-avb: free gptp->ptp_mgmt_socket_path 2026-05-03 09:49:22 +02:00
Nils Tonnaett
54a9495715 module-avb: check ptp management socket periodically 2026-05-03 09:49:22 +02:00
Nils Tonnaett
4bc365cbb5 module-avb: add avb interface descriptor defines 2026-05-03 09:49:22 +02:00
Wim Taymans
f29d7875cf connection: reject too large messages
Instead of silently truncating the message size in the header, simply
reject the complete message.
2026-05-01 13:04:02 +02:00
Wim Taymans
ceb80723a9 modules: unset buffer and size after alloc failure
Set the buffer_data to NULL and the size to 0 after we free the
buffer in realloc failure to avoid problems later.
2026-05-01 13:02:00 +02:00
Wim Taymans
a4fb06073c modules: protect against invalid input and 0 division
Don't crash when the AEC reported latency is invalid.

Check that the parsed values make sense and avoid division by 0.
2026-05-01 12:42:53 +02:00
Wim Taymans
6f6b58785e modules: handle allocation errors 2026-05-01 12:29:54 +02:00
Wim Taymans
a55546c9df filter-chain: limit the number of graph in/out
There is no limit on the number of inputs/outputs of a graph but the
filter-chain assumes it is at most 128 and also that there are at most
128 buffer datas.

Increase the limit (1024) and clamp and log an error when the
filter-graph has more channels. Also clamp the buffer datas so that we
don't overflow the stack allocated buffers.
2026-05-01 12:29:12 +02:00
Wim Taymans
6cc92c0e2b security: add missing NULL checks and fix error handling in modules
module-access: add NULL check after pw_properties_new for
socket_access.

module-pulse-tunnel: add NULL check after 4MB calloc for ring
buffer.

module-rt: add NULL check after calloc in thread create.

module-rtp-session: add goto error after failed
pw_net_parse_address instead of falling through.

module-snapcast-discover: fix missing null-termination on
network-received data before logging it as a string.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 18:38:32 +02:00
Wim Taymans
47ca937905 fix capture rate assignment using logical NOT instead of copy
Three modules had "impl->capture_info.rate = !impl->playback_info.rate"
which evaluates to 0 (logical NOT of a non-zero rate) instead of
copying the playback rate. This is a copy-paste typo from the line
above which correctly uses "= impl->capture_info.rate".

Affects module-filter-chain, module-loopback, module-example-filter.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-30 18:38:26 +02:00