HomeFreeBSD

* Add llt_clear_entry() callback which is able to do all lle

Description

  • Add llt_clear_entry() callback which is able to do all lle cleanup including unlinking/freeing
  • Relax locking in lltable_prefix_free_af/lltable_free
  • Do not pass @llt to lle free callback: it is always NULL now.
  • Unify arptimer/nd6_llinfo_timer: explicitly unlock lle avoiding unlock/lock sequinces
  • Do not pass unlocked lle to nd6_ns_output(): add nd6_llinfo_get_holdsrc() to retrieve preferred source address from lle hold queue and pass it instead of lle.
  • Finally, make nd6_create() create and return unlocked lle
  • Separate defrtr handling code from nd6_free(): use nd6_check_del_defrtr() to check if we need to keep entry instead of performing GC, use nd6_check_recalc_defrtr() to perform actual recalc on lle removal.
  • Move isRouter handling from nd6_cache_lladdr() to separate nd6_check_router()
  • Add initial code to maintain lle runtime flags in sync.

Details

Provenance
melifaroAuthored on
Parents
rS275576: remove opensolaris cyclic code, replace with high-precision callouts
Branches
Unknown
Tags
Unknown

Event Timeline