The connection keep-alive probing is configured incorrectly on the server side (stream created as a result of an accept() call). The code to set or unset the probe interval relies on stream_or_pstream_needs_probes() which in turn calls stream_lookup_class(). That function is broken to start off with - it returns a mix of boolean and integer. It also fails to match streams created out of accept which have names like unix#9. That results in them erroneously being flagged as in need of keep-alives even if they do not need to. If there is an existing stream (as is always the case when coming out of accept) it is possible to access the value of the boolean needs_probes directly from the stream class structure, there is no need to jump through hoops to try to figure it out from the name.
I have a fix for this, ETA for upstream submission - before Monday 1st of June 17:00 BST. A.
Patch upstream, fix on top of master can be picked up from here: https://github.com/kot-begemot-uk/ovs/commit/0e533eeacaea3e2f8d662940a250e551dd515f13
Closing this issue since a newer one has been opened with the intent of getting the same functionality implemented, but via a different means (https://bugzilla.redhat.com/show_bug.cgi?id=2100497)