<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/services, 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-07-07T13:42:21+00:00</updated>
<entry>
<title>Merge pull request #5275 from BradKollmyer/remote-T8829-head-fallback</title>
<updated>2026-07-07T13:42:21+00:00</updated>
<author>
<name>John Estabrook</name>
<email>jestabro@vyos.io</email>
</author>
<published>2026-07-07T13:42:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=e3b38a56bd24407b1f03d6e833b3b5db94fe2443'/>
<id>urn:sha1:e3b38a56bd24407b1f03d6e833b3b5db94fe2443</id>
<content type='text'>
remote: T8829: fall back to GET when HEAD is not supported</content>
</entry>
<entry>
<title>ci: T8490: fix typos in comments, strings, and local identifiers</title>
<updated>2026-06-29T12:10:10+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-06-29T07:28:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=094928ba02bbabf3807ebe8f5ae77b957435d288'/>
<id>urn:sha1:094928ba02bbabf3807ebe8f5ae77b957435d288</id>
<content type='text'>
Reaches a clean typos baseline for the T8490 ruleset pilot. Categories:
- Comments/docs: recursivly, taret, passsed, characted, arhive, AtrributeError;
  "ned" -&gt; "new" (migration comments).
- Messages/strings: writeable -&gt; writable (x5); OCaml log "Commandis" -&gt; "Command is".
- Local variables (all refs in-function): commited, formating, presistent;
  inpt_range -&gt; input_range; tz_datas -&gt; tz_data_raw (avoids the tz_data collision).
- Self-contained renames (definition + all references in-file): formated_stats,
  _get_formatted_output_conections -&gt; ..._connections, expension_failure -&gt;
  expansion_failure (ping + traceroute), snmpd_restart_reqired -&gt; ..._required.

False positives are allowlisted centrally (vyos/.github, separate PR), NOT changed
here: mke2fs, Maya-calendar "Mak", RFC 4122 "IDentifier" (hostapd), and VPP's
"U-Forwrd" bridge-domain column header (op_mode/vpp.py + the VPP smoketest assert
the real upstream `vppctl` output). Verified: typos clean, py_compile of every
edited .py, zero remaining old-identifier references.

🤖 Generated by [robots](https://vyos.io)
</content>
</entry>
<entry>
<title>vyos-netlink: T7965: only re-apply QoS configuration to individual interface</title>
<updated>2026-06-22T19:33:50+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-06-20T10:37:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=50ffc690fdeaaa30a9f353bc76fe87d748cc2e58'/>
<id>urn:sha1:50ffc690fdeaaa30a9f353bc76fe87d748cc2e58</id>
<content type='text'>
The previous vyos-netlinkd implementation for QoS policy re-apply was very heavy.
It conducted a full CLI validation and re-apply on every interface. Instead we
do not only re-apply the QoS configuration to the interface which has had an
address change detected by vyos-netlinkd.

This can be tested by checking "tc qdisc show" before disconnecting a PPPoE
interface and during/after reconnect. There will be no qdisc until the dynamic
interface has received an IP address - then the qdisc will be re-applied.
</content>
</entry>
<entry>
<title>remote: T8829: fall back to GET when HEAD is not supported</title>
<updated>2026-06-21T22:42:29+00:00</updated>
<author>
<name>Brad Kollmyer</name>
<email>bradk@vitalsoft.com</email>
</author>
<published>2026-06-21T22:31:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=516eccd41b75bbfd237440d919ef5292215ba30d'/>
<id>urn:sha1:516eccd41b75bbfd237440d919ef5292215ba30d</id>
<content type='text'>
HttpC.download() always probed remote URLs with HEAD before GET to
discover redirects and Content-Length. Some APIs (e.g. AbuseIPDB)
reject HEAD with 405 Method Not Allowed, causing firewall remote-group
downloads to fail and leave empty cached list files.

Treat HEAD 405/501 as unsupported and proceed with GET using the
original URL. When HEAD does not provide Content-Length, read it from
the GET response headers instead. Validate available storage after
determining file size and before opening the destination file.

Log sanitized download errors in vyos-domain-resolver when a remote-
group list-file fetch fails. Add unit tests with mock servers that
return 405 or 501 on HEAD and 200 on GET.
</content>
</entry>
<entry>
<title>vyos-netlink: T7965: re-apply QoS configuration on dynamic interfaces</title>
<updated>2026-06-20T20:56:18+00:00</updated>
<author>
<name>opswill</name>
<email>will@nixops.org</email>
</author>
<published>2026-05-27T09:19:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=2c6c98060ec2af764d4802ec58969399854eb140'/>
<id>urn:sha1:2c6c98060ec2af764d4802ec58969399854eb140</id>
<content type='text'>
Re-apply QoS after dynamic interfaces get addresses after connect/disconnect.
When PPPoE interfaces re-connect we need to re-do QoS settings.
</content>
</entry>
<entry>
<title>firewall: T8991: Fix IndexError with domain resolver mishandling blank lines</title>
<updated>2026-06-17T08:31:08+00:00</updated>
<author>
<name>sarthurdev</name>
<email>965089+sarthurdev@users.noreply.github.com</email>
</author>
<published>2026-06-17T08:31:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=0802000d23b9b3b9d91953ba3e71a290a197a0b0'/>
<id>urn:sha1:0802000d23b9b3b9d91953ba3e71a290a197a0b0</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vyos-netlinkd: T8950: track per-interface operstate to suppress UP-to-UP DHCP restarts</title>
<updated>2026-06-03T17:19:54+00:00</updated>
<author>
<name>Robert Navarro</name>
<email>crshman@gmail.com</email>
</author>
<published>2026-05-31T20:34:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=3649dd09743e47700d36ecd25bffcd77dbb3cc3f'/>
<id>urn:sha1:3649dd09743e47700d36ecd25bffcd77dbb3cc3f</id>
<content type='text'>
_handle_dhcp_events() restarts dhclient/dhcp6c on every RTM_NEWLINK
that carries operstate=UP, regardless of whether the interface was
already UP.  Normal kernel events that re-notify UP without a preceding
DOWN (e.g. post-migration gratuitous-ARP, promiscuous-mode toggles)
trigger unnecessary DHCP restarts.  Each restart also creates a feedback
loop: dhclient-script runs "ip link set dev &lt;if&gt; up" during PREINIT,
which emits another RTM_NEWLINK(UP), which triggers another restart.
One seed event becomes 10+ restarts in 15 seconds.

Add a module-level dict tracking the last observed operstate per
interface.  Only proceed with the DHCP restart when the transition is
DOWN-to-UP or when no previous state is recorded (first boot / service
restart).  UP-to-UP re-notifications are suppressed with a LOG_DEBUG
message.

Validated on a production VyOS 2026.05.26-1327-rolling router: a
controlled KVM live migration after the patch produced zero DHCP
restarts (all UP-to-UP events suppressed), with no impact on normal
DOWN-to-UP DHCP recovery.
</content>
</entry>
<entry>
<title>T8502: add server support for config-sync excluded paths</title>
<updated>2026-05-28T13:31:26+00:00</updated>
<author>
<name>John Estabrook</name>
<email>jestabro@vyos.io</email>
</author>
<published>2026-05-04T19:34:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=9b6e4c75c8a362afa82c711a4254f38e8986662a'/>
<id>urn:sha1:9b6e4c75c8a362afa82c711a4254f38e8986662a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vyos-netlinkd: T8781: try IPRoute.bind() RTNL subscription first (#5207)</title>
<updated>2026-05-18T15:34:47+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-05-18T15:34:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=51ab39e51bb925307c0f9ad1d905d450ceecc0f5'/>
<id>urn:sha1:51ab39e51bb925307c0f9ad1d905d450ceecc0f5</id>
<content type='text'>
Not all pyroute2 versions which ship IPRoute() support subscribing to RTNL
multicast groups. If subscribing fails, fallback to all messages.</content>
</entry>
<entry>
<title>vyos-netlinkd: T8781: use faster commit_in_progress2 with order O(1)</title>
<updated>2026-05-15T17:46:50+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2026-05-15T17:44:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=abd22ba6c3852fbf1002204a416b9de83e405caa'/>
<id>urn:sha1:abd22ba6c3852fbf1002204a416b9de83e405caa</id>
<content type='text'>
Move to the re-implementation of the commit in progress check added in
commit 002d45b70efd ("vyos.commit: T8781: move from O(n) to O(1) for
commit_in_progress() checks").
</content>
</entry>
</feed>
