Commit Graph

1073 Commits

Author SHA1 Message Date
whitequark d7e73a36f0 Add some colors for readability. 2016-12-26 15:46:36 +00:00
whitequark a6eab874be Parameterize tracer over the write function. 2016-12-26 15:46:30 +00:00
whitequark a8b4ed2deb Implement the userspace side of TCP sockets. 2016-12-26 15:05:46 +00:00
whitequark 0e20ea9205 Implement TCP data transmission. 2016-12-26 14:24:17 +00:00
whitequark 0bf822c77e Implement TCP RST handling. 2016-12-26 13:54:26 +00:00
whitequark 83f886826f Validate ACK for TCP RST packets. 2016-12-26 13:10:39 +00:00
whitequark f468f47959 Validate ACK even in TCP LISTEN state. 2016-12-26 13:00:39 +00:00
whitequark 2de98aea06 Add tests for TCP error conditions. 2016-12-26 12:44:41 +00:00
whitequark 25d453447f Generalize the TCP tests to accept multiple packets. 2016-12-26 12:38:40 +00:00
whitequark ea78053dc1 Factor out IpRepr into the wire module. 2016-12-26 11:20:20 +00:00
whitequark ea07e79bdf Group IP header parts in the socket layer as struct IpRepr. 2016-12-26 10:06:49 +00:00
whitequark b5a9917950 Implement TCP data acknowledgement. 2016-12-25 11:19:50 +00:00
whitequark 0ae27678a0 Implement TCP data reception. 2016-12-25 11:09:50 +00:00
whitequark bdfb99ea16 Validate TCP ACKs. 2016-12-25 09:22:49 +00:00
whitequark fa1a51b90a Add tests for TCP state machine. 2016-12-24 23:06:42 +00:00
whitequark f5f0b8e435 Add basic TCP three-way handshake. 2016-12-23 08:05:50 +00:00
whitequark 3c05139204 Add logging capability. 2016-12-23 07:59:38 +00:00
whitequark f46c77bdd6 Fix autoselection of source address. 2016-12-23 07:57:54 +00:00
whitequark 6539019f19 Get rid of explicit backlog. 2016-12-23 07:34:10 +00:00
whitequark 6d8d3cb29d Use correct sequence numbers in TCP RST packets. 2016-12-23 07:34:10 +00:00
whitequark 3bd715e1bc Use signed integers to represent TCP sequence numbers. 2016-12-23 07:34:07 +00:00
whitequark 2f24fb263b Populate ARP cache from incoming IP packets. 2016-12-23 07:31:42 +00:00
whitequark 1ad8f9c9bd Implement conversion of incoming TCP connections into TCP streams. 2016-12-20 22:57:21 +00:00
whitequark 53ddc9476f Fix no_std build. 2016-12-20 22:06:36 +00:00
whitequark bddb5f9127 Implement TCP server sockets. 2016-12-20 19:51:52 +00:00
whitequark 5a64a87dbe Reply with ICMP dest. unreachable or TCP RST from unused ports. 2016-12-20 19:18:35 +00:00
whitequark a3481537d9 Add some sanity into buffer names (avoid clases with wire::*). 2016-12-20 13:56:59 +00:00
whitequark 0d9a8a417d Add some sanity into enumeration names (avoid "*Type"). 2016-12-20 13:54:11 +00:00
whitequark c562ea784d Fix TcpRepr field visibility. 2016-12-20 13:44:41 +00:00
whitequark 3d5f47b89f Implement TCP representation printing. 2016-12-20 13:16:29 +00:00
whitequark 513923725e Implement TCP representation parsing and emission. 2016-12-20 12:52:33 +00:00
whitequark 31040bf0fc In Repr::emit, do not assume that the packet is pre-zeroed. 2016-12-20 09:41:08 +00:00
whitequark 77b2819691 Fix a pointless crash in smoltcpserver. 2016-12-20 00:17:49 +00:00
whitequark 6d2c11fb61 Fix IP checksum calculation for odd-length packets. 2016-12-20 00:17:29 +00:00
whitequark 095005a597 Empty transmit buffers before starting to receive. 2016-12-20 00:07:02 +00:00
whitequark f86fac2223 Sort out buffer lengths. 2016-12-19 23:50:04 +00:00
whitequark 9c922d0306 Implement TCP packet support. 2016-12-18 21:42:44 +00:00
whitequark 71fc81b7c5 Implement TCP stream ring buffers. 2016-12-18 19:40:50 +00:00
whitequark fe96ff3015 UdpBufferElem → UdpPacket 2016-12-18 19:40:02 +00:00
whitequark 2dc837be9d Fix lifetime variance. 2016-12-17 06:39:18 +00:00
whitequark 666b615171 Fix a Cargo warning. 2016-12-17 06:39:18 +00:00
whitequark a1401b2861 I was going to license this under 0-clause BSD. 2016-12-17 05:14:47 +00:00
whitequark 31e44445f5 Working UDP loopback. 2016-12-17 05:12:45 +00:00
whitequark c672b94ef7 Rethink the buffering strategy with Managed<T>. 2016-12-17 04:15:55 +00:00
whitequark d1d910b46d Significantly simplify buffering. 2016-12-15 17:27:17 +00:00
whitequark 3fb5f04b07 Implement network part of communication through UDP sockets. 2016-12-15 05:40:55 +00:00
whitequark fb172ed1ed Implement UDP sockets. 2016-12-14 17:39:44 +00:00
whitequark 2b01a3dace Implement UDP representation parsing and emission. 2016-12-14 02:11:50 +00:00
whitequark 5a721a7b11 Implement UDP packet support. 2016-12-14 00:11:45 +00:00
whitequark 57e544cc8c Return interior pointers more uniformly. 2016-12-13 22:37:05 +00:00