Appendix E. Implementation Issues
This appendix discusses various implementation issues and provides guidance for Neighbor Discovery implementers.
E.1. Link-Layer Address Changes
When a node's link-layer address changes, several issues arise:
Issue: Cached entries on other nodes become invalid Solution: Send unsolicited Neighbor Advertisements to update neighbors' caches
Issue: Timing of updates may result in packet loss Solution: Send multiple unsolicited NAs (up to MAX_NEIGHBOR_ADVERTISEMENT)
E.2. Duplicate Address Detection Timing
Issue: Race conditions during DAD
- Two nodes may simultaneously perform DAD for the same address
- Both may conclude the address is available
Solution:
- Use random delays before starting DAD (up to MAX_RTR_SOLICITATION_DELAY)
- Properly handle DAD failures and retry with different addresses
E.3. Router Advertisement Timing
Issue: Coordinating RA transmission across multiple routers Solution:
- Use random jitter in RA intervals
- Respond to RS with random delay (0 to MAX_RA_DELAY_TIME)
E.4. Neighbor Cache Size
Issue: Limited memory for Neighbor Cache entries Solution:
- Implement garbage collection (remove STALE entries first)
- Prioritize REACHABLE entries
- Use Least Recently Used (LRU) eviction policy
E.5. Destination Cache Management
Issue: Destination Cache can grow very large Solution:
- Implement aging and size limits
- Remove entries with expired PMTU information first
- Integrate with Neighbor Cache cleanup
E.6. Multicast Group Management
Issue: Managing solicited-node multicast groups Solution:
- Join/leave groups as addresses are added/removed
- Handle multiple addresses mapping to same solicited-node group
E.7. Performance Optimization
Concurrent Address Resolution:
- Process multiple address resolutions in parallel
- Queue packets during resolution
Fast Path Processing:
- Optimize for REACHABLE neighbors (most common case)
- Cache frequently used Destination Cache entries
E.8. Security Implementation
SEND Integration:
- Gracefully handle mixed SEND/non-SEND environments
- Provide configuration options for security policies
Rate Limiting:
- Protect against ND message flooding
- Limit Neighbor Cache entry creation rate