aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/bd.rs3
-rw-r--r--src/lib.rs2
2 files changed, 4 insertions, 1 deletions
diff --git a/src/bd.rs b/src/bd.rs
index 9d7ac3c..1afb93b 100644
--- a/src/bd.rs
+++ b/src/bd.rs
@@ -153,6 +153,9 @@ impl<'a, D> IoSlices<'a, D> {
pub(crate) fn mtu(&self) -> usize {
self.mtu
}
+ pub(crate) fn len(&self) -> usize {
+ self.ring.len()
+ }
}
impl<D> IoSlices<'_, D> {
diff --git a/src/lib.rs b/src/lib.rs
index e24ccb7..0eda7f2 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -347,7 +347,7 @@ impl<const N: u8> smoltcp::phy::Device for Enet<N> {
let mut caps = smoltcp::phy::DeviceCapabilities::default();
caps.medium = smoltcp::phy::Medium::Ethernet;
caps.max_transmission_unit = mtu;
- caps.max_burst_size = Some(mtu);
+ caps.max_burst_size = Some(self.tx_ring.len().min(self.rx_ring.len()));
caps.checksum.ipv4 = smoltcp::phy::Checksum::None;
caps.checksum.udp = smoltcp::phy::Checksum::None;