Commit Graph

  • 61cb64406d support hardware based checksum settings in during packet send/recv Steffen Butzer 2017-10-02 12:47:51 +0200
  • f9093d15aa phy: introduce hardware based checksum settings, rename DeviceLimits Steffen Butzer 2017-09-16 11:04:07 +0200
  • f8ab0a6b29 Update CI config to not use poorly interacting feature sets. whitequark 2017-09-25 00:59:21 +0000
  • ba93552ccd Fix many warnings. whitequark 2017-09-25 00:55:54 +0000
  • dd0f4b706a Enforce some lints. whitequark 2017-09-25 00:46:53 +0000
  • 4826d37c45 Allow disabling any of: raw, TCP or UDP sockets. whitequark 2017-09-25 00:12:58 +0000
  • 0a8a962e94 Reorganize features using namespaces, to match module hierarchy. whitequark 2017-09-24 23:51:19 +0000
  • 38f648affb Add some docs. whitequark 2017-09-24 23:29:42 +0000
  • 0e88617b82 Uncomment associated constants. Egor Karavaev 2017-09-21 00:52:28 +0300
  • 2bb1d1bfc1 Clarify README paragraph about features. whitequark 2017-09-24 16:07:24 +0000
  • 42b3a71f72 Add a keep-alive and timeout demo to the examples. whitequark 2017-09-24 13:58:53 +0000
  • cfcbcea4eb Fix an embarassing relative/absolute time mismatch in examples. whitequark 2017-09-24 13:57:35 +0000
  • 9c3534e452 A few cosmetic changes to TCP socket trace messages. whitequark 2017-09-24 13:38:07 +0000
  • 32d720831a Completely redo the logic of TCP socket polling. whitequark 2017-09-24 11:26:51 +0000
  • 96b284a30f Fix two issues that may cause TCP sockets to be polled too late. whitequark 2017-09-24 11:04:55 +0000
  • 8db752eb7a Fix a typo in documentation. whitequark 2017-09-24 08:23:46 +0000
  • 8e13333988 Remove all remnants of the collections feature. whitequark 2017-09-22 20:40:13 +0000
  • 227139401d Fix CI configuration after 4e8be41c. whitequark 2017-09-22 20:23:42 +0000
  • 73462b9503 Bump version. whitequark 2017-09-22 20:01:40 +0000
  • 94e3109ab0 Update features to reflect merge of alloc and collections crates. whitequark 2017-09-22 19:54:47 +0000
  • 4f6f6d7610 Update README. whitequark 2017-09-22 19:37:49 +0000
  • e38ec8f397 Update README. whitequark 2017-09-22 19:20:24 +0000
  • 711c05f7b1 Make TCP more RFC 5681 compliant wrt immediate ACKs. whitequark 2017-09-22 18:57:47 +0000
  • a5a9bb44c9 Clarify inline TCP documentation. whitequark 2017-09-22 18:40:23 +0000
  • a1b2605af7 Revert "Keep dispatching packets from a socket as long as there are any." whitequark 2017-09-22 18:09:18 +0000
  • 05a480575c Keep dispatching packets from a socket as long as there are any. whitequark 2017-09-22 17:55:49 +0000
  • b90cee43bb Fix a warning. whitequark 2017-09-22 17:38:58 +0000
  • 8166037a91 Handle buffer wraparound in TCP reassembly code. whitequark 2017-09-22 17:10:51 +0000
  • 075a2ebb83 Make sure all side-effectful RingBuffer methods are #[must_use]. whitequark 2017-09-22 17:08:00 +0000
  • 0bbab2aeed Add RingBuffer::{enqueue_allocated,dequeue_allocated}. whitequark 2017-09-22 17:04:56 +0000
  • e6bf27d078 Add RingBuffer::{read_allocated,write_unallocated}. whitequark 2017-09-22 16:23:37 +0000
  • 5aae15aaba Fix an issue where TCP packets would have zero IP payload length. whitequark 2017-09-22 10:14:26 +0000
  • a9d6a9b7b8 Fix a few warnings. whitequark 2017-09-22 10:01:59 +0000
  • 7a2cd7842d Implement reassembly of out-of-order TCP segments. whitequark 2017-09-22 09:51:04 +0000
  • b6e4e23868 Clean up PSH flag handling. whitequark 2017-09-22 06:29:25 +0000
  • d7da46fd3b Do not clear remote_last_ts in TcpSocket::set_timeout(). whitequark 2017-09-22 06:16:58 +0000
  • f23bfe2014 Clean up and document TCP MSS calculations. whitequark 2017-09-22 06:01:59 +0000
  • ba2d7f483a Implement a buffer (re)assembler. whitequark 2017-09-20 20:19:05 +0000
  • 2c4222a0b6 smoltcp;:parsing → smoltcp::parsers. whitequark 2017-09-20 20:18:50 +0000
  • 9281733209 Implement TCP timeouts. whitequark 2017-09-18 11:05:40 +0000
  • fe80bca19d Implement TCP keep-alive. whitequark 2017-09-16 10:54:59 +0000
  • be0dcb145c Fix warnings. whitequark 2017-09-15 06:05:41 +0000
  • e8788be3a0 RingBuffer::{empty,full}→is_{empty,full}. whitequark 2017-09-08 23:23:40 +0000
  • 5ffce2c1a6 Remove Error::Rejected. whitequark 2017-09-08 00:53:19 +0000
  • 8404fe908c Factor out TcpSocket::accepts. Egor Karavaev 2017-09-01 00:44:41 +0300
  • 02b699e18c Factor out UdpSocket::accepts. Egor Karavaev 2017-09-01 00:44:21 +0300
  • b4d6a53e34 Factor out RawSocket::accepts. Egor Karavaev 2017-09-01 00:43:22 +0300
  • 9b242c7099 Send a challenge ACK in response to an unacceptable TCP ACK. whitequark 2017-09-08 00:06:31 +0000
  • 844843c4bc Remove RingBuffer::set_len(). whitequark 2017-09-07 23:53:32 +0000
  • 1102bd94e7 Refactor the "random access" ring buffer interface. whitequark 2017-09-07 23:47:42 +0000
  • 5dc0353b2a Refactor the "continuous" ring buffer interface. whitequark 2017-09-07 21:17:31 +0000
  • a9719f4a13 Merge the TCP ring buffer and generic ring buffer. whitequark 2017-09-07 00:09:34 +0000
  • 27a23ed3c3 Don't instantly ACK every received TCP segment. whitequark 2017-09-05 23:23:50 +0000
  • bdb9c03081 Update feature list in README to mention everything from RFC 1122. whitequark 2017-09-03 12:03:55 +0000
  • 8876d71802 According to RFC 1122, unsupported IP options MUST be ignored. whitequark 2017-09-01 19:31:09 +0000
  • 7db21529e5 An unaddressable egress packet should not be a reportable error. whitequark 2017-09-01 10:30:56 +0000
  • f8edf0faea Unbreak traffic shaper in the fault injector. whitequark 2017-08-31 21:39:01 +0000
  • b585fbd368 Exhaustion of transmit buffers should not be a reportable error. whitequark 2017-08-31 16:27:50 +0000
  • 6da3e5f217 Fix an inaccurate comment. whitequark 2017-08-31 14:33:10 +0000
  • 47770a5ec2 Fix an unused import warning. whitequark 2017-08-31 14:31:20 +0000
  • a71542b2f2 Allow querying the size of the TCP transmit and receive buffers. whitequark 2017-08-31 13:22:20 +0000
  • 13dbe09fba TCP socket debug messages "sending <flags>" should be at DEBUG level. whitequark 2017-08-31 12:39:05 +0000
  • 9a5d056d7f Add a TCP data source endpoint to the server example. whitequark 2017-08-31 09:09:13 +0000
  • 80e510c9e2 Dispatch a TCP ACK every time window increases at all. whitequark 2017-08-31 00:08:40 +0000
  • 5e48567297 Send a TCP ACK after window increases from zero to non-zero. whitequark 2017-08-30 23:09:31 +0000
  • 6324d3384a More rigorously treat the TcpSocket::remote_last_ack field. whitequark 2017-08-30 22:40:07 +0000
  • 41ceeea9ac Fix the TCP SEQ acceptability check. whitequark 2017-08-30 21:10:23 +0000
  • c2bc20e9bf Move the TCP receive window clamping hack downwards in stack. whitequark 2017-08-30 13:55:33 +0000
  • d53bdab029 Fix Ipv4Packet::payload{,_mut}() returning overly long buffers. whitequark 2017-08-30 13:34:50 +0000
  • 5a066fbc6c Return from EthernetInterface::poll() on errors, don't swallow them. whitequark 2017-08-30 10:20:11 +0000
  • 7b3574e6ee Rework TCP retransmit logic to be much more robust. whitequark 2017-08-30 10:04:33 +0000
  • a9c958612c README: add some notable omissions. whitequark 2017-08-30 06:15:39 +0000
  • 996389d653 Compute soft deadline in poll() and use nonblocking sockets. whitequark 2017-08-29 19:35:09 +0000
  • 7cd7bd4683 Reset the timer transitioning from TCP FIN-WAIT-1 to FIN-WAIT-2. whitequark 2017-08-29 19:47:04 +0000
  • cdf236412f Clarify a function name. whitequark 2017-08-28 10:36:27 +0000
  • f84b234a38 Add a test for TCP sockets returning ACKs even with zero window. whitequark 2017-08-28 06:01:13 +0000
  • 695c61fd05 Break up the EthernetInterface::dispatch macro atrocity into functions. whitequark 2017-08-28 05:49:56 +0000
  • 34db543cac Factor out packet parsing from Socket::process. whitequark 2017-08-28 04:50:57 +0000
  • 379bc60924 Get rid of unused arguments in Socket::{process,dispatch}. whitequark 2017-08-28 04:09:17 +0000
  • 760174048d Get rid of IpPayload and indirection in Socket::dispatch. whitequark 2017-08-28 03:50:40 +0000
  • bab5c0b7aa Unify EthernetInterface::{send_response,emit} transmit paths. whitequark 2017-08-28 02:11:04 +0000
  • 1d01189278 Use FnOnce, not FnMut, in Socket::dispatch() functions. whitequark 2017-08-28 00:59:33 +0000
  • 4878f0f1d6 Fix a TCP retransmit loop after transition from SYN-SENT to ESTABLISHED. whitequark 2017-08-25 06:47:12 +0000
  • 3035ef07fb Fix a bug that caused TCP packets with PSH bit to be dropped. whitequark 2017-08-25 06:27:00 +0000
  • acf4688ad8 README: fix typo. whitequark 2017-08-25 06:20:10 +0000
  • afdf73ffef TcpRepr::push → TcpControl::Psh. whitequark 2017-08-25 06:03:54 +0000
  • 5396687d52 Immediately ACK payload in response to TCP packets that have any. whitequark 2017-08-25 05:50:43 +0000
  • 5b2de544c8 Radically simplify and optimize TCP packet dispatch. whitequark 2017-08-25 02:59:51 +0000
  • a0d359fc53 Make TCP packets not matching socket state return Error::Dropped. whitequark 2017-08-25 03:52:30 +0000
  • ae7e956573 Add a missing \0 in a C string. whitequark 2017-08-24 12:18:07 +0000
  • 9d0084171f Rework responses to TCP packets and factor in RST replies to TcpSocket. whitequark 2017-08-22 22:32:05 +0000
  • 7c9a072dd2 Fix a typo that broke ARP replies. whitequark 2017-08-22 07:44:43 +0000
  • f9c6c0249b Listening TCP sockets should reject, not drop, ACKs. whitequark 2017-08-21 07:28:07 +0000
  • 39f328b80f Add TcpSocket::{peek,peek_slice}. whitequark 2017-08-21 06:12:09 +0000
  • 925e13b61a Simplify ARP handling code in EthernetInterface. whitequark 2017-08-21 07:08:06 +0000
  • 15085bd8ba Fix a file descriptor leak in TapInterfaceDesc::interface_mtu. whitequark 2017-08-21 05:52:09 +0000
  • 699f5daa3e utils::Dispose → io::Sink. whitequark 2017-08-21 05:49:07 +0000
  • 66a6dde59c README.md: cleanup. whitequark 2017-08-21 06:38:36 +0000
  • be1038f382 Assert that the transmit frame returned by driver has right length. whitequark 2017-08-06 15:09:05 +0000
  • 55ac6737b2 Fix build on i686 by using libc::suseseconds_t instead of i64 David Coffill 2017-08-01 15:00:20 -0700