Releases: nerves-networking/vintage_net
Releases · nerves-networking/vintage_net
v0.10.0
This release is mostly backwards compatible. If you have created your own
VintageNet technology, you may need to update your unit tests. If you are an end
user of VintageNet, your code should continue to work unmodified.
-
Improvements
- The Internet connectivity check logic now supports a list of IP addresses
instead of just one. The default has been updated to include major public
DNS providers. The code checks them in succession until one responds. See
:internet_host_list
config key in the README.md if you need to change it. - Only start
udhcpc
/udhcpd
when the network interface is up. This removes
pointless attempts to get an IP address and their associated logs. It
reduces connection time for wired Ethernet but doesn't affect WiFI.
- The Internet connectivity check logic now supports a list of IP addresses
-
Bug fixes
- Replace Crypto API calls that are no longer included with OTP 24.
- Redact SAE passwords
v0.9.3
- Bug fixes
- Be more robust to
PowerManager.init/1
failures. While this function
shouldn't raise, the effect of it raising was particularly destructive to
VintageNet and took down networking. - Update
gen_state_machine
dependency to let the 3.0.0 release be used.
- Be more robust to
v0.9.2
v0.9.1
v0.9.0
This release contains improvements that will not affect you unless you are
using a custom VintageNet.Technology
implementation.
-
New features
- Add power management support. This adds support for powering on and off
network devices and also enablesVintageNet
to restart devices that are
not working if allowed. SeeVintageNet.PowerManager
for details.
- Add power management support. This adds support for powering on and off
-
Breaking changes
- Paths to networking programs like
wpa_supplicant
are no longer passed as
opts during configuration. I.e.,:bin_wpa_supplicant
,:bin_ip
, etc. This
was not a generally useful feature since it wasn't possible to include all
possible programs. A future plan is to add support for verifying that
networking programs exist before trying to configure an interface. Programs
should be passed as strings now. - Support for the
:busybox
hex package has been removed. This was useful
when networking programs were unavailable on a system, but all official
Nerves systems have included them for the past year and:busybox
required
maintenance to keep working and up-to-date.
- Paths to networking programs like
v0.8.0
-
New features
- [Breaking change for technology implementors] Decouple the network interface
name from the one a network technology uses. For example, cellular modems
can now havevintage_net
wait forwwan0
to appear before setting up a
PPP interface (likeppp0
). All network technology implementations need to
be updated to provideRawConfigs
that list the network interfaces they
need to start. This is hard to miss since you'll get a compile error if it
affects you. - Deterministic interface naming support - If you have a device with multiple
network interfaces of the same type (e.g., multiple WiFi adapters) it is
possible for them to switch between being assignedwlan0
andwlan1
under some conditions. This feature allows you to map their hardware
location to a name of your choosing. See theREADME.md
for details. - Add the "hw_path" property - For example,
{["interface", "eth0", "hw_path"], "/devices/platform/ocp/4a100000.ethernet"}
- [Breaking change for technology implementors] Decouple the network interface
-
Bug fixes
- Stop network interface management
GenServers
before running the "down"
commands. This is most noticeable in reduced log noise on network hiccups
and device removals.
- Stop network interface management
v0.7.9
- Bug fixes
- Fix IP address being reported for PPP connections. Previously, it was the
remote end of the PPP connection rather than the local end. - Fix missing IPv6 address reports. Depending on when IPv6 addresses were set
on network interfaces, they might not have been reported. Note that IPv6
isn't officially supported by VintageNet yet.
- Fix IP address being reported for PPP connections. Previously, it was the
v0.7.8
-
Improvements
- Store an interface's configuration in the
["interface", ifname, "config"]
property. This makes it possible to subscribe to configuration changes (like
any other property). - Print out IP addresses with
VintageNet.info/0
- Store an interface's configuration in the
-
Bug fixes
- Fixed
VintageNet.get_configuration/1
to return the configuration that will
be applied even if it's not the configuration that's currently applied.
The previous semantics would break code that made decisions based on the
current configurations.
- Fixed
v0.7.7
v0.7.6
- Bug fixes
- Ensure that
Technology.normalize/1
is always called. Previously, this
wasn't guaranteed, and it could result in a surprise when an unnormalized
configuration got saved. - Remove duplicate resolv.conf entries on multi-homed devices
- Fix warnings found by Elixir 1.10
- Ensure that