So, the more I read about IPv6 for my CCNA, the more I get confused.
At what point does the host use "::"unspecified address vs its' link local FE80: as source address when it sends out NDP RA (FF02::2) to learn prefix/prefix length from routers?
From what I understand after going through the Chapters in the Odom book it seems like when a host tries to determine its' link local addr's uniqueness during the DAD process, it uses :: as source and the tentative link local addr as destination. When the host tries to learn about the default router, prefix/prefix length with NDP RS, the host would again use :: as source address. Router would then reply with RA with FF02::1 multicast that contains the prefix/length and router link local addr information.
If the host did not receive an NDP RA from the RS it sent out, the host would then try to learn address with a dhcp solicitation message with its link local address address previously learned as source addr. A destination addr of FF02::1:2 will be used. DHCP server replies to the FE08:

source addr and the host sends out NDP NS again as part of ipv6 DAD with the link local of the host as source and the newly learned address from the dhcp server as destination to test for neighbor replies. However, if the address was learned through the use of SLAAC and eui-64, then that would be it because
"the Cisco implementation of duplicate address detection in the Cisco software does not verify the uniqueness of anycast or global addresses that are generated from 64-bit interface identifiers." (quoted from cisco's support forum - which is contradicting from what I've read on the Odom book that basically says DAD is used everytime a host learned an IPv6 address)
Am I right on what determines when the host uses :: as the source vs FE80 link local addr when it sends its NDP RS message?
OR may be I got my concept all wrong? Please jump in and comment!