On Tue, May 24, 2016 at 10:42:01AM +0200, Laurent Vivier wrote: > 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.
Ok, fair enough, applied. > 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. Since it's new stuff, I agree > 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