Commit Graph

94 Commits

Author SHA1 Message Date
Roy Buitenhuis
46b437dea0 Wait for waker when no data is available on UDP socket. 2023-03-15 13:56:40 +01:00
Leon Camus
e484cb1b87 refactor: Multicast method modifiers on stack to public
revert: udp.rs
2023-03-08 12:37:00 +01:00
Leon Camus
993875e11f fix: Add qualified imports 2023-03-07 23:52:25 +01:00
Leon Camus
2087561003 lint: Remove unused imports 2023-03-07 23:51:10 +01:00
Leon Camus
b62e3e1d47 lint: Cargo fmt 2023-03-07 23:40:31 +01:00
Leon Camus
c22218c72e feat: Add multicast to udp socket 2023-03-06 18:43:37 +01:00
kbleeke
d5f88e578c embassy-net: DNS resolver detects when name is just an IP address and returns immediately 2023-02-25 21:52:15 +01:00
kbleeke
035de6f3ff embassy-net: add flush to TcpSocket and TcpWriter as an inherent method 2023-02-22 14:45:17 +01:00
kbleeke
f1a4db44c4 Implement flush for TcpSocket 2023-02-22 13:57:40 +01:00
Ulf Lilleengen
a2b8921ff3
fix: cfg guard for ipv6 2023-02-10 19:38:17 +01:00
Ulf Lilleengen
a7d3ef9122
scope dns operations within a cfged block 2023-02-10 19:00:00 +01:00
Ulf Lilleengen
32c3725631
add waker for DNS slots 2023-02-10 18:44:51 +01:00
Ulf Lilleengen
48dff04d64
Bump max queries 2023-02-10 18:34:21 +01:00
Ulf Lilleengen
472473d8c1
Create slice using ::Owned 2023-02-10 18:32:35 +01:00
Ulf Lilleengen
6e68353a93
attempt removing option 2023-02-10 18:30:17 +01:00
Ulf Lilleengen
7ae47cb1d8
Expose api on Stack and add doc
Make it work with smoltcp 0.9
2023-02-10 18:20:50 +01:00
Ulf Lilleengen
cd440a49d6
Rewrite to use a single socket 2023-02-10 17:46:08 +01:00
Ulf Lilleengen
614740a1b2
cargo fmt 2023-02-10 17:45:25 +01:00
Ulf Lilleengen
c203cefe01
Handle cancellation 2023-02-10 17:45:19 +01:00
Ulf Lilleengen
9cfea693ed
Add DNS socket to embassy-net 2023-02-10 17:45:03 +01:00
Dario Nieuwenhuis
5edb3052e6 net: reexport driver crate. 2023-02-08 17:52:02 +01:00
Ulf Lilleengen
768fe699cf
Pass the correct buffer when creating TcpSocket 2023-01-31 19:36:41 +01:00
Ulf Lilleengen
2a0ea52878
add missing copy of icmpv6 checksum
add proto-ipv6 feature to stm32h7 example to catch issues in CI
2023-01-24 10:25:37 +01:00
Davide Della Giustina
f38d54a6a6
IPv6 has no checksum 2023-01-24 08:15:22 +00:00
Dario Nieuwenhuis
78c2c1709b net: update smoltcp. 2023-01-19 14:44:01 +01:00
Dario Nieuwenhuis
570ffab670 net: poll returning false is not an error. No need to repoll. 2023-01-19 14:44:01 +01:00
Paweł Jan Czochański
8f4fae9b36 Add smoltcp dhcp socket configuration 2023-01-19 14:44:01 +01:00
Paweł Jan Czochański
2eae12b7f1 Update smoltcp to the newest master 2023-01-19 14:44:01 +01:00
Dario Nieuwenhuis
4a4b593694 net; allow changing MAC addr at runtime. 2022-12-27 01:04:55 +01:00
Dario Nieuwenhuis
1f033d509a net: split driver trait to a separate crate. 2022-12-26 04:49:08 +01:00
Dario Nieuwenhuis
5655c6093f net: use atomic-polyfill on tcp client pool, for thumbv6m support. 2022-12-26 03:34:05 +01:00
Dario Nieuwenhuis
10c9cc31b1 Remove unnecessary use of atomic-polyfill.
Only use it when CAS is actually needed.
2022-12-23 20:46:49 +01:00
Dario Nieuwenhuis
aaaf5f23a8 net: move stack into lib.rs 2022-12-13 16:18:39 +01:00
Dario Nieuwenhuis
ac74613b5a 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).
2022-12-13 16:18:39 +01:00
Dario Nieuwenhuis
f7fe0c1441 net: update smoltcp 2022-12-07 00:28:38 +01:00
Dario Nieuwenhuis
02abe00439 net: don't use UnsafeCell.
The "must not be called reentrantly" invariant is too "global" to
maintain comfortably, and the cost of the RefCell is negligible,
so this was a case of premature optimization.
2022-12-03 00:56:16 +01:00
Dario Nieuwenhuis
1e2fb0459d Switch to async-fn-in-trait 2022-11-25 21:02:06 +01:00
Dario Nieuwenhuis
eeb072d9cb Update Rust nightly. 2022-10-26 16:47:29 +02:00
Dario Nieuwenhuis
a0487380da Replace futures::future::poll_fn -> core::future::poll_fn. 2022-09-22 16:42:49 +02:00
Dario Nieuwenhuis
897b72c872 Update Rust nightly.
Removes feature(generic_associated_types)
2022-09-22 16:38:14 +02:00
Dario Nieuwenhuis
464ae67108 net: feature-gate nightly-only async traits to allow building on stable. 2022-08-30 19:43:32 +02:00
Dario Nieuwenhuis
21072bee48 split embassy-util into embassy-futures, embassy-sync. 2022-08-22 22:18:13 +02:00
Dario Nieuwenhuis
5daa173ce4 Split embassy-time from embassy-executor. 2022-08-18 01:22:30 +02:00
bors[bot]
6ffca81a38
Merge #880
880: Add UDP socket support r=Dirbaio a=arturkow2000



Co-authored-by: Artur Kowalski <artur.kowalski@3mdeb.com>
Co-authored-by: Artur Kowalski <arturkow2000@gmail.com>
2022-08-11 14:17:11 +00:00
Artur Kowalski
ef473827a2 Remove UdpIo struct
UdpIo was shared by split sender/receives halves. Since split() API is
no more UdpIo is not needed and its APIs may be moved into UdpSocket.
2022-08-11 15:52:32 +02:00
Dario Nieuwenhuis
0a98f9f48e
net: make TcpIo private.
It's just an implementation detail to share code between Socket, Reader, Writer. It wasn't supposed to be public.
2022-08-11 13:58:13 +02:00
Artur Kowalski
b97983242d Simplify UDP code
Drop unneeded APIs: remove impls of embedded_io error traits, remove
flush() and split() methods.
2022-08-11 08:23:18 +02:00
Artur Kowalski
d5ab0d3ebb Add UDP socket support 2022-08-10 19:40:35 +02:00
Ulf Lilleengen
87401c49b7 Fix formatting 2022-08-09 14:51:32 +02:00
Ulf Lilleengen
80c1551153 Wrap buffers in a single state type 2022-08-09 14:43:55 +02:00