qemu-devel
[Top][All Lists]
Advanced

[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?





reply via email to

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