whitequark
be7750486f
Bump log dependency to version 0.4. NFC.
...
This doesn't affect downstream code because log 0.3.9 is a facade
crate implemented in terms of log 0.4, and so log 0.3 and log 0.4
APIs can be used together.
2019-06-22 08:31:11 +00:00
Astro
49f638e2d2
Implement DHCPv4 client + example.
...
Closes : #186
Approved by: whitequark
2019-05-14 00:37:43 +08:00
Kornel
55d1e9c997
Update Cargo.toml
...
Add a second category that's specifically for TCP
2019-03-30 19:45:29 +00:00
whitequark
bbc526fcd6
Fix rust-1.28 feature name (should be rust_1.28).
2018-10-29 07:05:49 +00:00
whitequark
7f5fc4e841
Bump version.
2018-10-29 07:02:57 +00:00
whitequark
2b7a25b1e2
Add an ARTIQ-specific cargo feature "rust-1.28".
...
This cargo feature only exists because (a) ARTIQ uses a fork of Rust,
(b) Rust has some ridiculous renaming going on in the alloc crate,
(c) smoltcp exists because of ARTIQ.
Such features will not be ordinarily provided by smoltcp.
2018-08-10 14:53:28 +00:00
Astro
a8f2725784
Implement IGMPv1/v2 processing.
...
Closes : #178
Approved by: whitequark
2018-08-01 10:26:51 +08:00
Astro
633d89b78e
Add a few DHCP options
...
Closes : #255
Approved by: whitequark
2018-07-31 19:26:47 +08:00
Valentin Lorentz
728ae3fbb5
Add support for arbitrarily many routes instead of only gateways.
...
Closes : #219
Approved by: whitequark
2018-06-10 05:31:08 +08:00
Valentin Lorentz
2d716883b6
Add support for IPv6 gateways.
...
Closes : #207
Approved by: dlrobertson
2018-05-14 09:39:39 +08:00
Dan Robertson
5bc3ec35a5
cargo: autodiscover should be off for examples
...
Ensure that cargo does not attempt to autodiscover examples. This causes
problems with utils.rs and ensures that an example section exists in the
Cargo.toml.
2018-05-08 15:23:48 +00:00
Dan Robertson
bed3d8bd4b
Add Address Resolution for IPv6
...
Add Address Resolution via NDISC for IPv6.
Closes : #196
Approved by: whitequark
2018-05-07 23:49:56 +08:00
Dan Robertson
bca0ff638b
Add NDISC Option Type to wire
...
Add support for NDISC options parsing in wire.
Closes : #167
Approved by: whitequark
2018-03-12 06:08:58 +08:00
whitequark
d4fa764b23
Add the packet2pcap utility.
2018-01-30 03:24:50 +00:00
whitequark
3e96551004
Bump `managed` dependency to 0.5.
2018-01-05 22:44:25 +00:00
Dan Robertson
439e0a2cc1
Add the proto-ipv4 feature.
2017-12-24 13:28:59 +00:00
whitequark
fb11c4a84d
Convert the stress.rs example into a simple benchmark.
...
There are no more bugs exposed by stress.rs as far as I can tell,
so let's make it do something more useful.
2017-12-22 20:59:30 +00:00
whitequark
ee6c1f34b3
Build release testsuite binaries with complete debug information.
2017-12-22 19:38:17 +00:00
whitequark
f1a7fbe973
Split `poll_at`/`poll_delay` out of `poll`.
...
The previous model was flawed. Consider the following case:
* The main loop looks as follows (pseudocode):
loop {
let _ = (tcp:1234).read_all()
wait(iface.poll())
}
* The remote end is continuously transmitting data and at some
point fills the window of (tcp:1234), stopping the transmission
afterwards.
* The local end processes the packets and, as a part of egress
routine, emits an ACK. That also updates the window, and
the socket's poll_at() routine returns None, since there is
nothing to transmit or retransmit.
* The local end now waits indefinitely even though it can start
processing the data in the socket buffers right now.
2017-12-22 12:59:52 +00:00
whitequark
5ea177e6ab
Add a stress test.
...
Run it without the `log` feature and in release mode:
$ cargo run --release \
--no-default-features \
--features std,phy-tap_interface,socket-tcp \
--example stress tap0 \
[reader|writer]
There are currently two bugs exposed by it:
* a crash in the reader mode,
* slow-down in the writer mode.
2017-12-22 09:43:00 +00:00
whitequark
6d6635a4a9
Oops, don't make examples depend on a nonexistent feature.
...
It's a Cargo bug that this is not an error (and thus went unnoticed).
2017-12-22 09:29:56 +00:00
whitequark
8b6050f711
Clean up our feature story and more aggressively test features.
2017-12-22 08:54:58 +00:00
whitequark
df65c0e6ae
Unbreak `cargo test --no-default-features --features default`.
...
I'm not sure why is this needed, but it broke CI.
2017-12-18 15:10:50 +00:00
whitequark
8863eb8db1
Add an HTTP client example.
2017-12-18 14:53:09 +00:00
Dan Robertson
b97c592671
Add IPv6 address and cidr to wire
...
- Add the ipv6 feature
- Ensure a travis build with the ipv6 feature enabled.
- Add the necessary infrastructure to wire for ipv6 support.
- Ipv6Address
- Ipv6Cidr
- Add Ipv6 Address and Cidr parsing to parsers
- Add basic tests.
2017-11-29 12:57:22 +00:00
whitequark
eaa50d0003
Rewrite the ARP cache to allow for flood protection and expiration.
2017-11-21 10:53:55 +00:00
Dan Robertson
adb5014780
Add ICMP sockets
...
- Add support for ICMP sockets
- Add tests for ICMP sockets
- Rename proto-<type> features to socket-<type>
- Update documentation
2017-11-09 00:08:24 +00:00
whitequark
d9fa7f6bc6
Rename proto-* features back to socket-*.
...
A proto-* feature does not make sense for ICMP, where the protocol
is always enabled, but sockets, not.
2017-11-06 09:51:03 +00:00
whitequark
a9a00baa49
Rename Cargo features: socket-* → proto-*.
2017-10-25 00:20:40 +00:00
whitequark
4826d37c45
Allow disabling any of: raw, TCP or UDP sockets.
2017-09-25 00:20:22 +00:00
whitequark
0a8a962e94
Reorganize features using namespaces, to match module hierarchy.
...
I'm about to add a whole lot more features, and it's going to get
quite confusing otherwise.
2017-09-24 23:51:19 +00:00
whitequark
73462b9503
Bump version.
2017-09-22 20:01:44 +00:00
whitequark
94e3109ab0
Update features to reflect merge of alloc and collections crates.
2017-09-22 19:54:47 +00:00
whitequark
75ddbe9776
Add a bare-metal usage example.
2017-07-14 03:18:11 +00:00
Egor Karavaev
8d7fa94a6d
Add the `ping` example.
2017-06-21 03:51:02 +00:00
Egor Karavaev
59fc0c0358
Factor out the "raw_socket" and "tap_interface" features
...
This makes it possible to build smoltcp with the "std" feature on platforms
without libc, such as redox.
2017-06-15 10:12:11 +00:00
whitequark
6ad8872e15
Bump version.
...
Really, this should be done immediately after release and not
immediately before, like I've been doing it.
2017-03-07 10:33:28 +00:00
whitequark
ad91787c47
Bump version.
2017-03-05 06:16:18 +00:00
whitequark
9ce66375c4
Add the "embedded" crate category.
2017-03-05 05:49:53 +00:00
whitequark
493a319132
Remove the `use_` prefix from feature names.
...
I haven't realized that a feature `log` with an optional crate
dependency `log` activates that dependency, and added the prefix
to avoid a "clash". This is unnecessary.
2017-03-05 05:49:38 +00:00
whitequark
f49723bbf9
Add a TCP client example.
2017-03-05 04:47:45 +00:00
whitequark
d20c98f870
Factor out common code from examples.
2017-03-05 04:19:19 +00:00
whitequark
c0074eda11
Add the log crate to dev-dependencies.
2017-01-31 11:32:53 +00:00
whitequark
1bf16b1f52
Bump version.
2017-01-25 06:55:53 +00:00
whitequark
368b954a3c
Bump to 0.2.0.
2017-01-23 17:28:17 +00:00
whitequark
9a911ab0e8
Update dev-dependencies.
2017-01-23 17:27:53 +00:00
whitequark
34d32f67a2
Gate the really verbose log messages behind a feature.
...
Otherwise, trying to use the socket buffers instead of BufReader/
BufWriter is doomed to overwhelm the application logic.
2017-01-19 12:23:32 +00:00
whitequark
234e5ef29e
Implement socket sets.
2017-01-11 04:05:41 +00:00
whitequark
37afb84d74
Add the use_collections feature.
2017-01-10 12:09:26 +00:00
whitequark
0e006383f2
Use Managed/ManagedSlice for EthernetInterface.
2017-01-10 11:37:12 +00:00