aboutsummaryrefslogtreecommitdiff
path: root/embassy-net/src/lib.rs
diff options
context:
space:
mode:
authorDario Nieuwenhuis <[email protected]>2022-12-07 15:55:46 +0100
committerDario Nieuwenhuis <[email protected]>2022-12-13 16:18:39 +0100
commitac74613b5a7be72acd8d5259055963f8b4aba7fd (patch)
treebcc287e4edf65e0bb15cb5ff880aa0319ebf254f /embassy-net/src/lib.rs
parent47747d3b73f392e53ead8ff49cd09fd017df3215 (diff)
net: remove packet pool.
The pool was prone to deadlocks, especially due to having a single pool for rx+tx. If the pool got full with rx'd packets it would deadlock because processing a rx packet requires doing another allocation on the pool, for the possibly tx'd response, before deallocating the rx'd packet. This also allows Device impls to allocate the packet memory in a particular RAM kind, if needed for example to do DMA. The `Device` trait is now token-based, like smoltcp's. In the end, this is better because it allows callers to manage memory however they want (including with a pool if they want to).
Diffstat (limited to 'embassy-net/src/lib.rs')
-rw-r--r--embassy-net/src/lib.rs6
1 files changed, 1 insertions, 5 deletions
diff --git a/embassy-net/src/lib.rs b/embassy-net/src/lib.rs
index edb969842..e18e819cb 100644
--- a/embassy-net/src/lib.rs
+++ b/embassy-net/src/lib.rs
@@ -8,12 +8,9 @@
8// This mod MUST go first, so that the others see its macros. 8// This mod MUST go first, so that the others see its macros.
9pub(crate) mod fmt; 9pub(crate) mod fmt;
10 10
11mod device; 11pub mod device;
12mod packet_pool;
13mod stack; 12mod stack;
14 13
15pub use device::{Device, LinkState};
16pub use packet_pool::{Packet, PacketBox, PacketBoxExt, PacketBuf, MTU};
17pub use stack::{Config, ConfigStrategy, Stack, StackResources}; 14pub use stack::{Config, ConfigStrategy, Stack, StackResources};
18 15
19#[cfg(feature = "tcp")] 16#[cfg(feature = "tcp")]
@@ -23,7 +20,6 @@ pub mod tcp;
23pub mod udp; 20pub mod udp;
24 21
25// smoltcp reexports 22// smoltcp reexports
26pub use smoltcp::phy::{DeviceCapabilities, Medium};
27pub use smoltcp::time::{Duration as SmolDuration, Instant as SmolInstant}; 23pub use smoltcp::time::{Duration as SmolDuration, Instant as SmolInstant};
28#[cfg(feature = "medium-ethernet")] 24#[cfg(feature = "medium-ethernet")]
29pub use smoltcp::wire::{EthernetAddress, HardwareAddress}; 25pub use smoltcp::wire::{EthernetAddress, HardwareAddress};