It matters. This address is required.
Actually I am not so sure, there is no defined semantic of flush. I would
be ok with all three solutions: leave it as is, always add link-local
address (it does not matter if we don't have a link-local address on
In your scenario, the link local route has been removed manually, not by thethat interface, as a global scoped one is just fine enough) or make flush not
remove the link-local address (but this seems a bit too special cased for me).
1) In case if we leave it as it is, there is rfc 6724 rule 2 to be considered (
previously rfc 3484)
Rule 2: Prefer appropriate scope.
If Scope(SA) < Scope(SB): If Scope(SA) < Scope(D), then prefer SB and
otherwise prefer SA. Similarly, if Scope(SB) < Scope(SA): If
Scope(SB) < Scope(D), then prefer SA and otherwise prefer SB.
Test:
Destination: fe80::2(LS)
Candidate Source Addresses: 3ffe::1(GS) or fec0::1(SS) or LLA(LS)
Result: LLA(LS)
Scope(LLA) < Scope(fec0::1): If Scope(LLA) < Scope(fe80::2), no, prefer LLA
Scope(LLA) < Scope(3ffe::1): If Scope(LLA) < Scope(fe80::2), no, prefer LLA
Now the above test fails since the route itself is not present, and the test
assumes that the route gets added since the LLA is not removed during the test
A link-local Address yes, it's a MUST. But having only the link local route will
2) having a LLA always helps in NDP i think
You can flush by specifying the prototype:
3) making flush not remove link-local address will be chnaging functionality of
ip flush command