[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCHv9 01/10] slirp: Adding IPv6, ICMPv6 Echo and NDP
From: |
Jason Wang |
Subject: |
Re: [Qemu-devel] [PATCHv9 01/10] slirp: Adding IPv6, ICMPv6 Echo and NDP autoconfiguration |
Date: |
Mon, 7 Mar 2016 14:53:54 +0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 |
On 02/23/2016 03:28 AM, Samuel Thibault wrote:
> From: Guillaume Subiron <address@hidden>
>
> 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>
> ---
> slirp/Makefile.objs | 6 +-
> slirp/cksum.c | 25 ++++
> slirp/if.c | 2 +-
> slirp/ip6.h | 138 +++++++++++++++++++++
> slirp/ip6_icmp.c | 347
> ++++++++++++++++++++++++++++++++++++++++++++++++++++
> slirp/ip6_icmp.h | 203 ++++++++++++++++++++++++++++++
> slirp/ip6_input.c | 69 +++++++++++
> slirp/ip6_output.c | 38 ++++++
> slirp/ndp_table.c | 84 +++++++++++++
> slirp/slirp.c | 51 +++++++-
> slirp/slirp.h | 37 ++++++
> slirp/socket.h | 7 ++
> 12 files changed, 1001 insertions(+), 6 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
>
[...]
> +
> + /*
> + * Switch out to protocol's input routine.
> + */
> + switch (ip6->ip_nh) {
> +#if 0
> + case IPPROTO_TCP:
> + tcp_input(m, hlen, (struct socket *)NULL);
> + break;
> + case IPPROTO_UDP:
> + udp_input(m, hlen);
> + break;
> +#endif
This looks odd, why need this?
- Re: [Qemu-devel] [PATCHv9 01/10] slirp: Adding IPv6, ICMPv6 Echo and NDP autoconfiguration,
Jason Wang <=