-
e0d8fcfb72
Emit exceptional events with the DEBUG log level, not TRACE.
whitequark
2017-08-01 11:21:58 +0000
-
db5ecb353a
Only return Err(Rejected) from TcpSocket::process on endpoint mismatch.
whitequark
2017-08-01 11:15:12 +0000
-
ffbb885586
Remove IpEndpoint::accepts.
whitequark
2017-08-01 11:08:48 +0000
-
8724157b54
Fix warnings.
whitequark
2017-07-31 07:59:01 +0000
-
7825bc6070
Implement fmt::Write for TcpSocket.
whitequark
2017-07-30 06:59:01 +0000
-
a1f865f6d3
Rework and test raw sockets.
whitequark
2017-07-30 02:00:23 +0000
-
ae903e8841
Add UdpSocket::is_open, similar to TcpSocket::is_open in function.
whitequark
2017-07-30 01:17:48 +0000
-
be0854127a
Remove unused imports.
whitequark
2017-07-30 01:09:14 +0000
-
7b194c5d36
Update README.
whitequark
2017-07-30 00:56:14 +0000
-
f44c9a808a
Simplify signature of UdpSocket::send_slice.
whitequark
2017-07-29 08:19:32 +0000
-
02f005a2bb
Put the debug_id field first in sockets.
whitequark
2017-07-27 22:55:30 +0000
-
ad12573f62
Rework and test UDP sockets.
whitequark
2017-07-27 14:53:06 +0000
-
8d8a4ea583
Get rid of Result<_, ()>.
whitequark
2017-07-27 13:51:02 +0000
-
7838434165
Remove useless redundant tests.
whitequark
2017-07-27 13:38:31 +0000
-
8a2432dcd7
Rework error handling in TcpSocket::connect.
whitequark
2017-07-27 12:27:33 +0000
-
a61c1a5d2e
Rearrange errors and clarify their semantics.
whitequark
2017-07-27 11:58:31 +0000
-
24bb0eab9d
Update a stale docstring.
whitequark
2017-07-27 11:26:39 +0000
-
a3423b35f4
as_unspecified → to_unspecified
whitequark
2017-07-27 11:26:07 +0000
-
83c41fd760
Simplify impls of AsSocket.
whitequark
2017-07-24 17:00:00 +0000
-
d35fd9940e
Fix ICMP error returned by EthernetInterface for unknown IP protocols.
whitequark
2017-07-24 07:07:43 +0000
-
936bd44f8f
Clean up socket error handling in EthernetInterface.
whitequark
2017-07-24 07:01:35 +0000
-
c8d714cd87
Reorganize EthernetInterface impl. NFC.
whitequark
2017-07-24 06:56:06 +0000
-
776ca6eada
Rename RingBuffer::{dequeue_mut→dequeue}, remove RingBuffer::dequeue.
whitequark
2017-07-24 05:30:22 +0000
-
38afc64f61
Accept TCP FIN packets in SYN-RECEIVED state.
whitequark
2017-07-23 23:51:56 +0000
-
ab4593ea6c
Fix double tracing in the loopback example.
whitequark
2017-07-23 23:18:37 +0000
-
1c41f2d7fa
Fix determination of local address from incoming packets.
whitequark
2017-07-23 23:07:55 +0000
-
bcd9be3d17
Update README.
whitequark
2017-07-23 22:36:56 +0000
-
7ba49607bf
Update fault injector so that rate limiting works without std.
whitequark
2017-07-23 15:10:57 +0000
-
a89e57b128
Add --pcap option to all our examples.
whitequark
2017-07-23 14:57:04 +0000
-
250a84e513
Implement a Device that emits a stream in libpcap format.
whitequark
2017-07-23 12:50:26 +0000
-
e381f6ec3f
Fix an off-by-three-orders-of-magnitude error.
whitequark
2017-07-23 12:03:56 +0000
-
cf37a34443
Fix argument order in Tracer::new callbacks.
whitequark
2017-07-23 12:01:53 +0000
-
a9e6b49aa6
Rename into_lower → into_inner.
whitequark
2017-07-23 10:20:05 +0000
-
aeba4f9bc6
Clean up some type variable names and trait bounds. NFC.
whitequark
2017-07-23 10:15:56 +0000
-
b97cacd521
Inject the current timestamp into Device::{transmit,receive}.
whitequark
2017-07-23 09:44:54 +0000
-
fe6fb087e5
Move macros into their own module.
whitequark
2017-07-23 07:54:36 +0000
-
eae7907f60
Add EthernetTracer, a specialization of Tracer for EthernetFrame.
whitequark
2017-07-23 06:20:38 +0000
-
6dd833f1f7
Use proper clock mocking in the loopback example.
whitequark
2017-07-23 06:08:13 +0000
-
bdfc47d633
Log correct delay when performing TCP retransmit.
whitequark
2017-07-23 05:09:38 +0000
-
051169a49d
Determine MTU in TapInterface instead of hardcoding 1536.
whitequark
2017-07-23 04:40:35 +0000
-
94796a566b
Document the loopback.
whitequark
2017-07-14 03:30:00 +0000
-
75ddbe9776
Add a bare-metal usage example.
whitequark
2017-07-14 03:17:55 +0000
-
312ff93c86
Remove default impl for Device::limits().
whitequark
2017-07-14 02:06:31 +0000
-
f3e54966fd
LoopbackInterface → Loopback.
whitequark
2017-07-14 01:17:06 +0000
-
63ab7d4e7a
Implement loopback interfaces.
whitequark
2017-07-14 01:05:05 +0000
-
5556f09351
Annotate all simple getters with #[inline].
whitequark
2017-07-04 18:46:36 +0000
-
3f9805b2c1
Remove *Socket::{process,dispatch} from public interface.
whitequark
2017-06-30 20:54:58 +0000
-
938fb99070
In {Tcp,Udp}Socket::process, make protocol check an assertion.
whitequark
2017-06-30 19:17:14 +0000
-
6cc2d494ca
Travis: require build on stable Rust to succeed.
whitequark
2017-06-29 16:09:01 +0000
-
2c1e234b91
Remove Socket::{process,dispatch} from public interface.
whitequark
2017-06-29 15:56:03 +0000
-
6ad8fea31f
Fix a typo in 5c3fc493.
whitequark
2017-06-27 21:51:56 +0000
-
04bd8a0051
Discard packets with non-unicast source addresses at IP level.
whitequark
2017-06-26 17:01:23 +0000
-
6cd8cb4422
Transmit actual UDP checksum of all-zeroes as all-ones instead.
whitequark
2017-06-26 16:57:21 +0000
-
cbf6e5cdbc
Try to trigger fast retransmit when we detect a missing TCP segment.
whitequark
2017-06-26 08:09:27 +0000
-
62c9b7d6fa
In examples, trace the packets being dropped by the fault injector.
whitequark
2017-06-26 08:26:42 +0000
-
02abd7a983
In examples, print packet dumps with timestamps, too.
whitequark
2017-06-26 08:01:00 +0000
-
2704a10dd8
Add missing #[derive]s on wire::IpVersion.
whitequark
2017-06-26 06:06:08 +0000
-
4f2804e104
Don't reply to a TCP RST packet with another TCP RST packet.
Egor Karavaev
2017-06-25 19:08:32 +0300
-
1e8cd1a65f
Refactor EthernetInterface::poll.
Egor Karavaev
2017-06-25 19:08:32 +0300
-
0f0c545755
Make sure representation emission covers every octet of the buffer.
whitequark
2017-06-26 03:44:36 +0000
-
050dd788c1
Set TCP PSH flag when sending the last buffered data.
whitequark
2017-06-25 23:12:25 +0000
-
b86d22701d
Expose PSH flag in TcpRepr.
whitequark
2017-06-25 08:20:25 +0000
-
db75f70fa3
Fix a few typos in TCP socket code (NFC).
whitequark
2017-06-25 08:05:37 +0000
-
0a9c5d52dd
Remove an unnecessary length check.
whitequark
2017-06-24 16:34:55 +0000
-
74823b0dff
try! → ?
whitequark
2017-06-24 16:34:32 +0000
-
023d8deea5
Disable checksum validation on wire level when fuzzing.
whitequark
2017-06-24 15:26:15 +0000
-
fce23593fc
Fix insufficient length validation in TCP packets.
whitequark
2017-06-24 12:29:39 +0000
-
c73af2b247
Fix insufficient length validation in UDP packets.
whitequark
2017-06-24 12:15:18 +0000
-
6790eac6d9
Fix a crash parsing a malformed IPv4 packet.
whitequark
2017-06-24 11:57:19 +0000
-
9f8db1d8f9
Factor out wire::tcp::field::OPTIONS.
whitequark
2017-06-24 12:02:17 +0000
-
315b51d7da
Fix a crash parsing a truncated TCP packet with options.
whitequark
2017-06-24 11:47:24 +0000
-
6842d7013d
Fix a crash parsing malformed TCP options.
whitequark
2017-06-24 11:25:48 +0000
-
c09e96a657
Fix a crash printing a malformed TCP packet.
whitequark
2017-06-24 11:23:27 +0000
-
3eaa96957c
Add packet parser fuzzer.
whitequark
2017-06-24 10:10:43 +0000
-
8b27330c8b
Do not attempt to validate length of packets being emitted.
whitequark
2017-06-24 09:15:22 +0000
-
cc5fb0e5ef
Clean up a few doctests.
whitequark
2017-06-24 09:01:07 +0000
-
be29789192
Fix an unimplemented!() invocation that should be unreachable!().
whitequark
2017-06-22 00:38:11 +0000
-
83cf86f1d0
Unbreak parsing of ICMP unreachable messages.
whitequark
2017-06-21 04:08:33 +0000
-
adc51fab7f
Actually export socket::SocketSetItem publicly.
whitequark
2017-06-21 03:57:13 +0000
-
8d7fa94a6d
Add the `ping` example.
Egor Karavaev
2017-06-18 13:14:46 +0300
-
ca56baca65
Add `RawSocket`.
Egor Karavaev
2017-06-18 13:14:20 +0300
-
e927b09ba8
`IpRepr::lower` replaces unspecified src_addr in Ipv4Repr as well.
Egor Karavaev
2017-06-18 13:12:10 +0300
-
c1c4ed68c5
Factor out the `RingBuffer` container.
Egor Karavaev
2017-06-18 13:11:21 +0300
-
59fc0c0358
Factor out the "raw_socket" and "tap_interface" features
Egor Karavaev
2017-06-15 13:12:11 +0300
-
f29b610801
Remove accidentally committed change.
whitequark
2017-05-29 17:15:35 +0000
-
53be7a7747
Add a sinkhole to the server example.
whitequark
2017-05-29 16:54:51 +0000
-
5bac3e5a02
Fix no-std build.
whitequark
2017-05-29 11:04:49 +0000
-
91ef5c60c3
Add packet shaping to the fault injector.
whitequark
2017-05-29 10:53:30 +0000
-
73bb4b8593
Implement TCP TIME-WAIT timeouts.
whitequark
2017-04-21 16:01:49 +0000
-
8087bf3755
Fix a typo in documentation.
whitequark
2017-04-21 15:59:55 +0000
-
555825e49e
Clamp TCP receive window to MSS multiplied by maximum burst size.
whitequark
2017-03-07 11:21:49 +0000
-
1d46ccf432
fn Device::mtu() -> usize → Device::limits() -> DeviceLimits
whitequark
2017-03-07 10:56:48 +0000
-
6ad8872e15
Bump version.
whitequark
2017-03-07 10:33:28 +0000
-
c73298f01e
Improve handling of TCP ACK packets in FIN-* states.
whitequark
2017-03-07 10:17:30 +0000
-
393ebbe682
Don't put non-unicast (IP or Ethernet) addresses into ARP cache.
whitequark
2017-03-07 06:32:09 +0000
-
b305797cb4
Trace eviction and fill in SliceArpCache.
whitequark
2017-03-07 06:20:51 +0000
-
0f2b05ede7
arp: increment lru when inserting a new entry
Corentin Henry
2017-03-06 20:24:00 -0800
-
40d3a3ada8
arp: use valid unicast ip addresses for tests
Corentin Henry
2017-03-06 20:21:12 -0800
-
06a019becf
Update README to mention lack of multicast support.
whitequark
2017-03-06 04:01:06 +0000
-
5137608aed
Follow-up to b9e79d19; always process broadcast frames.
whitequark
2017-03-06 04:00:13 +0000