Yangerd - #1536
Draft
mattiaswal wants to merge 73 commits into
Draft
Conversation
mattiaswal
force-pushed
the
yangerd
branch
3 times, most recently
from
June 19, 2026 09:38
3ec2747 to
71d50ea
Compare
Handle this.
This since NTP status is polled in yangerd.
Slightly slower to detect changes
This is to force yangerd to repoll polled things
FRR can sometimes be pretty slow to actually install the route in the kernel. Increase the timeout of must_reach.
Instead of relying of the runtime xpath, which can be just /system-state for example, resulting on no yangerd match.
mattiaswal
force-pushed
the
yangerd
branch
2 times, most recently
from
August 14, 2026 08:03
baea038 to
646aa70
Compare
Int => int64
RAUC downloads the upgrade bundle to /tmp (tmpfs) before installing. With a ~175 MB bundle, a 384 MB DUT runs out of memory mid-upgrade and the OOM killer takes out random daemons. Bump to 512 MB. Signed-off-by: Mattias Walström <lazzer@gmail.com>
Talk chronyd's native monitoring protocol over its Unix command
socket instead of forking chronyc four times per poll and parsing CSV.
Typed replies via github.com/facebook/time/ntp/chrony. The Unix
socket, not UDP, is required for serverstats (PERMIT_AUTH in chronyd).
Also fixes three bugs in the CSV parsing:
- packet-sent/packet-sent-fail actually reported chrony's
authenticated and interleaved packet counters; chronyd does not
count sent packets, so drop them
- clock-refid truncated the sync source address to four characters
("192."); now the full IPv4 address, the numeric refid for IPv6
(as a JSON number, the uint32 union member libyang accepts), or
the pseudo-IP for non-printable refids like the local reference
- a stopped chronyd could leave a phantom {"port": ...} subtree
from the ss listening-port probe
Signed-off-by: Mattias Walström <lazzer@gmail.com>
Replace the yanger pmc-based collector with a native monitor talking the PTP management protocol on each ptp4l instance's Unix socket. Reactive rather than polled: SUBSCRIBE_EVENTS_NP makes ptp4l push port state changes, per-sync-cycle time status, and parent data set changes; the near-static data sets refresh on a slow timer that also renews the subscription. Queries are served from the cached tree, no forking pmc. Management requests carry the instance's transportSpecific nibble; without it ptp4l silently drops them on gPTP (802.1AS) instances. Signed-off-by: Mattias Walström <lazzer@gmail.com>
Dynamic entries were baked into the generated ipset XML to survive the firewalld reload triggered by configuration changes. But the reload is asynchronous to the add/remove action handlers: an entry removed while a reload was in flight came back when the reload restored the XML, and could then never be removed again -- the shadow file no longer listed it, so the remove action rejected it, and firewalld refused re-adding. Generate the XML with static entries only and have the firewalld reload hook re-apply dynamic entries from the shadow files once the reload has completed. The shadow files are updated synchronously by the action handlers, so a remove racing the reload stays removed and an add racing it is re-applied. Never seen on main only because operational reads via yanger were slow enough to keep clients out of the reload window; with yangerd the firewall/address-set regression test hit it every run. Signed-off-by: Mattias Walström <lazzer@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Checklist
Tick relevant boxes, this PR is-a or has-a: