Commit graph

212 commits

Author SHA1 Message Date
Scott Mabin
b1ef009c6b Add tcp capacity impls 2023-08-15 15:31:23 +01:00
Scott Mabin
fbec797d64 embassy-net:tcp:send/recv
- Add async versions of smoltcp's `send` and `recv` closure based API.
2023-08-14 15:33:02 +01:00
Dario Nieuwenhuis
5d5cd23715
Update to embedded-io 0.5 (#1752) 2023-08-07 13:43:09 +02:00
Jan Niehusmann
33778d3772 Fix link to embassy-time in embassy-net/README.md 2023-08-02 20:13:48 +00:00
Ruben De Smet
b394cc3394
Enable IEEE802.15.4 doc building 2023-07-31 15:02:55 +02:00
Ruben De Smet
bdd59b8988
Only skip default-gateway assignment with Medium::Ip 2023-07-31 14:21:27 +02:00
Ruben De Smet
9f55228be0
Use hardware_address() for all media 2023-07-31 14:21:26 +02:00
Ruben De Smet
83ff3cbc69
Add Ip hardware address to Driver 2023-07-31 14:21:26 +02:00
Ruben De Smet
4afdce4ec5
Introduce driver::HardwareAddress without smoltcp dependency 2023-07-31 14:21:26 +02:00
Ruben De Smet
69c0a89aa5
Use HardwareAddress in Driver 2023-07-28 16:40:15 +02:00
Ruben De Smet
c3ba08ffb6
Add IEEE802.15.4 address to embassy net Stack 2023-07-28 16:22:03 +02:00
Ruben De Smet
f81ee103bf
Allow ethernet and 802.15.4 to coexist
Co-authored-by: Thibaut Vandervelden <thvdveld@vub.be>
2023-07-28 15:11:24 +02:00
xoviat
2cdd593290 Merge branch 'main' of https://github.com/embassy-rs/embassy into mac 2023-07-21 16:24:48 -05:00
ivmarkov
98576c17b6
Fix multicast support (#1670) 2023-07-18 17:35:20 +02:00
bjoernQ
6bf4717b0a cfg-gate unapply_config_v4 2023-07-18 10:57:05 +02:00
bjoernQ
f581831b86 Make dual-stack work in embassy-net 2023-07-18 10:39:29 +02:00
xoviat
0b63af3313 wpan: prepare net impl. 2023-07-15 19:02:04 -05:00
Roy Buitenhuis
f192f44018 fmt 2023-07-12 11:32:02 +02:00
Roy Buitenhuis
b81c14f442 Add polling fn's for send_to and recv_from in UdpSocket. 2023-07-12 11:32:02 +02:00
Roy Buitenhuis
f54e1cea90 Add poll functions on UdpSocket. 2023-07-12 11:32:02 +02:00
Roy Buitenhuis
151557fec3 Re-export smoltcp::wire::IpEndpoint 2023-07-07 16:38:56 +02:00
Dario Nieuwenhuis
d137286981 Release embassy-time v0.1.2 2023-07-06 01:29:44 +02:00
Dario Nieuwenhuis
6eac49186d Release embassy-net v0.1 2023-06-29 19:55:32 +02:00
Dániel Buga
59f829c6cc
Make StackResources::new() const 2023-06-28 15:03:57 +02:00
Dario Nieuwenhuis
715bf20c41 Update smoltcp to 0.10 2023-06-26 20:13:55 +02:00
Dario Nieuwenhuis
64cba950e5 Update smoltcp. 2023-06-26 11:43:28 +02:00
Dario Nieuwenhuis
8a1d3d5c84 Merge branch 'main' into v4-optional 2023-06-08 19:38:15 +02:00
Ruben De Smet
2455fd4dbe
net: Add documentation to new Config system 2023-06-07 13:18:19 +02:00
Ruben De Smet
352f0b6c38
net: Support dual stack IP 2023-06-07 13:18:19 +02:00
Russ Hewgill
2eb08b2dc9 updated can_recv and may_recv to match the smoltcp functions. 2023-06-06 09:49:38 -07:00
Ruben De Smet
ae1dedc059
net: proto-ipv6 in is_config_up 2023-06-06 17:58:46 +02:00
Ruben De Smet
18578fd15f
net: Allow a combined use of IPv4 and IPv6 DNS servers 2023-06-06 17:58:45 +02:00
Ruben De Smet
d7f674e410
net: Allow setting an IPv6 in the stack 2023-06-06 17:58:45 +02:00
Ruben De Smet
e871324bde
net: StaticV4 config behind proto-ipv4 2023-06-06 17:58:45 +02:00
Ruben De Smet
54bab33c73
Rename StaticConfig to StaticConfigV4 2023-06-06 17:04:21 +02:00
Ruben De Smet
44624b2d7a
Put proto-ipv4 behind a feature flag 2023-06-05 16:45:40 +02:00
Matt Johnston
b20427b2ec net: Make flush() wait for RST packets from abort()
Add docs to note that dropping a TcpSocket early will
prevent the .abort() RST from being sent.
2023-05-25 20:43:36 +08:00
Dario Nieuwenhuis
9f7392474b Update Rust nightly. 2023-05-19 17:12:39 +02:00
Dario Nieuwenhuis
d07821d851 net: document crate. 2023-05-15 00:56:09 +02:00
Dario Nieuwenhuis
62857bdb2d net: reexport UDP PacketMetadata under the udp module. 2023-05-15 00:55:34 +02:00
Dario Nieuwenhuis
26d7610554 net: do not use smoltcp Instant/Duration in public API. 2023-05-15 00:53:30 +02:00
Dario Nieuwenhuis
2d65373f63 Remove unused feature(type_alias_impl_trait). 2023-05-14 23:44:53 +02:00
Roy Buitenhuis
a2ac1eed1b Add extra feature flags to fix build without dhcp. 2023-04-18 22:11:15 +02:00
Dario Nieuwenhuis
577f060d24 Release embassy-sync v0.2.0 2023-04-13 23:40:49 +02:00
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
Dario Nieuwenhuis
41a563aae3 net: document all features 2023-02-13 03:11:16 +01:00
Ulf Lilleengen
a2b8921ff3
fix: cfg guard for ipv6 2023-02-10 19:38:17 +01:00
Ulf Lilleengen
128a453163
remove unneeded features 2023-02-10 19:04:54 +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
Dario Nieuwenhuis
102b2e52cb net: use released smoltcp 0.9.0 2023-02-07 18:15:26 +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
72bb9b53a2 net: remove unused pool-x features 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
Aaron Tsui
95fdc7c552 fix net README.md 2022-12-13 14:06:37 +08: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
3135ad016d Bump embedded-nal-async to 0.3.0 2022-11-29 12:05:46 +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
chrysn
6718ca3a94 all Cargo.toml: Add license to all crate Cargo.toml files
Closes: https://github.com/embassy-rs/embassy/issues/1002
2022-10-07 12:41:56 +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
5327b9c289 time: add more tick rates, use 1mhz as default. 2022-09-02 00:59:34 +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
ce407474a7 net: update atomic-pool, atomic-polyfill. 2022-08-18 14:45:07 +02:00
Dario Nieuwenhuis
5daa173ce4 Split embassy-time from embassy-executor. 2022-08-18 01:22:30 +02:00
Dario Nieuwenhuis
68931a36d5 More docserver metadata fix. 2022-08-15 20:42:36 +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