<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/conf_mode/vpp_interfaces_loopback.py, branch nos-task-id</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=nos-task-id</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-1x.git/atom?h=nos-task-id'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/'/>
<updated>2026-07-29T10:52:38+00:00</updated>
<entry>
<title>vpp: T9139: Check interface not referenced by a feature before removal</title>
<updated>2026-07-29T10:52:38+00:00</updated>
<author>
<name>Nataliia Solomko</name>
<email>natalirs1985@gmail.com</email>
</author>
<published>2026-07-29T10:17:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=390e93138b32c54c6a98b98b22351052bc8c206e'/>
<id>urn:sha1:390e93138b32c54c6a98b98b22351052bc8c206e</id>
<content type='text'>
Reject deletion of a gre, ipip, vxlan or loopback interface that is still
used by a feature.
</content>
</entry>
<entry>
<title>vpp: T8367: Fix identical default MAC on bridged loopback interfaces</title>
<updated>2026-07-20T09:02:54+00:00</updated>
<author>
<name>Nataliia Solomko</name>
<email>natalirs1985@gmail.com</email>
</author>
<published>2026-07-16T12:16:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=e72de7eb3e4a6ef67a6836367f43ef363bf77e40'/>
<id>urn:sha1:e72de7eb3e4a6ef67a6836367f43ef363bf77e40</id>
<content type='text'>
VPP assigns loopback interfaces a default MAC address derived only from
the interface instance number (de:ad:00:00:00:&lt;instance&gt;), with no
host-specific entropy. Two independent VPP nodes configuring the same
loopback instance (e.g. as a bridge BVI over VXLAN) therefore end up with
an identical MAC address.
When that MAC arrives from a peer over the shared L2 segment, VPP's L2
learning logic rejects it as a `mac move violation` - it's statically
pinned to the local BVI and cannot legitimately appear on another port.
This silently drops ARP traffic between the loopbacks while ordinary
bridged client traffic (unique MACs) is unaffected, breaking
loopback-to-loopback connectivity.
Add a mac-address option to the VPP loopback interface, and fall back to
a deterministic, host-unique MAC (derived from host UUID/hostname, same
scheme already used for container interfaces) whenever none is
configured, so the collision can no longer occur by default.
Also fix a related bug found while reproducing the above: a loopback is
fully deleted and recreated in VPP on every apply, receiving a new
`sw_if_index` each time. The loopback conf_mode script never registered
the bridge it's a BVI member of as a dependent, so the bridge kept its
L2 membership bound to the stale, deleted index instead of reattaching
the current one. Register the bridge dependency and reuse the existing
`verify_vpp_remove_bridge_interface()` check to block deleting a
loopback still in use as a BVI.
</content>
</entry>
<entry>
<title>vpp: T8324: Migrate loopback interface to 'interfaces vpp loopback'</title>
<updated>2026-03-02T14:15:30+00:00</updated>
<author>
<name>Nataliia Solomko</name>
<email>natalirs1985@gmail.com</email>
</author>
<published>2026-02-27T10:40:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=61d607295fa826e707b82432c46668a2fb94ab22'/>
<id>urn:sha1:61d607295fa826e707b82432c46668a2fb94ab22</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vpp: T8254: Move 'nat44' and 'settings nat44' sections to 'nat nat44'</title>
<updated>2026-02-13T18:20:31+00:00</updated>
<author>
<name>Nataliia Solomko</name>
<email>natalirs1985@gmail.com</email>
</author>
<published>2026-02-13T10:29:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=9bfe2749a1fa41a4c77a3364851ac1fbefbf3ef3'/>
<id>urn:sha1:9bfe2749a1fa41a4c77a3364851ac1fbefbf3ef3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>T7697: Remove year from copyright</title>
<updated>2025-08-07T15:43:25+00:00</updated>
<author>
<name>Viacheslav</name>
<email>v.gletenko@vyos.io</email>
</author>
<published>2025-08-07T15:43:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=6801f0ef7365556d1c8eb60aeed01789a7620cb7'/>
<id>urn:sha1:6801f0ef7365556d1c8eb60aeed01789a7620cb7</id>
<content type='text'>
</content>
</entry>
<entry>
<title>T7488: Make VPP restartable</title>
<updated>2025-05-28T11:48:07+00:00</updated>
<author>
<name>Nataliia Solomko</name>
<email>natalirs1985@gmail.com</email>
</author>
<published>2025-05-27T11:27:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=31beaf550786502f5b62034c6e4b2e0e52508f8c'/>
<id>urn:sha1:31beaf550786502f5b62034c6e4b2e0e52508f8c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>T7419: VPP ACL implementation (#31)</title>
<updated>2025-05-13T14:33:35+00:00</updated>
<author>
<name>Nataliia S.</name>
<email>81954790+natali-rs1985@users.noreply.github.com</email>
</author>
<published>2025-05-13T14:33:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=151afffe15ce89755f3c3f81a9d2c647e487f647'/>
<id>urn:sha1:151afffe15ce89755f3c3f81a9d2c647e487f647</id>
<content type='text'>
CLI:
```
set vpp acl ip tag-name &lt;tag-name&gt; rule &lt;nn&gt; action &lt;permit|deny|permit-reflect&gt;
set vpp acl ip tag-name &lt;tag-name&gt; rule &lt;nn&gt; source prefix &lt;prefix&gt;
set vpp acl ip tag-name &lt;tag-name&gt; rule &lt;nn&gt; source port &lt;port|range&gt;
set vpp acl ip tag-name &lt;tag-name&gt; rule &lt;nn&gt; destination prefix &lt;prefix&gt;
set vpp acl ip tag-name &lt;tag-name&gt; rule &lt;nn&gt; destination port &lt;port&gt;
set vpp acl ip tag-name &lt;tag-name&gt; rule &lt;nn&gt; protocol &lt;protocol&gt;

set vpp acl ip tag-name &lt;tag-name&gt; rule &lt;nn&gt; tcp-flags &lt;fin|syn|rst|psh|ack|urg|ecn|cwr&gt;
set vpp acl ip tag-name &lt;tag-name&gt; rule &lt;nn&gt; tcp-flags not &lt;fin|syn|rst|psh|ack|urg|ecn|cwr&gt;

set vpp acl ip interface &lt;interface_name&gt; input acl-tag &lt;n&gt; tag-name &lt;tag-name&gt;
set vpp acl ip interface &lt;interface_name&gt; output acl-tag &lt;n&gt; tag-name &lt;tag-name&gt;

set vpp acl macip tag-name &lt;tag-name&gt; rule &lt;nn&gt; prefix &lt;prefix&gt;
set vpp acl macip tag-name &lt;tag-name&gt; rule &lt;nn&gt; mac-address &lt;mac&gt;
set vpp acl macip tag-name &lt;tag-name&gt; rule &lt;nn&gt; mac-mask &lt;mac-mask&gt;
set vpp acl macip tag-name &lt;tag-name&gt; rule &lt;nn&gt; action &lt;permit|deny&gt;

set vpp acl macip interface &lt;interface_name&gt; tag-name &lt;tag-name&gt;
```
OP mode
```
show vpp acl ip tag-name &lt;tag_name&gt;
show vpp acl ip interface

show vpp acl macip tag-name &lt;tag_name&gt;
show vpp acl macip interface
```</content>
</entry>
<entry>
<title>Revert "warning: introduce a delay between add() and kernel_add()"</title>
<updated>2025-01-29T13:31:10+00:00</updated>
<author>
<name>Viacheslav Hletenko</name>
<email>v.gletenko@vyos.io</email>
</author>
<published>2025-01-29T13:31:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=f5aaef311484f90d87f46d5a5739897e560ceb40'/>
<id>urn:sha1:f5aaef311484f90d87f46d5a5739897e560ceb40</id>
<content type='text'>
This reverts commit 405d3ee7ac909bbf458f522e6539a1f4eacdf7e6.
</content>
</entry>
<entry>
<title>Use common class for none ethernet interfaces state</title>
<updated>2025-01-27T19:23:45+00:00</updated>
<author>
<name>Viacheslav Hletenko</name>
<email>v.gletenko@vyos.io</email>
</author>
<published>2025-01-27T18:01:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=dfda2c7f305df94690cc4538a74ab213d25c579c'/>
<id>urn:sha1:dfda2c7f305df94690cc4538a74ab213d25c579c</id>
<content type='text'>
</content>
</entry>
<entry>
<title>warning: introduce a delay between add() and kernel_add()</title>
<updated>2025-01-15T09:50:49+00:00</updated>
<author>
<name>Viacheslav Hletenko</name>
<email>v.gletenko@vyos.io</email>
</author>
<published>2025-01-15T09:50:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=405d3ee7ac909bbf458f522e6539a1f4eacdf7e6'/>
<id>urn:sha1:405d3ee7ac909bbf458f522e6539a1f4eacdf7e6</id>
<content type='text'>
Introduce a delay to address instability in the VPP API, which may
fail to create the LCP or establish a connection.
This should be reviewed and resolved in future releases.

This fixes confgurations with included kernel-itnerface (LCP)
And all smoketests

Example:

  set interfaces ethernet eth1 address '192.0.2.1/30'
  set vpp settings interface eth1 driver 'dpdk'
  set vpp interfaces vxlan vxlan10 remote '192.0.2.2'
  set vpp interfaces vxlan vxlan10 source-address '192.0.2.1'
  set vpp interfaces vxlan vxlan10 vni '10'
  set vpp interfaces vxlan vxlan10 kernel-interface 'vpptap10'

Without this delay we get:

vyos@r14# commit
[ vpp interfaces vxlan vxlan10 ]
Traceback (most recent call last):
  File "/usr/libexec/vyos/services/vyos-configd", line 139, in run_script
    script.apply(c)
  File "/usr/libexec/vyos//conf_mode/vpp_interfaces_vxlan.py", line 174, in apply
    i.kernel_add()
  File "/usr/lib/python3/dist-packages/vyos/vpp/interface/vxlan.py", line 85, in kernel_add
    self.vpp.lcp_pair_add(self.ifname, self.kernel_interface)
  File "/usr/lib/python3/dist-packages/vyos/vpp/control_vpp.py", line 79, in check_retval_wrapper
    return_value = decorated_func(cls, *args, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/vyos/vpp/control_vpp.py", line 58, in api_safe_wrapper
    return decorated_func(cls, *args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/vyos/vpp/control_vpp.py", line 188, in lcp_pair_add
    return self.__vpp_api_client.api.lcp_itf_pair_add_del_v2(**api_call_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/vpp_papi/vpp_papi.py", line 129, in __call__
    return self._func(**kwargs)
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/vpp_papi/vpp_papi.py", line 564, in f
    return self._call_vpp(i, msg, multipart, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/vpp_papi/vpp_papi.py", line 853, in _call_vpp
    raise VPPIOError(2, "VPP API client: read failed")
vpp_papi.vpp_papi.VPPIOError: [Errno 2] VPP API client: read failed
</content>
</entry>
</feed>
