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
Andrew Cann
ec4c48af6c
Add `PrettyPrinter::print` convenience method
...
Closes : #165
Approved by: whitequark
2018-02-16 00:09:52 +08:00
Dan Robertson
1097ba3110
Documentation updates
...
- Update documentation about current support in the wire module
- Ensure the possible panic is documented for Ipv6Option::data_mut
- Add a Repr structure for Ethernet II headers
2018-02-14 18:00:19 +00:00
Andrew Cann
6ee9516697
impl `AsRef<[u8]>` for packet types
...
Closes : #158
Approved by: whitequark
2018-02-08 17:05:46 +08:00
Dan Robertson
9abf54d56e
Add tests for ipv6 in wire::ip
...
- Make a macro to generate the current tests.
- Generate the tests for all versions that are enabled.
Closes : #155
Approved by: whitequark
2018-02-08 14:45:19 +08:00
Andrew Cann
1b308a439e
Relax type constraints on payload_mut methods
...
Closes : #153
Approved by: whitequark
2018-02-06 16:17:15 +08:00
Dan Robertson
e09e20df95
Add basic ICMPv6 reply
...
Add basic ICMPv6 handling
- ICMPv6
- Handle ICMPv6 echo requests
- Send ICMPv6 error messages
- When know listening UDP socket is found in process_udp
- When the next header is not known
- Update icmpv6 test to be more useful
- ICMPv4
- Handle one more case where we are sending too much data
2018-02-05 16:24:25 +00:00
寧靜
49afb3a45a
Add from_netmask()/netmask()/broadcast()/network() methods on IPv4Cidr
2018-02-05 15:13:52 +00:00
Dan Robertson
c3d5790c8e
Improve TimeExceeded and ParamProblem support
...
- Improve TimeExceeded support
- Add support for message codes
- Add the TimeExceeded enum type
- Improve ParamProblem support
- Add support for message codes
- Add the ParamProblem enem type
Closes : #152
Approved by: whitequark
2018-02-05 22:55:04 +08:00
Andrew Cann
01f3b53e70
Add Clone impl to Packet types
2018-02-05 14:34:36 +00:00
Andrew Cann
a9fc8c225b
Add conversions to/from std wire types
2018-02-05 13:23:25 +00:00
寧靜
96fd18ff8f
Add missing #[cfg(feature = "phy-tap_interface")].
2018-02-04 08:31:03 +00:00
寧靜
57f9bc213d
Impl `Hash` trait on EthernetAddress.
2018-02-03 01:17:15 +00:00
whitequark
5fec38bad3
Remove internally inconsistent test that was left in 1d2ec8c.
2018-02-01 01:04:13 +00:00
whitequark
3bf64a32fb
Remove length check that is redundant after 181083f1.
2018-02-01 00:27:49 +00:00