<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/conf_mode/interfaces-geneve.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>geneve: T4366: 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:44:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=b8899246cda23a999f35e1c102b30c841623e0ca'/>
<id>urn:sha1:b8899246cda23a999f35e1c102b30c841623e0ca</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>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>geneve: T4366: prevent interface re-creation on nasic parameter change</title>
<updated>2022-04-16T21:28:30+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2022-04-16T21:26:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=3cbe7878bcadc0f3ecbaeab46d745b5510c26b0d'/>
<id>urn:sha1:3cbe7878bcadc0f3ecbaeab46d745b5510c26b0d</id>
<content type='text'>
Changing the geneve interface description does destroy the interface on the
kernel level - this should be avoided as it's ... stupid!
</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>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>
<entry>
<title>ifconfig: mtu: disallow MTU &lt; 1280 bytes when IPv6 is enabled on the interface</title>
<updated>2020-09-26T10:00:06+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2020-09-26T10:00:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=5db3d63160670c796ed74a170862c367048d89bb'/>
<id>urn:sha1:5db3d63160670c796ed74a170862c367048d89bb</id>
<content type='text'>
Using an MTU less then the required 1280 bytes (as per RFC) on an interface
where IPv6 is not explicitly disabled by:

- set interfaces ethernet eth1 ipv6 address no-default-link-local
- not having any other IPv6 address configured

Will now trigger a commit error via verify() instead of raising
FileNotFoundError!
</content>
</entry>
<entry>
<title>ifconfig: T2653: remove duplicates of get_config()</title>
<updated>2020-09-20T13:18:50+00:00</updated>
<author>
<name>Christian Poessinger</name>
<email>christian@poessinger.com</email>
</author>
<published>2020-09-20T13:18:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=103e8404cdea70dad486940f209b9683f1c7b936'/>
<id>urn:sha1:103e8404cdea70dad486940f209b9683f1c7b936</id>
<content type='text'>
A lot of derived classes from Interface implemented their own get_config()
method which more or less was the same everywhere. We also hat different
qualifiers like @staticmethod or @classmethod.

This is now changed to only have the @classmethod in Interface base class which
will return the necessary dictionary keys for the required interfaces. This
change is a mid reduction in lines of code which is always a very nice thing!
</content>
</entry>
</feed>
