| 2128 | } |
| 2129 | |
| 2130 | void |
| 2131 | nd6_grab_holdchain(struct llentry *ln, struct mbuf **chain, |
| 2132 | struct sockaddr_in6 *sin6) |
| 2133 | { |
| 2134 | |
| 2135 | LLE_WLOCK_ASSERT(ln); |
| 2136 | |
| 2137 | *chain = ln->la_hold; |
| 2138 | ln->la_hold = NULL; |
| 2139 | lltable_fill_sa_entry(ln, (struct sockaddr *)sin6); |
| 2140 | |
| 2141 | if (ln->ln_state == ND6_LLINFO_STALE) { |
| 2142 | /* |
| 2143 | * The first time we send a packet to a |
| 2144 | * neighbor whose entry is STALE, we have |
| 2145 | * to change the state to DELAY and a sets |
| 2146 | * a timer to expire in DELAY_FIRST_PROBE_TIME |
| 2147 | * seconds to ensure do neighbor unreachability |
| 2148 | * detection on expiration. |
| 2149 | * (RFC 2461 7.3.3) |
| 2150 | */ |
| 2151 | nd6_llinfo_setstate(ln, ND6_LLINFO_DELAY); |
| 2152 | } |
| 2153 | } |
| 2154 | |
| 2155 | int |
| 2156 | nd6_output_ifp(struct ifnet *ifp, struct ifnet *origifp, struct mbuf *m, |
no test coverage detected