Public bug reported:

Trying to use avahi-autoipd on a USB network interface, which gets
created when I connect a USB gadget (g_ether) device (my raspberry pi
zero). Avahi-autoipd fails to assign an IPv4LL address, and instead
reports:

# avahi-autoipd enp0s29u1u2
Found user 'avahi-autoipd' (UID 110) and group 'avahi-autoipd' (GID 120).
Successfully called chroot().
Successfully dropped root privileges.
Starting with address 169.254.7.125
Callout BIND, address 169.254.7.125 on interface enp0s29u1u2
client: RTNETLINK answers: Numerical result out of range
Script execution failed with return value 2
Successfully claimed IP address 169.254.7.125

Although avahi-autoipd claims that the IP address gets configured,
ifconfig shows that it didn't succeed.

The root cause is that the label for the interface exceeds the maximum
length of 15 characters. This happens in line 44 of /etc/avahi/avahi-
autoipd.action:

ip addr add "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link dev
"$2"

With $2 the interface name, and $3 the IPv4LL address that it wants to
claim.

Interface names and label names can only be 15 characters in length,
this is a kernel limitation. IF_NAMESIZE = 16, leaving 15 chars for the
name, see /usr/include/net/if.h and IFNAMSIZ in the kernel includes.

The rather long interface name, appended with ":avahi", exceeds this
length. This results in the 'Numerical result out of range' error
message.

Workaround: I've edited the /etc/avahi/avahi-autopid.action script to
only append ":a" for the label (lines 44 and 50) ,and in this case it
works as designed.

avahi-autoipd should perhaps check that the label does not exceed this
limit of 15 characters.

Note that the label must start with the full interface name, see ip-
address(8).

A more compact interface name would be helpful, as these long interface names 
tend to break
other things as well. The kernel assigns 'usb0', but this gets changed right 
away.

This occurs on both 16.04 and 16.10, haven't tried any other versions
yet.

** Affects: avahi (Ubuntu)
     Importance: Undecided
         Status: New

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to avahi in Ubuntu.
https://bugs.launchpad.net/bugs/1666900

Title:
  avahi-autoipd fails because network interface name is too long

Status in avahi package in Ubuntu:
  New

Bug description:
  Trying to use avahi-autoipd on a USB network interface, which gets
  created when I connect a USB gadget (g_ether) device (my raspberry pi
  zero). Avahi-autoipd fails to assign an IPv4LL address, and instead
  reports:

  # avahi-autoipd enp0s29u1u2
  Found user 'avahi-autoipd' (UID 110) and group 'avahi-autoipd' (GID 120).
  Successfully called chroot().
  Successfully dropped root privileges.
  Starting with address 169.254.7.125
  Callout BIND, address 169.254.7.125 on interface enp0s29u1u2
  client: RTNETLINK answers: Numerical result out of range
  Script execution failed with return value 2
  Successfully claimed IP address 169.254.7.125

  Although avahi-autoipd claims that the IP address gets configured,
  ifconfig shows that it didn't succeed.

  The root cause is that the label for the interface exceeds the maximum
  length of 15 characters. This happens in line 44 of /etc/avahi/avahi-
  autoipd.action:

  ip addr add "$3"/16 brd 169.254.255.255 label "$2:avahi" scope link
  dev "$2"

  With $2 the interface name, and $3 the IPv4LL address that it wants to
  claim.

  Interface names and label names can only be 15 characters in length,
  this is a kernel limitation. IF_NAMESIZE = 16, leaving 15 chars for
  the name, see /usr/include/net/if.h and IFNAMSIZ in the kernel
  includes.

  The rather long interface name, appended with ":avahi", exceeds this
  length. This results in the 'Numerical result out of range' error
  message.

  Workaround: I've edited the /etc/avahi/avahi-autopid.action script to
  only append ":a" for the label (lines 44 and 50) ,and in this case it
  works as designed.

  avahi-autoipd should perhaps check that the label does not exceed this
  limit of 15 characters.

  Note that the label must start with the full interface name, see ip-
  address(8).

  A more compact interface name would be helpful, as these long interface names 
tend to break
  other things as well. The kernel assigns 'usb0', but this gets changed right 
away.

  This occurs on both 16.04 and 16.10, haven't tried any other versions
  yet.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/avahi/+bug/1666900/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to