-
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