ref: 856cac0192e58ab4e8bab59f50a4d226247a5ff5
parent: e35246704f9925151a2b5ca759e7ed950d957999
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Tue Aug 26 17:29:37 EDT 2014
ip: set arp entry for own v6 address when not tentative after running ip/ipconfig -6, we are unable to ping our own link-local address and the arp daemon sends out useless neighbor solicitation requests to itself. this change adds an arp entry for our ipv6 address. however, this must not be done for tentative interface configuration.
--- a/sys/src/9/ip/ipifc.c
+++ b/sys/src/9/ip/ipifc.c
@@ -538,8 +538,13 @@
wunlock(ifc);
poperror();
- if(tentative && sendnbrdisc)
- icmpns(f, 0, SRC_UNSPEC, ip, TARG_MULTI, ifc->mac);
+ if(!isv4(ip) && ipcmp(ip, IPnoaddr) != 0){+ if(!tentative)
+ arpenter(f, V6, ip, ifc->mac, 6, 0);
+ else if(sendnbrdisc)
+ icmpns(f, 0, SRC_UNSPEC, ip, TARG_MULTI, ifc->mac);
+ }
+
return nil;
}
@@ -1566,7 +1571,6 @@
ipv62smcast(net, ip);
addselfcache(f, nifc, lifc, net, Rmulti);
arpenter(f, V6, ip, nifc->mac, 6, 0);
- // (*m->addmulti)(nifc, net, ip);
break;
}
}
--
⑨