HomeFreeBSD

Convert netinet6/ to use new routing API.

Description

Convert netinet6/ to use new routing API.

  • Remove &ifpp from ip6_output() in favor of ri->ri_nh_info
  • Provide different wrappers to in6_selectsrc: Currently it is used by 2 differenct type of customers:
    • socket-based one, which all are unsure about provided address scope and
    • in-kernel ones (ND code mostly), which don't have any sockets, options, crededentials, etc. So, we provide two different wrappers to in6_selectsrc() returning select source.
  • Make different versions of selectroute(): Currenly selectroute() is used in two scenarios:
    • SAS, via in6_selecsrc() -> in6_selectif() -> selectroute()
    • output, via in6_output -> wrapper -> selectroute() Provide different versions for each customer:
    • fib6_lookup_nh_basic()-based in6_selectif() which is capable of returning interface only, without MTU/NHOP/L2 calculations
    • full-blown fib6_selectroute() with cached route/multipath/ MTU/L2
  • Stop using routing table for link-local address lookups
  • Add in6_ifawithifp_lla() to make for-us check faster for link-local
  • Add in6_splitscope / in6_setllascope for faster embed/deembed scopes

Details

Provenance
melifaroAuthored on
Parents
rS287058: Convert several places inside netinet6/ to new api.
Branches
Unknown
Tags
Unknown