qemu-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-commits] [qemu/qemu] 0d6ff7: slirp: Adding IPv6, ICMPv6 Echo and N


From: GitHub
Subject: [Qemu-commits] [qemu/qemu] 0d6ff7: slirp: Adding IPv6, ICMPv6 Echo and NDP autoconfig...
Date: Tue, 15 Mar 2016 11:00:05 -0700

  Branch: refs/heads/master
  Home:   https://github.com/qemu/qemu
  Commit: 0d6ff71ae3c7ac3a446d295ef71884a05093b37c
      
https://github.com/qemu/qemu/commit/0d6ff71ae3c7ac3a446d295ef71884a05093b37c
  Author: Guillaume Subiron <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M slirp/Makefile.objs
    M slirp/cksum.c
    M slirp/if.c
    A slirp/ip6.h
    A slirp/ip6_icmp.c
    A slirp/ip6_icmp.h
    A slirp/ip6_input.c
    A slirp/ip6_output.c
    A slirp/ndp_table.c
    M slirp/slirp.c
    M slirp/slirp.h
    M slirp/socket.h

  Log Message:
  -----------
  slirp: Adding IPv6, ICMPv6 Echo and NDP autoconfiguration

This patch adds the functions needed to handle IPv6 packets. ICMPv6 and
NDP headers are implemented.

Slirp is now able to send NDP Router or Neighbor Advertisement when it
receives Router or Neighbor Solicitation. Using a 64bit-sized IPv6
prefix, the guest is now able to perform stateless autoconfiguration
(SLAAC) and to compute its IPv6 address.

This patch adds an ndp_table, mainly inspired by arp_table, to keep an
NDP cache and manage network address resolution.
Slirp regularly sends NDP Neighbor Advertisement, as recommended by the
RFC, to make the guest refresh its route.

This also adds ip6_cksum() to compute ICMPv6 checksums using IPv6
pseudo-header.

Some #define ETH_* are moved upper in slirp.h to make them accessible to
other slirp/*.h

Signed-off-by: Guillaume Subiron <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: de40abfecfe17f79870a66acfc1f87a53fc066ca
      
https://github.com/qemu/qemu/commit/de40abfecfe17f79870a66acfc1f87a53fc066ca
  Author: Yann Bordenave <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M slirp/ip6_input.c
    M slirp/ip_icmp.c
    M slirp/ip_icmp.h
    M slirp/ip_input.c
    M slirp/socket.c
    M slirp/tcp_input.c
    M slirp/udp.c

  Log Message:
  -----------
  slirp: Fix ICMP error sending

Disambiguation : icmp_error is renamed into icmp_send_error, since it
doesn't manage errors, but only sends ICMP Error messages.

Signed-off-by: Yann Bordenave <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: fc6c9257c6dd47316a1c55d356bcd89bdc5fd642
      
https://github.com/qemu/qemu/commit/fc6c9257c6dd47316a1c55d356bcd89bdc5fd642
  Author: Yann Bordenave <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M slirp/ip6_icmp.c
    M slirp/ip6_icmp.h
    M slirp/ip6_input.c

  Log Message:
  -----------
  slirp: Adding ICMPv6 error sending

Adding icmp6_send_error to send ICMPv6 Error messages. This function is
simpler than the v4 version.
Adding some calls in various functions to send ICMP errors, when a
received packet is too big, or when its hop limit is 0.

Signed-off-by: Yann Bordenave <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: 15d62af4b6068d1bac1806ca4625b6d4c475eb09
      
https://github.com/qemu/qemu/commit/15d62af4b6068d1bac1806ca4625b6d4c475eb09
  Author: Guillaume Subiron <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M slirp/Makefile.objs
    M slirp/ip6_input.c
    M slirp/socket.c
    M slirp/socket.h
    M slirp/udp.h
    A slirp/udp6.c

  Log Message:
  -----------
  slirp: Adding IPv6 UDP support

This adds the sin6 case in the fhost and lhost unions and related macros.
It adds udp6_input() and udp6_output().
It adds the IPv6 case in sorecvfrom().
Finally, udp_input() is called by ip6_input().

Signed-off-by: Guillaume Subiron <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: 98c63057d2144fb81681580cd84c13c93794c96e
      
https://github.com/qemu/qemu/commit/98c63057d2144fb81681580cd84c13c93794c96e
  Author: Guillaume Subiron <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M slirp/if.h
    M slirp/mbuf.c
    M slirp/slirp.c
    M slirp/socket.c
    M slirp/tcp_input.c
    M slirp/tcp_output.c
    M slirp/tcp_subr.c
    M slirp/tcpip.h

  Log Message:
  -----------
  slirp: Factorizing tcpiphdr structure with an union

This patch factorizes the tcpiphdr structure to put the IPv4 fields in
an union, for addition of version 6 in further patch.
Using some macros, retrocompatibility of the existing code is assured.

This patch also fixes the SLIRP_MSIZE and margin computation in various
functions, and makes them compatible with the new tcpiphdr structure,
whose size will be bigger than sizeof(struct tcphdr) + sizeof(struct ip)

Signed-off-by: Guillaume Subiron <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: 9dfbf250d2a57adea15e42eed44ae35cb32d7597
      
https://github.com/qemu/qemu/commit/9dfbf250d2a57adea15e42eed44ae35cb32d7597
  Author: Guillaume Subiron <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M slirp/ip_input.c
    M slirp/slirp.c
    M slirp/slirp.h
    M slirp/tcp_input.c
    M slirp/tcp_output.c
    M slirp/tcp_subr.c
    M slirp/tcp_timer.c

  Log Message:
  -----------
  slirp: Generalizing and neutralizing various TCP functions before adding IPv6 
stuff

Basically, this patch adds some switch in various TCP functions to
prepare them for the IPv6 case.

To have something to "switch" in tcp_input() and tcp_respond(), a new
argument is used to give them the sa_family of the addresses they are
working on.

This patch does not include the entailed reindentation, to make proofread
easier. Reindentation is adressed in the following no-op patch.

Signed-off-by: Guillaume Subiron <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: 1252cf40a83ed91e0ee30cc5f206ce9372c640d8
      
https://github.com/qemu/qemu/commit/1252cf40a83ed91e0ee30cc5f206ce9372c640d8
  Author: Guillaume Subiron <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M slirp/tcp_input.c
    M slirp/tcp_output.c
    M slirp/tcp_subr.c

  Log Message:
  -----------
  slirp: Reindent after refactoring

No code change.

Signed-off-by: Guillaume Subiron <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: 3feea4447f1b9b04816ee6977b5ecc0eb704e07a
      
https://github.com/qemu/qemu/commit/3feea4447f1b9b04816ee6977b5ecc0eb704e07a
  Author: Guillaume Subiron <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M slirp/ip6_input.c
    M slirp/tcp.h
    M slirp/tcp_input.c
    M slirp/tcp_output.c
    M slirp/tcp_subr.c
    M slirp/tcpip.h

  Log Message:
  -----------
  slirp: Handle IPv6 in TCP functions

This patch adds IPv6 case in TCP functions refactored by the last
patches.
This also adds IPv6 pseudo-header in tcpiphdr structure.
Finally, tcp_input() is called by ip6_input().

Signed-off-by: Guillaume Subiron <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: 05061d8548598c92bda94de0c6159732e75da719
      
https://github.com/qemu/qemu/commit/05061d8548598c92bda94de0c6159732e75da719
  Author: Guillaume Subiron <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M slirp/ip6.h
    M slirp/slirp.c
    M slirp/slirp.h
    M slirp/socket.c

  Log Message:
  -----------
  slirp: Adding IPv6 address for DNS relay

This patch adds an IPv6 address to the DNS relay. in6_equal_dns() is
developed using this Slirp attribute.
sotranslate_in/out/accept() are also updated to manage the IPv6 case so the
guest can be able to join the host using one of the Slirp addresses.

For now this only points to localhost. Further development will be needed to
automatically fetch the IPv6 address from resolv.conf, and announce this via
RDNSS.

Signed-off-by: Guillaume Subiron <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: 7aac531ef260e3176838f8089525f3e13e40b607
      
https://github.com/qemu/qemu/commit/7aac531ef260e3176838f8089525f3e13e40b607
  Author: Yann Bordenave <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M net/net.c
    M net/slirp.c
    M qapi-schema.json
    M qemu-options.hx
    M slirp/libslirp.h
    M slirp/slirp.c

  Log Message:
  -----------
  qapi-schema, qemu-options & slirp: Adding Qemu options for IPv6 addresses

This patch adds parameters to manage some new options in the qemu -net
command.
Slirp IPv6 address, network prefix, and DNS IPv6 address can be given in
argument to the qemu command.
Defaults parameters are respectively fec0::2, fec0::, /64 and fec0::3.

Signed-off-by: Yann Bordenave <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>
Reviewed-by: Thomas Huth <address@hidden>


  Commit: fad7fb9ccd8013ea03c8c7a8f491c395e786dae6
      
https://github.com/qemu/qemu/commit/fad7fb9ccd8013ea03c8c7a8f491c395e786dae6
  Author: Thomas Huth <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M slirp/tftp.c
    M slirp/tftp.h
    M slirp/udp.c
    M slirp/udp6.c

  Log Message:
  -----------
  slirp: Add IPv6 support to the TFTP code

Add the handler code for incoming TFTP packets to udp6_input(),
and make sure that the TFTP code can send packets with both,
udp_output() and udp6_output() by introducing a wrapper function
called tftp_udp_output().

Signed-off-by: Thomas Huth <address@hidden>
Signed-off-by: Samuel Thibault <address@hidden>


  Commit: a6cdb77f816961f929d7934643febd2852230135
      
https://github.com/qemu/qemu/commit/a6cdb77f816961f929d7934643febd2852230135
  Author: Peter Maydell <address@hidden>
  Date:   2016-03-15 (Tue, 15 Mar 2016)

  Changed paths:
    M net/net.c
    M net/slirp.c
    M qapi-schema.json
    M qemu-options.hx
    M slirp/Makefile.objs
    M slirp/cksum.c
    M slirp/if.c
    M slirp/if.h
    A slirp/ip6.h
    A slirp/ip6_icmp.c
    A slirp/ip6_icmp.h
    A slirp/ip6_input.c
    A slirp/ip6_output.c
    M slirp/ip_icmp.c
    M slirp/ip_icmp.h
    M slirp/ip_input.c
    M slirp/libslirp.h
    M slirp/mbuf.c
    A slirp/ndp_table.c
    M slirp/slirp.c
    M slirp/slirp.h
    M slirp/socket.c
    M slirp/socket.h
    M slirp/tcp.h
    M slirp/tcp_input.c
    M slirp/tcp_output.c
    M slirp/tcp_subr.c
    M slirp/tcp_timer.c
    M slirp/tcpip.h
    M slirp/tftp.c
    M slirp/tftp.h
    M slirp/udp.c
    M slirp/udp.h
    A slirp/udp6.c

  Log Message:
  -----------
  Merge remote-tracking branch 'remotes/thibault/tags/samuel-thibault' into 
staging

slirp: Adding IPv6 support to Qemu -net user mode

# gpg: Signature made Tue 15 Mar 2016 16:06:03 GMT using RSA key ID FB6B2F1D
# gpg: Good signature from "Samuel Thibault <address@hidden>"
# gpg:                 aka "Samuel Thibault <address@hidden>"
# gpg:                 aka "Samuel Thibault <address@hidden>"
# gpg:                 aka "Samuel Thibault <address@hidden>"
# gpg:                 aka "Samuel Thibault <address@hidden>"
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg:          It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 900C B024 B679 31D4 0F82  304B D017 8C76 7D06 9EE6
#      Subkey fingerprint: F632 74CD C630 0873 CB3D  29D9 E3E5 1CE8 FB6B 2F1D

* remotes/thibault/tags/samuel-thibault:
  slirp: Add IPv6 support to the TFTP code
  qapi-schema, qemu-options & slirp: Adding Qemu options for IPv6 addresses
  slirp: Adding IPv6 address for DNS relay
  slirp: Handle IPv6 in TCP functions
  slirp: Reindent after refactoring
  slirp: Generalizing and neutralizing various TCP functions before adding IPv6 
stuff
  slirp: Factorizing tcpiphdr structure with an union
  slirp: Adding IPv6 UDP support
  slirp: Adding ICMPv6 error sending
  slirp: Fix ICMP error sending
  slirp: Adding IPv6, ICMPv6 Echo and NDP autoconfiguration

Signed-off-by: Peter Maydell <address@hidden>


Compare: https://github.com/qemu/qemu/compare/a58a4cb18725...a6cdb77f8169

reply via email to

[Prev in Thread] Current Thread [Next in Thread]