From: Matthew Iselin <matt...@theiselins.net>

Signed-off-by: Matthew Iselin <matt...@theiselins.net>
---
 src/net/icmpv6.c |   12 ++++--------
 1 files changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/net/icmpv6.c b/src/net/icmpv6.c
index 237fc4a..aee4ca0 100644
--- a/src/net/icmpv6.c
+++ b/src/net/icmpv6.c
@@ -48,16 +48,12 @@ int icmp6_send_solicit ( struct net_device *netdev, struct 
in6_addr *src __unuse
        nsolicit->csum = 0;
        nsolicit->csum = tcpip_chksum ( nsolicit, sizeof ( *nsolicit ) );
 
-       /* Solicited multicast address */
+       /* Solicited multicast address - FF02::1 (all stations on local 
network) */
+       memset(&st_dest.sin6, 0, sizeof(st_dest.sin6));
        st_dest.sin6.sin_family = AF_INET6;
        st_dest.sin6.sin6_addr.in6_u.u6_addr8[0] = 0xff;
-       st_dest.sin6.sin6_addr.in6_u.u6_addr8[2] = 0x02;
-       st_dest.sin6.sin6_addr.in6_u.u6_addr16[1] = 0x0000;
-       st_dest.sin6.sin6_addr.in6_u.u6_addr32[1] = 0x00000000;
-       st_dest.sin6.sin6_addr.in6_u.u6_addr16[4] = 0x0000;
-       st_dest.sin6.sin6_addr.in6_u.u6_addr16[5] = 0x0001;
-       st_dest.sin6.sin6_addr.in6_u.u6_addr32[3] = dest->in6_u.u6_addr32[3];
-       st_dest.sin6.sin6_addr.in6_u.u6_addr8[13] = 0xff;
+       st_dest.sin6.sin6_addr.in6_u.u6_addr8[1] = 0x2;
+       st_dest.sin6.sin6_addr.in6_u.u6_addr8[15] = 0x1;
        
        /* Send packet over IP6 */
        return tcpip_tx ( iobuf, &icmp6_protocol, NULL, &st_dest.st,
-- 
1.7.2.5

_______________________________________________
gPXE-devel mailing list
gPXE-devel@etherboot.org
http://etherboot.org/mailman/listinfo/gpxe-devel

Reply via email to