Since commit: e36800c linux-user: add signalfd/signalfd4 syscalls It is now possible to register handlers to a file descriptor to translate a data stream transiting by this file descriptor.
We can now decode netlink information coming from the guest and inject a translated one into the host, and vice-versa. This series is an "RFC" because it works (we can boot a container using systemd and use iproute tools) but some problems remain. Some results (x86_64 host) with some guests: * ppc: it can boot a debian 8.2/8.3 (Jessie) LXC container and networking works fine (dhcp and "apt-get upgrade"). "ip link" generates some traces in the kernel log: "netlink: 8 bytes leftover after parsing attributes in process `ip'." * ppc64: it can boot a fedora 21 LXC container. Some issues with dhclient and "dnf update" -> missing netlink nested types 18 and 26 -> uniplemented instruction "evmheumiaaw" "ip link" generates some traces in the kernel log: "netlink: 8 bytes leftover after parsing attributes in process `ip'." * ppc64le: Debian 8.3 (Jessie). ip commands work fine, but "apt-get update" generates some netlink invalid types (and fails): Unknown target IFA type: 130 Unknown target IFA type: 59722 Unknown target IFA type: 59657 Unknown target IFA type: 15648 Unknown target IFA type: 32008 Unknown target IFA type: 16590 * sh4: container doesn't work but 'ip' in a chroot works well. * arm: Raspbian 8.3 (Jessie) works fine. * s390x: container Debian 8.1 boots well, but "apt-get" hangs on networking (name resolution?). "ip link" generates some traces in the kernel log: "netlink: 8 bytes leftover after parsing attributes in process `ip'." v2: Check domain before opening socket Remove cast to int of sizeof() Move NLMSG_DONE into the switch() Fix '{' in 'case:' Reorder data types by type size Add new conversions (IFLA_STATS, IFLA_STATS64, IFLA_MAP) Add warning for nested type (not supported) Add logs with gemu_log() Don't convert rta_len and rta_type in the error case Laurent Vivier (3): linux-user: add rtnetlink(7) support linux-user: support netlink protocol NETLINK_KOBJECT_UEVENT linux-user: add netlink audit linux-user/syscall.c | 643 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 637 insertions(+), 6 deletions(-) -- 2.5.5