Skip to content

Releases: nerves-networking/vintage_net

v0.10.0

09 Apr 18:46
Compare
Choose a tag to compare

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.
  • Bug fixes

    • Replace Crypto API calls that are no longer included with OTP 24.
    • Redact SAE passwords

v0.9.3

03 Feb 15:54
Compare
Choose a tag to compare
  • 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.

v0.9.2

10 Oct 14:48
Compare
Choose a tag to compare
  • Bug fixes
    • Handle missing commands as errors rather than raising. This makes it
      a little easier test vintage_net and libraries that use it.
    • Fixes @doc tag warnings during compile time

v0.9.1

30 Jul 01:11
Compare
Choose a tag to compare
  • Bug fixes
    • This fixes an issue where system networking binaries were not being resolved
      according to vintage_net's view of the PATH. vintage_net looks in the
      standard directories by default, but it's possible to restrict or add
      locations.

v0.9.0

24 Jul 21:36
Compare
Choose a tag to compare

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 enables VintageNet to restart devices that are
      not working if allowed. See VintageNet.PowerManager for details.
  • 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.

v0.8.0

29 May 14:44
Compare
Choose a tag to compare
  • 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 have vintage_net wait for wwan0 to appear before setting up a
      PPP interface (like ppp0). All network technology implementations need to
      be updated to provide RawConfigs 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 assigned wlan0 and wlan1
      under some conditions. This feature allows you to map their hardware
      location to a name of your choosing. See the README.md for details.
    • Add the "hw_path" property - For example, {["interface", "eth0", "hw_path"], "/devices/platform/ocp/4a100000.ethernet"}
  • 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.

v0.7.9

07 Apr 15:46
Compare
Choose a tag to compare
  • 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.

v0.7.8

04 Apr 13:34
Compare
Choose a tag to compare
  • 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
  • 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.

v0.7.7

24 Mar 17:48
Compare
Choose a tag to compare
  • Improvements
    • Added time-in-state to VintageNet.info. This lets you see if a connection
      has bounced at a glance without digging through the logs.

v0.7.6

18 Mar 15:33
Compare
Choose a tag to compare
  • 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