<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/helpers, branch rolling</title>
<subtitle>VyOS command definitions, scripts, and utilities (mirror of https://github.com/vyos/vyos-1x.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-1x.git/atom?h=rolling'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/'/>
<updated>2026-10-15T15:32:02+00:00</updated>
<entry>
<title>Merge pull request #5551 from c-po/T9454-frr-render-after-commit</title>
<updated>2026-10-15T15:32:02+00:00</updated>
<author>
<name>John Estabrook</name>
<email>jestabro@vyos.io</email>
</author>
<published>2026-10-15T15:32:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=51ce16fd1a3ef130be1da3fc5cfad1456aa7b1a1'/>
<id>urn:sha1:51ce16fd1a3ef130be1da3fc5cfad1456aa7b1a1</id>
<content type='text'>
frrender: T9454: render FRR after a DHCP lease only once the commit completed</content>
</entry>
<entry>
<title>Merge pull request #5341 from BradKollmyer/T-stuck-unicast-renew</title>
<updated>2026-10-15T12:55:05+00:00</updated>
<author>
<name>Viacheslav Hletenko</name>
<email>v.gletenko@vyos.io</email>
</author>
<published>2026-10-15T12:55:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=a06aab8262d6ef3fba6d4f73b699a46500546a1a'/>
<id>urn:sha1:a06aab8262d6ef3fba6d4f73b699a46500546a1a</id>
<content type='text'>
dhcp: T9108: restart dhclient when unicast RENEW is overdue</content>
</entry>
<entry>
<title>frrender: T9454: render FRR after a DHCP lease only once the commit completed</title>
<updated>2026-10-10T20:10:32+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-10-10T20:10:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=1748e1eff7db459bfcaa69b28862dd2740fe1745'/>
<id>urn:sha1:1748e1eff7db459bfcaa69b28862dd2740fe1745</id>
<content type='text'>
A lease event during a commit rendered FRR from the active configuration, which
the commit has not replaced yet. When the lease arrived after the commit's own
FRR render but before the commit finished, the stale render was applied and
nothing corrected it: moving a DHCP interface into a VRF left the VRF without
its default route.

The lease hook now starts the render detached and the render waits for the
running commit to complete. Detaching is required, as a commit stopping the
DHCP client waits for the release hook. Waiting is opt-in, as the commit itself
uses the same helper when it cannot reach the configuration daemon.
</content>
</entry>
<entry>
<title>frrender: T9368: reconcile FRR after a DHCP lease without the commit socket</title>
<updated>2026-10-07T17:59:13+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-10-07T17:59:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=c8d75f88f078c8c2c2a1f6a9a62c937424279d4b'/>
<id>urn:sha1:c8d75f88f078c8c2c2a1f6a9a62c937424279d4b</id>
<content type='text'>
Reconciling the FRR configuration after a DHCP lease event was requested from
the configuration daemon over the socket the commit pipeline uses. The daemon
serves one client at a time and assumes it is the running commit, so
the request either landed in the middle of the handshake which hands over the
configuration, or kept the daemon busy past the 10ms a commit waits for it.

Either way the commit fell back to running the conf-mode scripts directly.
Those never render FRR, only the daemon does, so the commit succeeded while FRR
kept the configuration rendered before it, until the next lease event.

A lease event now renders FRR in its own process, and a commit which could not
use the daemon renders FRR itself instead of skipping the reload. Both take the
same lock. A commit post-hook would remove the second case, for a full render
on every commit.
</content>
</entry>
<entry>
<title>dhcp: T9108: use VyOS helpers in the stuck-RENEW watchdog</title>
<updated>2026-09-26T19:28:59+00:00</updated>
<author>
<name>Brad Kollmyer</name>
<email>bradk@vitalsoft.com</email>
</author>
<published>2026-09-26T19:28:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=9a47f2e11ab2821b4e3cb49079fbb9774b4486bb'/>
<id>urn:sha1:9a47f2e11ab2821b4e3cb49079fbb9774b4486bb</id>
<content type='text'>
is_systemd_service_active, directories['isc_dhclient_dir'], rc_cmd,
read_file/write_file for cooldown (skip restart if the marker cannot
be written). Drop unused rebind from the lease-time regex. Shorter
postinst enable/start for the timer.
</content>
</entry>
<entry>
<title>dhcp: T9108: record cooldown before restarting dhclient</title>
<updated>2026-09-26T19:28:14+00:00</updated>
<author>
<name>Brad Kollmyer</name>
<email>bradk@vitalsoft.com</email>
</author>
<published>2026-08-20T03:48:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=21371ea87e217489b4fe8c31b06923b2ee24d3ac'/>
<id>urn:sha1:21371ea87e217489b4fe8c31b06923b2ee24d3ac</id>
<content type='text'>
A successful restart followed by a failed state-file write left no
marker, so the next 5-minute tick restarted the same client again.
Write the cooldown first and skip the restart if it cannot be
recorded; unlink the marker if the restart itself fails.
</content>
</entry>
<entry>
<title>dhcp: T9108: ship lease-watch helper in the vyos-1x package</title>
<updated>2026-09-26T19:28:13+00:00</updated>
<author>
<name>Brad Kollmyer</name>
<email>bradk@vitalsoft.com</email>
</author>
<published>2026-08-20T03:27:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=cddbd50bb947c73407e56da6178397b1db86628e'/>
<id>urn:sha1:cddbd50bb947c73407e56da6178397b1db86628e</id>
<content type='text'>
debian/rules copies src/helpers/* into usr/libexec/vyos, but
debian/vyos-1x.install only shipped *.py and *.sh. The extensionless
watchdog was missing from images while its systemd unit and timer
were installed, so the timer failed with ENOENT.

Also drop the iface.endswith('v6') skip: VyOS IPv6 DHCP is dhcp6c,
not a dhclient_*v6.conf file.
</content>
</entry>
<entry>
<title>T9108: Update copyright</title>
<updated>2026-09-26T19:28:13+00:00</updated>
<author>
<name>Viacheslav Hletenko</name>
<email>seversss265@gmail.com</email>
</author>
<published>2026-08-13T14:11:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=ebb6bcd4815dbdec370c104e22671bee9e5c3a5b'/>
<id>urn:sha1:ebb6bcd4815dbdec370c104e22671bee9e5c3a5b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>dhcp: T9108: address CodeRabbit review on lease-watch</title>
<updated>2026-09-26T19:28:13+00:00</updated>
<author>
<name>Brad Kollmyer</name>
<email>bradk@vitalsoft.com</email>
</author>
<published>2026-07-21T18:52:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=83484c846fe9e57897a820bd11c6d80b1b48a620'/>
<id>urn:sha1:83484c846fe9e57897a820bd11c6d80b1b48a620</id>
<content type='text'>
- Parse ISC default lease civil times as UTC (not host local)
- Write cooldown state only after a successful systemctl restart
- postinst: log timer enable/start failures instead of silent || true
</content>
</entry>
<entry>
<title>dhcp: T9108: restart dhclient when unicast RENEW is overdue</title>
<updated>2026-09-26T19:28:13+00:00</updated>
<author>
<name>Brad Kollmyer</name>
<email>bradk@vitalsoft.com</email>
</author>
<published>2026-07-21T18:19:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=d69fcb435214b4525e4ca77e0380edbff4222749'/>
<id>urn:sha1:d69fcb435214b4525e4ca77e0380edbff4222749</id>
<content type='text'>
ISC dhclient can sit in unicast RENEW to a server that has lost the
session until the lease expires (hours), with the modem link still up.
That is distinct from T9085 (successful RENEW that does not reinstall a
missing default).

Add a lightweight oneshot helper and systemd timer (every 5m) that parses
each active interface ISC lease DB: if renew is more than 15 minutes in
the past while expire is still in the future, restart dhclient@iface
(30m cooldown). Enable the timer from the package postinst.
</content>
</entry>
</feed>
