Ole Martin Ruud
f501198a68
Implement fast retransmit for TcpSocket
...
Implement a simple way to discover and respond to three duplicate ACKs
from the reciver of the data. This leads to a fast retransmit of the
last unacknowledged seqment. This is feature is described in [RFC 5681].
Closes : #104
Closes : #214
Approved by: whitequark
2018-05-18 00:40:47 +08:00
Ole Martin Ruud
9533e3ac17
Update the docstrings of PollAt
...
Closes : #214
Approved by: whitequark
2018-05-18 00:40:47 +08:00
Ole Martin Ruud
9694949172
Add conditional compile attr to `is_ingress`
...
Closes : #216
Approved by: whitequark
2018-05-17 06:17:47 +08:00
Ole Martin Ruud
0c59e3f5f9
Implement new type for `poll_at`
...
Change return-type for `poll_at` for sockets to be a `PollAt` instead of
the former `Option<Instant>`.
Closes : #216
Approved by: whitequark
2018-05-17 06:17:47 +08:00
whitequark
ca743cba24
Fix format strings using time to not include extraneous ms suffix.
2018-05-15 14:49:53 +00:00
Valentin Lorentz
a4e42880f8
Ignore unrecognized NDISC options (as per RFC 4861).
...
Closes : #210
Approved by: whitequark
2018-05-15 01:14:32 +08:00
Valentin Lorentz
2d716883b6
Add support for IPv6 gateways.
...
Closes : #207
Approved by: dlrobertson
2018-05-14 09:39:39 +08:00
Valentin Lorentz
2afc538fd9
Add support for IPv6 to ICMP sockets.
...
Closes : #205
Approved by: whitequark
2018-05-10 07:12:33 +08:00
Dan Robertson
435292cc35
wire: Add the FailureType for IPv6 ext hdr options
...
Add the FailureType enumeration that can be acquired from a IPv6
extension header option which determines the required action if the
extension header option type is not known or is not supported.
Closes : #204
Approved by: whitequark
2018-05-09 20:58:50 +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
Kai Lüke
febe22b578
Mention that Probing Zero Windows is not implemented for TCP
...
Closes : #201
Approved by: whitequark
2018-05-08 01:47:24 +08:00
Kai Lüke
fada9d4e27
Update remote_last_win for all ACKs
...
Only ACKs generated by `dispatch` were updating
`remote_last_win` but not the ACKs generated by
`process`, failing to keep track of the last
announced receive window. This left
`window_to_update` to return false in `dispatch`
after the RX buffer was emptied, thus not announcing
that the receive window is not zero anymore.
The change updates `remote_last_win` for immediate
ACKs generated by `process`.
Closes : #200
Approved by: whitequark
2018-05-08 01:27:28 +08:00
Dan Robertson
879e3ea3cd
Update README detailing IPv6 support
...
Add sections detailing the current support for IPv6.
Closes : #196
Approved by: whitequark
2018-05-07 23:49:56 +08: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
010e55beed
Fix ICMPv6 checksum function
...
The ICMPv6 checksum calculation requires the pseudo header.
Closes : #196
Approved by: whitequark
2018-05-07 23:49:56 +08:00
whitequark
6067607442
Fix errors caused by an update to #[deny(unused)].
2018-05-07 15:00:18 +00:00
Michal Podhradsky
0ce9f56c26
Do not export phy::wait on non-Unix platforms
2018-04-29 01:58:53 +00:00
Dan Robertson
867eb1b7f8
NDISC: Improve the representation layer for NDISC
...
Each given NDISC packet type may only include one of a few options.
Instead of including the options in the NDISC repr as a &[u8] include
the packet types available options as `Option<T>`.
Closes : #194
Approved by: whitequark
2018-04-21 00:33:41 +08:00
Dan Robertson
13fe5734ec
Add Repr support for NDISC packets
...
Add Representation layer support for NDISC packets.
2018-04-20 11:09:11 +00:00
Michal Podhradsky
31ab2c788e
Update README.md
2018-04-17 18:04:55 +00:00
Dan Robertson
e97b50419f
Add Packet support for NDISC packet types
...
Add packet layer support for NDISC packet types.
Closes : #180
Approved by: whitequark
2018-04-12 14:04:50 +08:00
Adam Greig
96118d370d
Use core::time::Duration. Closes #182 .
...
Duration is now in core, so we can use that instead of conditional
compilation on std and std::time::Duration.
Closes : #189
Approved by: whitequark
2018-04-11 07:24:32 +08:00
Astro
00b66231e3
Fix DhcpOption::Other serialization.
2018-04-10 20:25:51 +00:00
whitequark
485b46a5e6
fn PacketMetadata::empty() → const PacketMetadata::EMPTY.
...
Fixes #181 .
2018-03-24 03:23:37 +00: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
Corentin Henry
55e75fe85e
document the dhcp packet representation ( phil-opp/smoltcp#1 )
...
Closes : #75
Approved by: whitequark
2018-03-12 02:29:21 +08:00
Philipp Oppermann
745df22709
Create a DHCP wire module
...
Closes : #75
Approved by: whitequark
2018-03-12 02:29:21 +08:00
Philipp Oppermann
da7cffe533
Allow trailing commas in enum_with_unknown macro
...
Closes : #75
Approved by: whitequark
2018-03-12 02:29:21 +08:00
whitequark
6811a6bff1
Update Packet/Repr support table.
2018-03-11 18:18:31 +00:00
Andrew Cann
cc8f45df40
Add EthernetRepr type
2018-03-11 18:17:20 +00:00
Astro
714602b948
Implement wire::igmp.
2018-03-11 18:08:08 +00:00
Dan Robertson
826ba29b72
Add has_solicited_node to EthernetInterface
...
- Add a function to EthernetInterface useful for determining if a
received packet with the source address being a solicited node
address is the solicited node address for an IPv6 address assigned
to the interface.
- Add SOLICITED_NODES_PREFIX to Ipv6Cidr
- Fix some nits
Closes : #175
Approved by: whitequark
2018-03-04 03:23:12 +08:00
Astro
e3e9d9d4c5
Allow broadcast/multicast traffic to UDP sockets
...
Closes : #173
Approved by: whitequark
2018-03-03 06:16:40 +08:00
Astro
cd00d63c51
Add multicast capability to lookup_hardware_addr()
...
Closes : #172
Approved by: whitequark
2018-03-02 08:33:37 +08:00
Astro
8a862f4dbe
Add as_bytes(), is_multicast() to IpAddress
...
Closes : #172
Approved by: whitequark
2018-03-02 08:33:37 +08:00
Dan Robertson
95991d8625
Remove trailing whitespace
...
Closes : #171
Approved by: whitequark
2018-02-26 23:17:40 +08:00
whitequark
b1f0011056
Fix an off-by-1000 in time display in examples/ping.rs.
2018-02-22 12:25:07 +00:00
whitequark
3d12690009
Use storage::PacketBuffer for implementing socket::IcmpSocket.
...
This substantially increases its space efficiency.
2018-02-22 12:23:35 +00:00
whitequark
9353c37a62
Use storage::PacketBuffer for implementing socket::RawSocket.
...
This substantially increases its space efficiency.
2018-02-22 12:05:36 +00:00
whitequark
41de9c7ee0
Distinguish PacketBuffer running out of payload space and capacity.
...
This makes the behavior of UdpSocket resemble that of RawSocket.
2018-02-22 11:57:39 +00:00
whitequark
c474d0c32e
Factor out storage::PacketBuffer from socket::UdpSocket.
2018-02-22 11:34:58 +00:00
Herman J. Radtke III
8c9fc02f1d
Add IPv6 Extension Fragment Header
...
Closes : #168
Approved by: whitequark
2018-02-22 15:19:18 +08:00
Philipp Oppermann
ed2dcaaff9
Use separate metadata and payload buffers for UDP sockets.
...
Co-authored-by: Dan Robertson <danlrobertson89@gmail.com>
2018-02-22 06:33:11 +00:00
Herman J. Radtke III
785637957c
Add IPv6 Extension Hop-by-Hop Options Header
...
Closes : #139
Approved by: whitequark
2018-02-18 06:30:21 +08:00
Dan Robertson
9747733dd7
Use time types in socket
...
Use the time types (Instant and Duration) in the socket modules instead
of a simple u64.
Closes : #141
Approved by: whitequark
2018-02-16 10:44:03 +08:00
Dan Robertson
e0b48caca3
Update phy mod to use new time types
...
Update everything but the socket types to use the new time types instead
of a basic u64
Closes : #141
Approved by: whitequark
2018-02-16 10:44:03 +08:00
Dan Robertson
20d1dd8a4a
Update examples to use time types
...
Closes : #141
Approved by: whitequark
2018-02-16 10:44:02 +08:00
Dan Robertson
1f9e14de71
Update iface and phy_wait to use new time types
...
Update the EthernetInterface poll functions to use Instant and Duration
instead of a simple u64 value.
Closes : #141
Approved by: whitequark
2018-02-16 10:44:02 +08:00
Dan Robertson
8b0ab0dc94
time: Improve time types
...
- Correct from_system_time implementation
- Add missing functions and implementations to Instant type
- Add missing frnction to Duration type
Closes : #141
Approved by: whitequark
2018-02-16 10:44:02 +08:00
Andrew Cann
cf53106208
Add Clone impl to EthernetFrame
...
Closes : #163
Approved by: whitequark
2018-02-16 07:47:24 +08:00