Le 24/05/2016 à 10:29, Riku Voipio a écrit : > On Sun, May 22, 2016 at 06:56:18PM +0200, Laurent Vivier wrote: >> 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. > > Ok, I can wait for V3.
Well, I've forgotten to remove this part from the first series version :) So, if it doesn't break anything and bring some improvements, I think you can apply it. There are two remaining problems: - missing nested types on ppc64 - some unknown IFA types on ppc64le/debian 8.3 (could be unimplemented flags management) But I think this can wait. ppc64/ppc64le can also be broken because of missing instructions, not because netlink implementation. > >> 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. > > Tested on arm64 and seems to work fine (didn't test dhcp). Thanks > >> * 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 >> Laurent