fn mac_resolution_failed<C: EthernetIpLinkDeviceContext>(
    ctx: &mut C,
    device_id: C::DeviceId,
    address: IpAddr,
) {
    // TODO(brunodalbo) what do we do here in regards to the pending frames?
    //  NDP's RFC explicitly states unreachable ICMP messages must be generated:
    //  "If no Neighbor Advertisement is received after MAX_MULTICAST_SOLICIT
    //  solicitations, address resolution has failed. The sender MUST return
    //  ICMP destination unreachable indications with code 3
    //  (Address Unreachable) for each packet queued awaiting address
    //  resolution."
    //  For ARP, we don't have such a clear statement on the RFC, it would make
    //  sense to do the same thing though.
    let state = &mut ctx.get_state_mut_with(device_id).link;
    if let Some(_) = state.take_pending_frames(address) {
        log_unimplemented!((), "ethernet mac resolution failed not implemented");
    }
}
/// Clears out any pending frames that are waiting for link layer address
/// resolution.
///
/// `mac_resolution_failed` is the common logic used when a link layer address
/// fails to resolve either by ARP or NDP.
Clears out any pending frames that are waiting for link layer address
resolution.

`mac_resolution_failed` is the common logic used when a link layer address
fails to resolve either by ARP or NDP.
Clears out any pending frames that are waiting for link layer address resolution . ` mac_resolution_failed ` is the common logic used when a link layer address fails to resolve either by ARP or NDP .
fn mac_resolution_failed<C: EthernetIpLinkDeviceContext>(
    ctx: &mut C,
    device_id: C::DeviceId,
    address: IpAddr,
) {
    // TODO(brunodalbo) what do we do here in regards to the pending frames?
    //  NDP's RFC explicitly states unreachable ICMP messages must be generated:
    //  "If no Neighbor Advertisement is received after MAX_MULTICAST_SOLICIT
    //  solicitations, address resolution has failed. The sender MUST return
    //  ICMP destination unreachable indications with code 3
    //  (Address Unreachable) for each packet queued awaiting address
    //  resolution."
    //  For ARP, we don't have such a clear statement on the RFC, it would make
    //  sense to do the same thing though.
    let state = &mut ctx.get_state_mut_with(device_id).link;
    if let Some(_) = state.take_pending_frames(address) {
        log_unimplemented!((), "ethernet mac resolution failed not implemented");
    }
}
fn mac_resolution_failed < C : EthernetIpLinkDeviceContext > ( ctx : & mut C , device_id : C :: DeviceId , address : IpAddr , ) { // TODO(brunodalbo) what do we do here in regards to the pending frames? //  NDP's RFC explicitly states unreachable ICMP messages must be generated: //  "If no Neighbor Advertisement is received after MAX_MULTICAST_SOLICIT //  solicitations, address resolution has failed. The sender MUST return //  ICMP destination unreachable indications with code 3 //  (Address Unreachable) for each packet queued awaiting address //  resolution." //  For ARP, we don't have such a clear statement on the RFC, it would make //  sense to do the same thing though. let state = & mut ctx . get_state_mut_with ( device_id ) . link ; if let Some ( _ ) = state . take_pending_frames ( address ) { log_unimplemented ! ( ( ) " " ) ; } }
Clears out any pending frames that are waiting for link layer address
resolution.
Clears out any pending frames that are waiting for link layer address resolution .
ctx
&mut C
device_id
C::DeviceId
address
IpAddr
ctx
&mut C
device_id
C::DeviceId
address
IpAddr