Hello, This is another respin of IPv6 in Qemu -net user mode.
These patches add ICMPv6, NDP, and make UDP and TCP compatible with IPv6. Difference with version 7 is: - Fix overflow detection in strtol call - Fix formatting and typos - Use SLIRP_ prefix for header protection - Use grand instead of srand/rand - Use standard macros instead of defining intermediate in6_multicast and in6_unspecified - Pass pointers to in6_equal* instead of structs - Use qemu_log_mask(LOG_GUEST_ERROR) for guest errors instead of error_report() - Use bool type - Avoid floating point operation - Include qemu/osdep.h in new files. - Move code to send NA to separate function - Fix memory leak - Fix missing save_ip in UDPv6 - Fix zero UDP checksum - Use unreachable assertion instead of simple breaks when the socket type is not v4 or v6. - Avoid duplicate ipv4/ipv6 header save. Here is a summary of the patches: Guillaume Subiron (7): slirp: Adding IPv6, ICMPv6 Echo and NDP autoconfiguration slirp: Adding IPv6 UDP support slirp: Factorizing tcpiphdr structure with an union slirp: Generalizing and neutralizing various TCP functions before adding IPv6 stuff slirp: Reindent after refactoring slirp: Handle IPv6 in TCP functions slirp: Adding IPv6 address for DNS relay Yann Bordenave (2): slirp: Adding ICMPv6 error sending qapi-schema, qemu-options & slirp: Adding Qemu options for IPv6 addresses net/net.c | 31 ++++ net/slirp.c | 50 ++++++- qapi-schema.json | 40 +++-- qemu-options.hx | 18 ++- slirp/Makefile.objs | 6 +- slirp/cksum.c | 25 ++++ slirp/if.c | 2 +- slirp/if.h | 4 +- slirp/ip6.h | 138 ++++++++++++++++++ slirp/ip6_icmp.c | 411 ++++++++++++++++++++++++++++++++++++++++++++++++++++ slirp/ip6_icmp.h | 213 +++++++++++++++++++++++++++ slirp/ip6_input.c | 73 ++++++++++ slirp/ip6_output.c | 38 +++++ slirp/ip_icmp.c | 12 +- slirp/ip_icmp.h | 4 +- slirp/ip_input.c | 10 +- slirp/libslirp.h | 8 +- slirp/mbuf.c | 3 +- slirp/ndp_table.c | 84 +++++++++++ slirp/slirp.c | 79 ++++++++-- slirp/slirp.h | 43 +++++- slirp/socket.c | 54 ++++++- slirp/socket.h | 13 ++ slirp/tcp.h | 2 + slirp/tcp_input.c | 181 ++++++++++++++++------- slirp/tcp_output.c | 51 +++++-- slirp/tcp_subr.c | 114 +++++++++++---- slirp/tcp_timer.c | 3 +- slirp/tcpip.h | 40 ++++- slirp/udp.c | 3 +- slirp/udp.h | 5 + slirp/udp6.c | 156 ++++++++++++++++++++ 32 files changed, 1754 insertions(+), 160 deletions(-) create mode 100644 slirp/ip6.h create mode 100644 slirp/ip6_icmp.c create mode 100644 slirp/ip6_icmp.h create mode 100644 slirp/ip6_input.c create mode 100644 slirp/ip6_output.c create mode 100644 slirp/ndp_table.c create mode 100644 slirp/udp6.c -- 2.7.0