Re: inet6 constants for addrs

2011-10-10 Thread Mike Belopuhov
On Mon, Oct 10, 2011 at 7:37 AM, patrick keshishian  wrote:
> I know nothing of IPv6 stuff, but is this line removal
> a typo or an intended change?
>

there's a bzero call above.



Re: inet6 constants for addrs

2011-10-09 Thread patrick keshishian
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 -   1.93
> +++ in6.c 9 Oct 2011 22:34:56 -
> @@ -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.c6 Apr 2010 14:12:10 -   1.51
> +++ in6_ifattach.c9 Oct 2011 22:34:56 -
> @@ -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 -  1.87
> +++ nd6.c 9 Oct 2011 22:34:56 -
> @@ -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);



inet6 constants for addrs

2011-10-09 Thread Martin Pelikan
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 -   1.93
+++ in6.c   9 Oct 2011 22:34:56 -
@@ -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;
-   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 -   1.51
+++ in6_ifattach.c  9 Oct 2011 22:34:56 -
@@ -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 -  1.87
+++ nd6.c   9 Oct 2011 22:34:56 -
@@ -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);