<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos.vyos.git/plugins/module_utils/network, branch test/lldp-interfaces-unit-tests</title>
<subtitle>Ansible Network Collection for VyOS (mirror of https://github.com/vyos/vyos.vyos.git)
</subtitle>
<id>https://git.amelek.net/vyos/vyos.vyos.git/atom?h=test%2Flldp-interfaces-unit-tests</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos.vyos.git/atom?h=test%2Flldp-interfaces-unit-tests'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/'/>
<updated>2026-06-30T11:18:50+00:00</updated>
<entry>
<title>T8522: fix parse_icmp_attr() split delimiter and UnboundLocalError (#464)</title>
<updated>2026-06-30T11:18:50+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-06-30T11:18:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=0e10d136ef280ca147b6f1e332072f6ba14c8844'/>
<id>urn:sha1:0e10d136ef280ca147b6f1e332072f6ba14c8844</id>
<content type='text'>
* Add easy-wins improvement spec for vyos.vyos collection

Covers five phases: formatting compliance, runtime.yml redirect fix,
deprecated feature cleanup, missing unit tests, and template deduplication.

Co-Authored-By: Claude Opus 4.6 (1M context) &lt;noreply@anthropic.com&gt;

* Add implementation plan for easy-wins improvements

15 tasks across 5 phases: formatting compliance, runtime.yml bugfix,
deprecated code cleanup, missing unit tests, template deduplication.

Co-Authored-By: Claude Opus 4.6 (1M context) &lt;noreply@anthropic.com&gt;

* Update spec and plan with architect review corrections

Key changes:
- Defer Phase 5 (template deduplication) to v7.0.0: route_maps
  are not identical, BGP dedup blocked by Python module-level
  scoping, OSPF has fundamentally different command paradigms
- Add .git-blame-ignore-revs step to Phase 1
- Add missing test cases: overridden/rendered for resource modules,
  aggregate/purge/with_address for vyos_vlan
- Fix incorrect claim that version.py LooseVersion is unused
- Add sequential merge requirement to preamble

Co-Authored-By: Claude Opus 4.6 (1M context) &lt;noreply@anthropic.com&gt;

* chore: add .worktrees/ and .claude/ to .gitignore

* T8522: fix parse_icmp_attr() split delimiter and UnboundLocalError

- Use val.split("/") instead of val.split(".") when parsing type/code pairs
- In the numeric-only branch, use int(val) instead of the undefined type_no variable
- Cast both type and code to int for consistent typing

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;

* T8522: remove unrelated planning docs and gitignore changes

These files were included from local main branch commits unrelated
to this bugfix. This commit removes them to keep the PR scoped.

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;

* T8522: add parsed test for legacy type/code ICMP format

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;

---------

Co-authored-by: Claude Opus 4.6 (1M context) &lt;noreply@anthropic.com&gt;
Co-authored-by: omnom62 &lt;75066712+omnom62@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>rm_templates: T8609: fix slow parse() from group-quantifier patterns (#470)</title>
<updated>2026-06-19T13:02:27+00:00</updated>
<author>
<name>Robert Navarro</name>
<email>crshman@gmail.com</email>
</author>
<published>2026-06-19T13:02:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=5b80cd0cbddd014e54b01e7fa1cd0c0777d94724'/>
<id>urn:sha1:5b80cd0cbddd014e54b01e7fa1cd0c0777d94724</id>
<content type='text'>
* rm_templates: T8609: fix slow parse() from group-quantifier patterns

Running an Ansible playbook that manages BGP route-maps on my VyOS 1.4
edge routers, the vyos.vyos.vyos_route_maps task (state=gathered or
state=merged) takes ~50 seconds per host, sometimes 100s+, against
devices with only a handful of route-maps configured.  The persistent
connection times out before the module finishes and the failure
surfaces as a misleading "socket path does not exist".

Three related quantifier shapes in nine rm_templates files cause O(2^n)
regex backtracking on inputs that share a parser's prefix but don't
match overall.  parse() time on a representative 12-line route-map
config drops from ~50s to &lt;1ms post-fix.

* Trailing form (188 sites): `(?P&lt;X&gt;\S+)\n  *$"""` -&gt; `(?P&lt;X&gt;\S+)\s*$"""`.
  Under re.VERBOSE the literal newline+indent between `\S+` and `*$`
  is stripped at compile time, so the source compiled to `(\S+)*$`
  with the `*` quantifying the named group.

* Mid-pattern `(group containing \S+)*` (22 sites in snmp_server.py
  with a couple in bgp_global*.py): e.g.
  `(?P&lt;protocol&gt;protocol\s\S+)*` -&gt; `(?P&lt;protocol&gt;protocol\s\S+)?`.
  Different position from the trailing form, but the same shape
  underneath (a group whose content includes \S+, quantified with
  `*`), so the same O(2^n) backtracking on prefix-sharing inputs.

* Mid-pattern `(literal-only group)*` (14 sites in snmp_server.py,
  bgp_address_family*.py, bgp_global*.py): e.g.
  `(?P&lt;as_set&gt;as-set)*` -&gt; `(?P&lt;as_set&gt;as-set)?`.  No \S+ inside the
  quantified group, so the backtracking exposure is much smaller.
  On the inputs these patterns actually receive (no device line
  carries duplicate flags) `*` and `?` accept identical input sets,
  so changing to `?` is behavior-preserving.

The first draft of this fix made set_comm_list_delete's
`(?P&lt;delete&gt;\S+)` group required.  The parser's setval emits `set
comm-list delete` with no token after `delete`, so the parser stopped
matching its own output (no existing fixture covered this case, which
is why the regression initially shipped).  CodeRabbit caught it
during review.  Replaced `delete(?P&lt;delete&gt;\S+)\s*$` with
`\s(?P&lt;delete&gt;delete)\s*$` so the named group captures the literal
word `delete`; the result template `{{True if delete is defined}}`
continues to evaluate True.

Affects: route_maps[/_14], bgp_global[/_14], bgp_address_family[/_14],
snmp_server, ospf_interfaces[/_14].

Adds tests/unit/modules/network/vyos/test_rm_templates_perf.py with
a 1-second budget against fixture inputs that have realistic-length
identifiers, plus a round-trip test asserting set_comm_list_delete
matches its own setval-generated line, plus a Bgp_address_familyTemplate14
budget test for symmetry with the other "hot" template families.

* Fix regex backtracking issues in parse() method

Fix slow parse() to prevent regex backtracking on prefix-sharing inputs across multiple files. Add unit test for the bugfixes.

* Refactor bug fixes for regex backtracking improvements

Updated bug fixes to include details on regex backtracking issues in multiple files.

* Fix typo in bugfixes section of changelog

* Update bugfixes for regex backtracking issues

* rm_templates: T8609: route_maps.py: fix remaining trailing `*$` patterns

Five sites in route_maps.py still had the `(?P&lt;name&gt;...)\n  *$` shape that collapses to `(?P&lt;name&gt;...)*$` under `re.VERBOSE`, parsers `sequence`, `on_match_next`, `set_atomic_aggregate`, `set_extcommunity_bandwidth_non_transitive`, and `match_community_exact_match`.  Collapsed each to `\s*$` on the same line as the named group, matching the rest of the PR.

* rm_templates: T8609: route_maps.py: split overlong getval to satisfy E501

Line 517 was 161 chars (`set_extcommunity_bandwidth_non_transitive` parser) and tripped pycodestyle's E501 sanity test in CI.  Split the regex source across two lines at the `\d+)` boundary; under `re.VERBOSE` the literal newline and indent between regex tokens are stripped at compile time, so the engine sees the same pattern.  `\s*$` stays on the same line as the closing capture group, so the group-quantifier shape this PR fixes elsewhere isn't reintroduced.

---------

Co-authored-by: omnom62 &lt;75066712+omnom62@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>T8515: remove pre-1.3 deprecated code artifacts from vyos_bgp_global (#461)</title>
<updated>2026-05-13T13:23:39+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-05-13T13:23:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=be77e3b4b870ae2fb8ec4a75794a960c422a8449'/>
<id>urn:sha1:be77e3b4b870ae2fb8ec4a75794a960c422a8449</id>
<content type='text'>
* T8515: remove commented-out pre-1.3 parameter artifacts from vyos_bgp_global docs

* T8515: remove stale vrf.old backup file

* T8515: add changelog fragment for deprecated code cleanup

* T8515: fix grammar in ebgp_multihop description

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;

---------

Co-authored-by: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;
Co-authored-by: omnom62 &lt;75066712+omnom62@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>T8512: fix isort import ordering violations (#454)</title>
<updated>2026-04-27T13:47:01+00:00</updated>
<author>
<name>Yuriy Andamasov</name>
<email>yuriy@vyos.io</email>
</author>
<published>2026-04-27T13:47:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=d3f981148e78c0dd31d35063f3407530278aa3a1'/>
<id>urn:sha1:d3f981148e78c0dd31d35063f3407530278aa3a1</id>
<content type='text'>
* T8512: fix isort import ordering violations

* T8512: add changelog fragment

Co-Authored-By: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;

---------

Co-authored-by: omnom62 &lt;75066712+omnom62@users.noreply.github.com&gt;
Co-authored-by: Claude Sonnet 4.6 &lt;noreply@anthropic.com&gt;</content>
</entry>
<entry>
<title>T8104: Add static routes multiple next-hop targets (#444)</title>
<updated>2026-03-08T10:53:15+00:00</updated>
<author>
<name>omnom62</name>
<email>75066712+omnom62@users.noreply.github.com</email>
</author>
<published>2026-03-08T10:53:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=ab0aa4bd1a16b044f061053aa78b0fa865312545'/>
<id>urn:sha1:ab0aa4bd1a16b044f061053aa78b0fa865312545</id>
<content type='text'>
* Mid fixes

* Ready for testing

* Fixing SR interface

* Fix is ready

* changelog

* Integration tests for static_routes interface next-hop v.1.4+ WIP

* branching 1.3- and 1.4+

* Integration tests for T8104 complete

* Comments are resolved

* Comments are resolved</content>
</entry>
<entry>
<title>T6836 VRF module (#408)</title>
<updated>2026-03-04T09:51:16+00:00</updated>
<author>
<name>omnom62</name>
<email>75066712+omnom62@users.noreply.github.com</email>
</author>
<published>2026-03-04T09:51:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=a8e5dac21090e9b0ddf876214a9a1522079ecde1'/>
<id>urn:sha1:a8e5dac21090e9b0ddf876214a9a1522079ecde1</id>
<content type='text'>
* t6836 vfr module init

* argspec facts module for VRF

* T6834 static_route module to support interface_route (#398)

* t6834 init

* facts fixes, WIP

* T6834 - facts updates

* static_routes 1.3- config, facts, args and sanit and unit tests

* changelog

* changelog updates

* static_routes 1.4+

* static_routes v1.4 unit tests

* comment removed

* T6829 (area interfaces in OSPFv3 1.3-1.5) re-init (#399)

* T6829 re-init

* re-init T6829 ospfv3 area interface for 1.3-

* changelog

* changelog fix

* Doc is updated

* adding 1.4+ support

* ospfv3 area interfaces for 1.4+

* fixed ospfv3 facts and added area interface unit test for 1.4

* ospfv3 clean-up

* doc updates

* Resolve merge conflicts

* vrf parsers set_table

* more vrf paresers added

* vrf facts main code

* vrf data structures

* simple vrf config push

* simple vrf config push

* some work on vrf

* basic facts done

* vrf instance parsers wif

* ongoing parser testing

* vrf dev work

* testing with paresers

* all basic settings

* merged for vrf

* more states for VRF

* vrf deleted, overriden

* overriden

* sanity

* rst for vrf

* changelog

* fix changelog

* doc fix

* vrf delete idempotent

* deleted and overridden for VFR

* overriden

* overriden vrf idempotency

* asdvanced vrf settings

* afi for VRF facts

* VRF AFI config

* VRF AFI tests

* vrf dev work

* afi dev work

* afi and deep_merge fixes for VRF

* afi basic provisioning

* changelog

* vrf sanity fixes

* VRF AFI protocols and route-maps

* vrf parsed, gathered, rendered fixes

* docstrings VRF

* docstrings VRF

* docstring VRF

* module doc update

* vrf module examples

* VRF doc examples

* linter

* VRF unit tests init

* VRF unit tests init

* VRF unit tests updates

* fixed VRF overridden and deleted unit test cases

* VRF integration tests init

* VRF int tests rtt, merged, replaced

* VRF int testt gathered, rendered

* VRF int tests deleted, rendered, overridden and empty_config

* linter

* VRF int test misc fixes

* VRF global idepmotency

* fixing py3.13 runner deps

* fixing lint

* fixing sanity

* reverting previous fixes

* VRF protocols load_module and provisioning flow

* fixes to bgp VRF protocol methods

* VRF protocol facts init

* VRF protocol load_module works

* reworked VRF load_module routine

* vrf protocl static fixed

* Fixed static and ospf VRF protocol provisioning

* Fixed static and ospf VRF protocol provisioning

* VRF doc update

* VRF docs update

* VRF doc updates

* unit tests for VRF protocols

* VRF BGP protcol sanity check

* VRF protocol fixed sanity checks (DOCUMENTATION)

* sanity and doc for VRF fixed

* VRF unit tests mock

* VRF protocol integration parsed, rtt and merged init

* VRF protocols - rendered, overridden

* VRF protocols replaced

* fix accidental changes to test_vyos_config.py

* PR description

* fix image

* README fix

* Fixing linter

* Mid-result UAT overriden VRF

* Mid-result for VRF UAT

* VRF uat

* VRF obsolete features removed</content>
</entry>
<entry>
<title>add commit-confirm options to vyos_config  (#229)</title>
<updated>2026-02-23T12:25:35+00:00</updated>
<author>
<name>lucaelin</name>
<email>git@luca.lsys.ac</email>
</author>
<published>2026-02-23T12:25:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=e539028c2f9d062e7684abda5dd32affd92e9f08'/>
<id>urn:sha1:e539028c2f9d062e7684abda5dd32affd92e9f08</id>
<content type='text'>
* added vyos_config confirm options

* fix: update commit comment to match main

* fix: documentation example for automatic confirm

* fix: add tests for commit confirm and confirm_timeout options

* fix: add config_confirm changelog fragment

* fix: lint missing diff parameter for edit_config

* fix: add commit confirm integration test

---------

Co-authored-by: omnom62 &lt;75066712+omnom62@users.noreply.github.com&gt;</content>
</entry>
<entry>
<title>T7933 bugfix - 'offload' action (#440)</title>
<updated>2025-11-28T16:56:51+00:00</updated>
<author>
<name>omnom62</name>
<email>75066712+omnom62@users.noreply.github.com</email>
</author>
<published>2025-11-28T16:56:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=d82dc3263a31f051fb3fc498f98567c448cbe7ed'/>
<id>urn:sha1:d82dc3263a31f051fb3fc498f98567c448cbe7ed</id>
<content type='text'>
* Init T7933 bugfix

* offload-target

* Argspsec fixed

* Documentation fixes

* fw_rules config fpor offload_target

* fact fixes

* offload unit test merge

* offload unit tests for v1.3- overriden, replaced

* Offload unit test v13 complete

* v14+ offload unit tests

* v1.4.+ unit tests for offload</content>
</entry>
<entry>
<title>T7621 vyos_firewall_global features (#432)</title>
<updated>2025-11-27T10:20:32+00:00</updated>
<author>
<name>omnom62</name>
<email>75066712+omnom62@users.noreply.github.com</email>
</author>
<published>2025-11-27T10:20:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=7157c6a195c3b1c6f013dab8fe322c6ace4e0c63'/>
<id>urn:sha1:7157c6a195c3b1c6f013dab8fe322c6ace4e0c63</id>
<content type='text'>
* t7621 vyos_firewall_global diff mode

* vyos_firewall_global integration test for diff

* enhanced integration tests with diff

* diff integration tests

* merged diff test

* 1.3- specific changes to integration tests

* data/config separated

---------

Co-authored-by: Gaige B Paulsen &lt;gaige@cluetrust.com&gt;</content>
</entry>
<entry>
<title>T6823: correctly set the IPv6 autoconf option (#433)</title>
<updated>2025-11-26T20:00:30+00:00</updated>
<author>
<name>omnom62</name>
<email>75066712+omnom62@users.noreply.github.com</email>
</author>
<published>2025-11-26T20:00:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos.vyos.git/commit/?id=85e132415cd7917c677d27b9085d17f50bc3da2e'/>
<id>urn:sha1:85e132415cd7917c677d27b9085d17f50bc3da2e</id>
<content type='text'>
* T6823 init fix

* slaac and integration tests

* reaplced integration test

* WIP integration tests

* changelog and tweaks

* rendered, gathered, parsed, integration tests for SLAAC

* l3_interfaces gathered, emty, deleted

* deleted integration test

* vif processing

* vif tests

* vir related integration test cases

* ignore ansible-bad-import-from

* ansible-bad-import-from ingore

* ignore ansible-bad-import-from for all

* test ansible-bad-import-from skip

* ingore file

* Fix bugs with configuration remove

* Delete testcase fixed

* SLAAC integration tests

* Sanity check fixes

* remove_config formatted

* l3 slaac eth0 removed from SIT

* Remove ignore 2.20

* ignore2.20 recovered

* Remove residue</content>
</entry>
</feed>
