On Mon, Oct 10, 2011 at 01:11:51AM +0200, Martin Pelikan wrote:
> Hi,
> 
> motivated by many devs over the weekend I looked at some of the inet6
> code again.  Easy stuff goes first:
> 
> --
> Martin Pelikan
> 
> 
> Index: in6.c
> ===================================================================
> RCS file: /cvs/src/sys/netinet6/in6.c,v
> retrieving revision 1.93
> diff -u -p -r1.93 in6.c
> --- in6.c     8 Aug 2011 13:04:35 -0000       1.93
> +++ in6.c     9 Oct 2011 22:34:56 -0000
> @@ -1046,10 +1046,9 @@ in6_update_ifa(struct ifnet *ifp, struct
>               bzero(&llsol, sizeof(llsol));
>               llsol.sin6_family = AF_INET6;
>               llsol.sin6_len = sizeof(llsol);
> -             llsol.sin6_addr.s6_addr16[0] = htons(0xff02);
> +             llsol.sin6_addr.s6_addr16[0] = IPV6_ADDR_INT16_MLL;
>               llsol.sin6_addr.s6_addr16[1] = htons(ifp->if_index);
> -             llsol.sin6_addr.s6_addr32[1] = 0;

I know nothing of IPv6 stuff, but is this line removal
a typo or an intended change?

--patrick

> -             llsol.sin6_addr.s6_addr32[2] = htonl(1);
> +             llsol.sin6_addr.s6_addr32[2] = IPV6_ADDR_INT32_ONE;
>               llsol.sin6_addr.s6_addr32[3] =
>                   ifra->ifra_addr.sin6_addr.s6_addr32[3];
>               llsol.sin6_addr.s6_addr8[12] = 0xff;
> Index: in6_ifattach.c
> ===================================================================
> RCS file: /cvs/src/sys/netinet6/in6_ifattach.c,v
> retrieving revision 1.51
> diff -u -p -r1.51 in6_ifattach.c
> --- in6_ifattach.c    6 Apr 2010 14:12:10 -0000       1.51
> +++ in6_ifattach.c    9 Oct 2011 22:34:56 -0000
> @@ -343,12 +343,12 @@ in6_ifattach_linklocal(struct ifnet *ifp
>  
>       ifra.ifra_addr.sin6_family = AF_INET6;
>       ifra.ifra_addr.sin6_len = sizeof(struct sockaddr_in6);
> -     ifra.ifra_addr.sin6_addr.s6_addr16[0] = htons(0xfe80);
> +     ifra.ifra_addr.sin6_addr.s6_addr16[0] = IPV6_ADDR_INT16_ULL;
>       ifra.ifra_addr.sin6_addr.s6_addr16[1] = htons(ifp->if_index);
>       ifra.ifra_addr.sin6_addr.s6_addr32[1] = 0;
>       if ((ifp->if_flags & IFF_LOOPBACK) != 0) {
>               ifra.ifra_addr.sin6_addr.s6_addr32[2] = 0;
> -             ifra.ifra_addr.sin6_addr.s6_addr32[3] = htonl(1);
> +             ifra.ifra_addr.sin6_addr.s6_addr32[3] = IPV6_ADDR_INT32_ONE;
>       } else {
>               if (get_ifid(ifp, altifp, &ifra.ifra_addr.sin6_addr) != 0) {
>                       nd6log((LOG_ERR,
> @@ -553,9 +553,9 @@ in6_nigroup(struct ifnet *ifp, const cha
>       bzero(sa6, sizeof(*sa6));
>       sa6->sin6_family = AF_INET6;
>       sa6->sin6_len = sizeof(*sa6);
> -     sa6->sin6_addr.s6_addr16[0] = htons(0xff02);
> +     sa6->sin6_addr.s6_addr16[0] = IPV6_ADDR_INT16_MLL;
>       sa6->sin6_addr.s6_addr16[1] = htons(ifp->if_index);
> -     sa6->sin6_addr.s6_addr8[11] = 2;
> +     sa6->sin6_addr.s6_addr32[2] = IPV6_ADDR_INT32_TWO;
>       bcopy(digest, &sa6->sin6_addr.s6_addr32[3],
>           sizeof(sa6->sin6_addr.s6_addr32[3]));
>  
> Index: nd6.c
> ===================================================================
> RCS file: /cvs/src/sys/netinet6/nd6.c,v
> retrieving revision 1.87
> diff -u -p -r1.87 nd6.c
> --- nd6.c     17 Jun 2011 07:06:47 -0000      1.87
> +++ nd6.c     9 Oct 2011 22:34:56 -0000
> @@ -1222,10 +1222,10 @@ nd6_rtrequest(int req, struct rtentry *r
>                               int error;
>  
>                               llsol = SIN6(rt_key(rt))->sin6_addr;
> -                             llsol.s6_addr16[0] = htons(0xff02);
> +                             llsol.s6_addr16[0] = IPV6_ADDR_INT16_MLL;
>                               llsol.s6_addr16[1] = htons(ifp->if_index);
>                               llsol.s6_addr32[1] = 0;
> -                             llsol.s6_addr32[2] = htonl(1);
> +                             llsol.s6_addr32[2] = IPV6_ADDR_INT32_ONE;
>                               llsol.s6_addr8[12] = 0xff;
>  
>                               if (in6_addmulti(&llsol, ifp, &error)) {
> @@ -1247,10 +1247,10 @@ nd6_rtrequest(int req, struct rtentry *r
>                       struct in6_multi *in6m;
>  
>                       llsol = SIN6(rt_key(rt))->sin6_addr;
> -                     llsol.s6_addr16[0] = htons(0xff02);
> +                     llsol.s6_addr16[0] = IPV6_ADDR_INT16_MLL;
>                       llsol.s6_addr16[1] = htons(ifp->if_index);
>                       llsol.s6_addr32[1] = 0;
> -                     llsol.s6_addr32[2] = htonl(1);
> +                     llsol.s6_addr32[2] = IPV6_ADDR_INT32_ONE;
>                       llsol.s6_addr8[12] = 0xff;
>  
>                       IN6_LOOKUP_MULTI(llsol, ifp, in6m);

Reply via email to