Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions src/iface/interface/ethernet.rs
Original file line number Diff line number Diff line change
Expand Up @@ -64,8 +64,8 @@ impl InterfaceInner {
frame.set_src_addr(src_addr);

f(frame);
});

Ok(())
})
Ok(())
}
}
21 changes: 10 additions & 11 deletions src/iface/interface/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1199,8 +1199,6 @@ impl InterfaceInner {
#[cfg(feature = "proto-ipv6")]
IpVersion::Ipv6 => frame.set_ethertype(EthernetProtocol::Ipv6),
}

Ok(())
};

// Emit function for the IP header and payload.
Expand Down Expand Up @@ -1272,7 +1270,7 @@ impl InterfaceInner {
tx_token.consume(tx_len, |mut tx_buffer| {
#[cfg(feature = "medium-ethernet")]
if matches!(self.caps.medium, Medium::Ethernet) {
emit_ethernet(&ip_repr, tx_buffer)?;
emit_ethernet(&ip_repr, tx_buffer);
tx_buffer = &mut tx_buffer[EthernetFrame::<&[u8]>::header_len()..];
}

Expand All @@ -1282,9 +1280,9 @@ impl InterfaceInner {
// Copy the IP header and the payload.
tx_buffer[..first_frag_ip_len]
.copy_from_slice(&frag.buffer[..first_frag_ip_len]);
});

Ok(())
})
Ok(())
}

#[cfg(not(feature = "proto-ipv4-fragmentation"))]
Expand All @@ -1301,13 +1299,14 @@ impl InterfaceInner {
tx_token.consume(total_len, |mut tx_buffer| {
#[cfg(feature = "medium-ethernet")]
if matches!(self.caps.medium, Medium::Ethernet) {
emit_ethernet(&ip_repr, tx_buffer)?;
emit_ethernet(&ip_repr, tx_buffer);
tx_buffer = &mut tx_buffer[EthernetFrame::<&[u8]>::header_len()..];
}

emit_ip(&ip_repr, tx_buffer);
Ok(())
})
});

Ok(())
}
}
// We don't support IPv6 fragmentation yet.
Expand All @@ -1321,13 +1320,13 @@ impl InterfaceInner {
tx_token.consume(total_len, |mut tx_buffer| {
#[cfg(feature = "medium-ethernet")]
if matches!(self.caps.medium, Medium::Ethernet) {
emit_ethernet(&ip_repr, tx_buffer)?;
emit_ethernet(&ip_repr, tx_buffer);
tx_buffer = &mut tx_buffer[EthernetFrame::<&[u8]>::header_len()..];
}

emit_ip(&ip_repr, tx_buffer);
Ok(())
})
});
Ok(())
}
}
}
Expand Down