<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/conf_mode/interfaces-pseudo-ethernet.py, branch feature/T9082-codeql-cpp</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=feature%2FT9082-codeql-cpp</id>
<link rel='self' href='https://git.amelek.net/vyos/vyos-1x.git/atom?h=feature%2FT9082-codeql-cpp'/>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/'/>
<updated>2023-12-31T22:49:48+00:00</updated>
<entry>
<title>T5474: establish common file name pattern for XML conf mode commands</title>
<updated>2023-12-31T22:49:48+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2023-12-30T22:25:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=4ef110fd2c501b718344c72d495ad7e16d2bd465'/>
<id>urn:sha1:4ef110fd2c501b718344c72d495ad7e16d2bd465</id>
<content type='text'>
We will use _ as CLI level divider. The XML definition filename and also
the Python helper should match the CLI node.

Example:
set interfaces ethernet -&gt; interfaces_ethernet.xml.in
set interfaces bond -&gt; interfaces_bond.xml.in
set service dhcp-server -&gt; service_dhcp-server-xml.in
</content>
</entry>
<entry>
<title>pseudo-ethernet: T4391: use is_node_changed() over error prone leaf_node_changed()</title>
<updated>2022-12-30T08:49:03+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2022-12-30T08:48:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=3abec988c44e8e211b91caf504bb6a756668791a'/>
<id>urn:sha1:3abec988c44e8e211b91caf504bb6a756668791a</id>
<content type='text'>
We only need to use leaf_node_changed() if we are interested in the detailed
change to a CLI node (what was the previous content). If we are only interested
in if a node changed "at all" is_node_changed() should be used.
</content>
</entry>
<entry>
<title>macvlan: T4663: Fix update mode for pethX interface</title>
<updated>2022-09-01T13:26:56+00:00</updated>
<author>
<name>Viacheslav Hletenko</name>
<email>v.gletenko@vyos.io</email>
</author>
<published>2022-09-01T11:12:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=af646641d306229a84d12c41f9679b37abe286a0'/>
<id>urn:sha1:af646641d306229a84d12c41f9679b37abe286a0</id>
<content type='text'>
Fix the issue when configured pseudo-ethernet interface cannot
change self mode
</content>
</entry>
<entry>
<title>T4630: can not use same source-interface for macsec and pseudo-ethernet</title>
<updated>2022-08-24T19:44:59+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2022-08-24T19:43:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=eb4a7ee3afc0765671ce0fa379ab5e3518e9e49e'/>
<id>urn:sha1:eb4a7ee3afc0765671ce0fa379ab5e3518e9e49e</id>
<content type='text'>
A macsec interface requires a dedicated source interface, it can not be
shared with another macsec or a pseudo-ethernet interface.

set interfaces macsec macsec10 address '192.168.2.1/30'
set interfaces macsec macsec10 security cipher 'gcm-aes-256'
set interfaces macsec macsec10 security encrypt
set interfaces macsec macsec10 security mka cak '232e44b7fda6f8e2d88a07bf78a7aff4232e44b7fda6f8e2d88a07bf78a7aff4'
set interfaces macsec macsec10 security mka ckn '09924585a6f3010208cf5222ef24c821405b0e34f4b4f63b1f0ced474b9bb6e6'
set interfaces macsec macsec10 source-interface 'eth1'
commit

set interfaces pseudo-ethernet peth0 source-interface eth1
commit

Reuslts in

FileNotFoundError: [Errno 2] failed to run command: ip link add peth0 link eth1 type macvlan mode private
returned:
exit code: 2

noteworthy:
cmd 'ip link add peth0 link eth1 type macvlan mode private'
returned (out):

returned (err):
RTNETLINK answers: Device or resource busy

[[interfaces pseudo-ethernet peth0]] failed
Commit failed
</content>
</entry>
<entry>
<title>interfaces: T4525: interfaces can not be member of a bridge/bond and a VRF</title>
<updated>2022-07-15T05:10:29+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2022-07-14T19:48:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=81e0f4a8dece85da7169ba05448e870206aaf57b'/>
<id>urn:sha1:81e0f4a8dece85da7169ba05448e870206aaf57b</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vyos.configdict: T4391: enable get_interface_dict() ti be used with ConfigTreeQuery()</title>
<updated>2022-04-25T18:30:26+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2022-04-25T18:30:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=85d6c8f7c62f7a52fbae5d0eaddd1f8803bd8014'/>
<id>urn:sha1:85d6c8f7c62f7a52fbae5d0eaddd1f8803bd8014</id>
<content type='text'>
When VyOS is booting and an interface is brought up (PPPoE) which requires a
user callback script that is executed asynchronously when the interface is up
we can not use Config(). The problem is, Config() is not available when
the system starts and the initial commit is still processed.

We need to move to ConfigTreeQuery() which was build for this exact same
purpose. TO reduce side effects and also dependencies on the entire
vyos.configdict library the set_level()/get_level() calls got eliminated
from within the library. All calls to functions like:

* get_removed_vlans()
* is_node_changed()
* leaf_node_changed()
* is_mirror_intf()
* ...

Now require that the full config path to the node is passed.
</content>
</entry>
<entry>
<title>qos: T4284: support mirror and redirect on all interface types</title>
<updated>2022-04-07T07:44:35+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2022-03-23T09:07:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=37c6d9fae5172b0342f94212e6483b3aa8fcd673'/>
<id>urn:sha1:37c6d9fae5172b0342f94212e6483b3aa8fcd673</id>
<content type='text'>
</content>
</entry>
<entry>
<title>qos: T4284: initial XML interface definitions for rewrite</title>
<updated>2022-03-21T20:41:41+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2022-03-21T20:41:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=3584691b35f35e40a1bfc22c34da031141fd0dfa'/>
<id>urn:sha1:3584691b35f35e40a1bfc22c34da031141fd0dfa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>pseudo-ethernet: T3575: verify parent interface MTU</title>
<updated>2021-05-24T08:26:11+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2021-05-24T08:26:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=38b3dff1ebdf8c26a28d0befa6dcf0b4f51f21be'/>
<id>urn:sha1:38b3dff1ebdf8c26a28d0befa6dcf0b4f51f21be</id>
<content type='text'>
</content>
</entry>
<entry>
<title>vyos.ifconfig: T1579: remove calls to vyos.ifconfig.Interface.get_config()</title>
<updated>2021-02-27T23:54:37+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2021-02-26T18:10:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=e5b335830efe21f560383f4a2003450b42923e63'/>
<id>urn:sha1:e5b335830efe21f560383f4a2003450b42923e63</id>
<content type='text'>
Interface.get_config() was always a pure helper which exposed a "per interface
type" dictionary which was then fed by the caller to create interfaces by
iproute2 which required additional options during creation time.

Such interfaces had been:
 * tunnel
 * vxlan
 * geneve
 * macsec
 * wifi
 * macvlan / pseudo-ethernet

The code was always duplicated to convert from the VyOS CLI based get_config_dict()
to a dict which can be used to feed iproute2.

This path has been removed and we now always feed in the entire dictionary
retrieved by get_config_dict() or in the interfaces case, it's high-level wrapper
get_interface_dict() to the interface we wan't to create.

This also adds the - personally long awaited - possibility to get rid of the
derived tunnel classes for e.g. GRE, IPIP, IPIP6 and so on.
</content>
</entry>
</feed>
