Commit Graph

  • 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