<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/NetworkManager.git/src/devices/nm-device.c, branch main</title>
<subtitle>gitlab.freedesktop.org: NetworkManager/NetworkManager.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/'/>
<entry>
<title>all: move "src/" directory to "src/core/"</title>
<updated>2021-02-04T08:45:55+00:00</updated>
<author>
<name>Thomas Haller</name>
<email>thaller@redhat.com</email>
</author>
<published>2021-02-03T14:25:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=ac1a9e03e4d6674e1e60529b47b325a8f62e67b3'/>
<id>ac1a9e03e4d6674e1e60529b47b325a8f62e67b3</id>
<content type='text'>
Currently "src/" mostly contains the source code of the daemon.
I say mostly, because that is not true, there are also the device,
settings, wwan, ppp plugins, the initrd generator, the pppd and dhcp
helper, and probably more.

Also we have source code under libnm-core/, libnm/, clients/, and
shared/ directories. That is all confusing.

We should have one "src" directory, that contains subdirectories. Those
subdirectories should contain individual parts (libraries or
applications), that possibly have dependencies on other subdirectories.
There should be a flat hierarchy of directories under src/, which
contains individual modules.

As the name "src/" is already taken, that prevents any sensible
restructuring of the code.

As a first step, move "src/" to "src/core/". This gives space to
reorganize the code better by moving individual components into "src/".

For inspiration, look at systemd's "src/" directory.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/743
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently "src/" mostly contains the source code of the daemon.
I say mostly, because that is not true, there are also the device,
settings, wwan, ppp plugins, the initrd generator, the pppd and dhcp
helper, and probably more.

Also we have source code under libnm-core/, libnm/, clients/, and
shared/ directories. That is all confusing.

We should have one "src" directory, that contains subdirectories. Those
subdirectories should contain individual parts (libraries or
applications), that possibly have dependencies on other subdirectories.
There should be a flat hierarchy of directories under src/, which
contains individual modules.

As the name "src/" is already taken, that prevents any sensible
restructuring of the code.

As a first step, move "src/" to "src/core/". This gives space to
reorganize the code better by moving individual components into "src/".

For inspiration, look at systemd's "src/" directory.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/743
</pre>
</div>
</content>
</entry>
<entry>
<title>device: fix bond-slave creation race-condition</title>
<updated>2021-02-02T08:51:58+00:00</updated>
<author>
<name>Antonio Cardace</name>
<email>acardace@redhat.com</email>
</author>
<published>2021-01-19T18:06:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=136081957dfd7da799c351398bf14397a3d3e1a6'/>
<id>136081957dfd7da799c351398bf14397a3d3e1a6</id>
<content type='text'>
In some cases the enslavement event of a device gets
processed by nm-platform before the master NMDevice is
created, in such cases the enslavement information is simply
lost by NM, to prevent this let NMDevice connect to the
'device-ifindex-changed' signal to be notified of when its master
NMDevice appears so that eventually the NMDevices will be consistent
with the kernel network state.

https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In some cases the enslavement event of a device gets
processed by nm-platform before the master NMDevice is
created, in such cases the enslavement information is simply
lost by NM, to prevent this let NMDevice connect to the
'device-ifindex-changed' signal to be notified of when its master
NMDevice appears so that eventually the NMDevices will be consistent
with the kernel network state.

https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>core: add 'device-ifindex-changed' signal</title>
<updated>2021-02-02T08:51:58+00:00</updated>
<author>
<name>Antonio Cardace</name>
<email>acardace@redhat.com</email>
</author>
<published>2021-01-19T17:57:58+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=374cc9612686e36d58208aed8505846f3506d9d8'/>
<id>374cc9612686e36d58208aed8505846f3506d9d8</id>
<content type='text'>
NMManager now emits a 'device-ifindex-changed' whenever
a device ifindex gets changed.

https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
NMManager now emits a 'device-ifindex-changed' whenever
a device ifindex gets changed.

https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>device: add 'master_ifindex' field to NMDevice</title>
<updated>2021-02-02T08:51:58+00:00</updated>
<author>
<name>Antonio Cardace</name>
<email>acardace@redhat.com</email>
</author>
<published>2021-01-20T18:25:51+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=84dc705159bfba3d9676dfb727182c9ad99c7756'/>
<id>84dc705159bfba3d9676dfb727182c9ad99c7756</id>
<content type='text'>
https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>bond: release slaves prior to changing mode</title>
<updated>2021-02-02T08:51:57+00:00</updated>
<author>
<name>Antonio Cardace</name>
<email>acardace@redhat.com</email>
</author>
<published>2021-01-19T17:49:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=d2d74f99a90cdcab5e0bdd518bf3b076d2cf48fa'/>
<id>d2d74f99a90cdcab5e0bdd518bf3b076d2cf48fa</id>
<content type='text'>
Bonds need to release all enslaved devices when
the bond mode is to be changed.

Also release slaves when they're external interfaces as
it means the master it's now managed by NetworkManager.

https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bonds need to release all enslaved devices when
the bond mode is to be changed.

Also release slaves when they're external interfaces as
it means the master it's now managed by NetworkManager.

https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>device: take over unmanaged devices when explicitely deactivated</title>
<updated>2021-02-02T08:51:57+00:00</updated>
<author>
<name>Antonio Cardace</name>
<email>acardace@redhat.com</email>
</author>
<published>2021-01-19T17:42:41+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=a4d37612c84de0718fd9629e1a4d06277d149c5a'/>
<id>a4d37612c84de0718fd9629e1a4d06277d149c5a</id>
<content type='text'>
https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>device: make devices 'external' when going to 'unmanaged' state</title>
<updated>2021-02-02T08:51:57+00:00</updated>
<author>
<name>Antonio Cardace</name>
<email>acardace@redhat.com</email>
</author>
<published>2021-01-21T15:49:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=91766a6910cde49bdcca0bcdc902583b1009378f'/>
<id>91766a6910cde49bdcca0bcdc902583b1009378f</id>
<content type='text'>
This is the default state for new devices hence they should
return back to this state when unmanaged.

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the default state for new devices hence they should
return back to this state when unmanaged.

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>device: make 'nm_device_master_release_slaves' internal API</title>
<updated>2021-02-02T08:51:57+00:00</updated>
<author>
<name>Antonio Cardace</name>
<email>acardace@redhat.com</email>
</author>
<published>2021-01-19T17:38:57+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=6ddfee37516156882c8f322b0488f60cbe87bca3'/>
<id>6ddfee37516156882c8f322b0488f60cbe87bca3</id>
<content type='text'>
https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://bugzilla.redhat.com/show_bug.cgi?id=1870691

Signed-off-by: Antonio Cardace &lt;acardace@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>ndisc: track expiry of Router Advertisements in milliseconds</title>
<updated>2021-01-27T09:18:14+00:00</updated>
<author>
<name>Thomas Haller</name>
<email>thaller@redhat.com</email>
</author>
<published>2021-01-21T17:19:15+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=4c2035347ec5eaaeee9320944ba07748755cd047'/>
<id>4c2035347ec5eaaeee9320944ba07748755cd047</id>
<content type='text'>
Elements of RAs have a lifetime. Previously we would track both
the timestamp (when we received the RA) and the lifetime.

However, we are mainly interested in the expiry time. So tracking the
expiry in form of timestamp and lifetime is redundant and cumbersome
to use.

Consider also the cases nm_ndisc_add_address() were we mangle the expiry.
In that case, the timestamp becomes meaningless or it's not clear what
the timestamp should be.

Also, there are no real cases where we actually need the receive timestamp.
Note that when we convert the times to NMPlatformIP6Address, we again need
to synthesize a base time stamp. But here too, it's NMPlatformIP6Address
fault of doing this pointless split of timestamp and lifetime.

While at it, increase the precision to milliseconds. As we receive
lifetimes with seconds precision, one might think that seconds precision
is enough for tracking the timeouts. However it just leads to ugly
uncertainty about rounding, when we can track times with sufficient
precision without downside. For example, before configuring an
address in kernel, we also need to calculate a remaining lifetime
with a lower precision. By having the exact values, we can do so
more accurately. At least, in theory. Of course NMPlatformIP6Address
itself has only precision of seconds, we already loose the information
before. However, NMNDisc no longer has that problem.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Elements of RAs have a lifetime. Previously we would track both
the timestamp (when we received the RA) and the lifetime.

However, we are mainly interested in the expiry time. So tracking the
expiry in form of timestamp and lifetime is redundant and cumbersome
to use.

Consider also the cases nm_ndisc_add_address() were we mangle the expiry.
In that case, the timestamp becomes meaningless or it's not clear what
the timestamp should be.

Also, there are no real cases where we actually need the receive timestamp.
Note that when we convert the times to NMPlatformIP6Address, we again need
to synthesize a base time stamp. But here too, it's NMPlatformIP6Address
fault of doing this pointless split of timestamp and lifetime.

While at it, increase the precision to milliseconds. As we receive
lifetimes with seconds precision, one might think that seconds precision
is enough for tracking the timeouts. However it just leads to ugly
uncertainty about rounding, when we can track times with sufficient
precision without downside. For example, before configuring an
address in kernel, we also need to calculate a remaining lifetime
with a lower precision. By having the exact values, we can do so
more accurately. At least, in theory. Of course NMPlatformIP6Address
itself has only precision of seconds, we already loose the information
before. However, NMNDisc no longer has that problem.
</pre>
</div>
</content>
</entry>
<entry>
<title>device: fix assertion failure when resolving hostname</title>
<updated>2021-01-20T17:50:09+00:00</updated>
<author>
<name>Beniamino Galvani</name>
<email>bgalvani@redhat.com</email>
</author>
<published>2021-01-20T17:30:43+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/NetworkManager.git/commit/?id=9c516a497e9f1b31f419d25a6c105071cb6c6587'/>
<id>9c516a497e9f1b31f419d25a6c105071cb6c6587</id>
<content type='text'>
nm_device_get_effective_ip_config_method() must called only on a
device with an applied connection. Fix assertion failure [1]:

  nm_device_get_effective_ip_config_method: assertion 'NM_IS_CONNECTION(connection)' failed

[1] http://faf.lab.eng.brq.redhat.com/faf/reports/20217/

Fixes: 09c83871144a ('policy: use the hostname setting'):
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
nm_device_get_effective_ip_config_method() must called only on a
device with an applied connection. Fix assertion failure [1]:

  nm_device_get_effective_ip_config_method: assertion 'NM_IS_CONNECTION(connection)' failed

[1] http://faf.lab.eng.brq.redhat.com/faf/reports/20217/

Fixes: 09c83871144a ('policy: use the hostname setting'):
</pre>
</div>
</content>
</entry>
</feed>
