Commit Graph

1011 Commits

Author SHA1 Message Date
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
whitequark 53309f8271 Simplify checksum computation. 2016-12-13 17:31:08 +00:00
whitequark 1c616218a1 Respond with ICMP echo request data in echo reply. 2016-12-13 17:02:50 +00:00
whitequark 9eb28ed6d7 README: clarify. 2016-12-13 12:31:33 +00:00
whitequark d587981ef5 Implement ICMPv4 echo replies. 2016-12-12 23:22:59 +00:00
whitequark c18d6bf04d Actually commit ARP snooping. 2016-12-12 22:41:34 +00:00
whitequark 2482117682 Implement ICMPv4 echo request/reply representation parsing and emission. 2016-12-12 22:38:13 +00:00
whitequark 9fa0bffb7a Implement ICMPv4 echo request/reply packet support. 2016-12-12 22:11:59 +00:00
whitequark c5bdf30458 Implement IPv4 representation parsing and emission. 2016-12-12 20:09:37 +00:00
whitequark 921ca353b4 Implement IPv4 packet support. 2016-12-12 17:26:06 +00:00
whitequark 7f1b88ef45 Implement ARP snooping. 2016-12-12 12:30:35 +00:00
whitequark 4421b2fe27 Implement ARP replies. 2016-12-12 07:19:53 +00:00
whitequark d862512582 Implement an ARP LRU cache. 2016-12-12 02:39:46 +00:00