<feed xmlns='http://www.w3.org/2005/Atom'>
<title>vyos-1x.git/src/etc/netplug, 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>2026-03-19T21:37:45+00:00</updated>
<entry>
<title>vyos-netlinkd: T8047: replace netplugd</title>
<updated>2026-03-19T21:37:45+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2025-11-07T21:05:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=b84bdbf8dd25995aa564081632de6251ecf5ad4e'/>
<id>urn:sha1:b84bdbf8dd25995aa564081632de6251ecf5ad4e</id>
<content type='text'>
Implementing a daemon that listens for netlink messages in Python was discussed
for many years. This is a proof-of-concept implementation how we can listen for
netlink messages and process them in Python.

Python 3.10 minimum is required due to the use of case statements which mimics
C-style switch/case instructions.

Add example:

 set interfaces ethernet eth1 vif 21 address dhcp
 set interfaces ethernet eth1 vif 21 address dhcpv6
 commit

If network cable is unplugged:

  vyos-netlinkd[12681]: RTM_NEWLINK -&gt; eth3.10, state=DOWN, mac=00:50:56:b3:9d:8e
  vyos-netlinkd[12681]: Stopping dhclient@eth3.10.service...
  vyos-netlinkd[12681]: Stopping dhcp6c@eth3.10.service...

If cable is plugged back in:

  vyos-netlinkd[12681]: RTM_NEWLINK -&gt; eth3.10, state=DOWN, mac=00:50:56:b3:9d:8e
  vyos-netlinkd[12681]: RTM_NEWLINK -&gt; eth3.10, state=UP, mac=00:50:56:b3:9d:8e
  vyos-netlinkd[12681]: Restarting dhclient@eth3.10.service...
  vyos-netlinkd[12681]: Restarting dhcp6c@eth3.10.service...
</content>
</entry>
<entry>
<title>dhcp6: T7882: Restart dhcp6c if PD is defined</title>
<updated>2025-10-12T13:26:11+00:00</updated>
<author>
<name>sarthurdev</name>
<email>965089+sarthurdev@users.noreply.github.com</email>
</author>
<published>2025-10-12T13:26:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=963eab40998e3c0c990912a84e58181aa12b058a'/>
<id>urn:sha1:963eab40998e3c0c990912a84e58181aa12b058a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>T7591: remove copyright years from source files</title>
<updated>2025-06-28T21:16:52+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2025-06-28T18:51:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=1478516ae437f19ebeb7d6ff9b83dd74f8e76758'/>
<id>urn:sha1:1478516ae437f19ebeb7d6ff9b83dd74f8e76758</id>
<content type='text'>
The legal team says years are not necessary so we can go ahead with it, since
it will simplify backporting.

Automatically removed using: git ls-files | grep -v libvyosconfig | xargs sed -i -E \
's/^# Copyright (19|20)[0-9]{2}(-[0-9]{4})? VyOS maintainers.*/# Copyright VyOS maintainers and contributors &lt;maintainers@vyos.io&gt;/g'

In addition we will error-out during "make" if someone re-adds a legacy
copyright notice
</content>
</entry>
<entry>
<title>netplug: T7360: DHCPv6 address is not cleared when interface goes oper-down</title>
<updated>2025-04-14T19:26:47+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2025-04-14T19:26:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=588f2e02028bc3e0d1203c750c3cba56fb8291f2'/>
<id>urn:sha1:588f2e02028bc3e0d1203c750c3cba56fb8291f2</id>
<content type='text'>
When an interface goes down - e.g. cable unplugged - the DHCPv6 assigned IPv6
address is not removed from said interface. We should provide the same behavior
as with IPv4. IPv6 address should be removed and dhcpv6 client restarted once
the interface goes operational up again.
</content>
</entry>
<entry>
<title>netplug: T7353: bugfix DHCP client not stopped when interface goes down</title>
<updated>2025-04-14T18:24:56+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2025-04-13T05:25:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=97e74caa682298323165baa5055483405b740dac'/>
<id>urn:sha1:97e74caa682298323165baa5055483405b740dac</id>
<content type='text'>
The initial rewrite of vyos-netplug-dhcp-client by me tried to outsmart the
DHCP client implementation by re-using vyos.ifconfig.Interface(). This added
a regression where an interface loosing it's carrier no longer deconfigured
it's IP address. This was a change in behavior form VyOS 1.3.

In addition a bug is fixed as when a VLANs interface parent looses it's carrier
we now also stop the DHCP client process.

This script is now back to simply starting/stopping the DHCP client process.
</content>
</entry>
<entry>
<title>netplug: T7346: only call interface helpers if interface is not removed</title>
<updated>2025-04-10T15:09:04+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2025-04-10T15:06:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=2fcb128ea04e7e6c3f05b1b05bbc9fd3c541abb8'/>
<id>urn:sha1:2fcb128ea04e7e6c3f05b1b05bbc9fd3c541abb8</id>
<content type='text'>
When an interface is removed from the system also netplug is triggered. It
makes no sense to call vyos.ifconfig.Interface() and update it's configuration
when the interface was just recently removed.

This would in fact re-add an interface temporarily in it's worst case.
</content>
</entry>
<entry>
<title>T7182: use Config instead of ConfigTreeQuery for get_interface_dict</title>
<updated>2025-02-19T17:59:36+00:00</updated>
<author>
<name>John Estabrook</name>
<email>jestabro@vyos.io</email>
</author>
<published>2025-02-19T15:56:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=4a049c36bbc35564950b199daa11191d4093fb0d'/>
<id>urn:sha1:4a049c36bbc35564950b199daa11191d4093fb0d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>T7182: normalize formatting</title>
<updated>2025-02-19T17:59:36+00:00</updated>
<author>
<name>John Estabrook</name>
<email>jestabro@vyos.io</email>
</author>
<published>2025-02-19T15:55:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=1316b470886c77e52905cdeabdb5aedd761a1555'/>
<id>urn:sha1:1316b470886c77e52905cdeabdb5aedd761a1555</id>
<content type='text'>
</content>
</entry>
<entry>
<title>netplug: T5103: only execute helper scripts on physical interfaces</title>
<updated>2025-02-08T12:46:05+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2025-02-08T10:33:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=8faf67c1fab0eced732cf414d02a6c8d7affc626'/>
<id>urn:sha1:8faf67c1fab0eced732cf414d02a6c8d7affc626</id>
<content type='text'>
Helper scripts should only work on physical interfaces not on individual
sub-interfaces. Moving e.g. a VLAN interface in/out a VRF will also trigger
this script which should be prohibited - bail out early
</content>
</entry>
<entry>
<title>netplug: T5491: invoke DHCP helpers also on wifi interfaces</title>
<updated>2023-08-20T13:02:59+00:00</updated>
<author>
<name>Christian Breunig</name>
<email>christian@breunig.cc</email>
</author>
<published>2023-08-20T12:59:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.amelek.net/vyos/vyos-1x.git/commit/?id=35a46e4abfcece1beefb898ebd7fcb688fc55de5'/>
<id>urn:sha1:35a46e4abfcece1beefb898ebd7fcb688fc55de5</id>
<content type='text'>
</content>
</entry>
</feed>
