Commit Graph

99 Commits (a94f1b231cd051f3cbd7cf476cab937f666dbf23)

Author SHA1 Message Date
Dario Nieuwenhuis a94f1b231c Bump MSRV to 1.46 2021-08-18 15:19:38 +02:00
Dario Nieuwenhuis 6e8c2a8455 Add IP medium support to PcapWriter and Tracer. 2021-03-31 17:05:09 +02:00
Dario Nieuwenhuis 9e3b373e36 Add support for TUN interfaces. 2021-03-31 17:05:09 +02:00
Dario Nieuwenhuis 8e30e064f0 Update README.md with now-supported features. 2021-01-19 23:28:48 +01:00
Niclas Hoyer ad7795f996 Use #[non_exhaustive] instead of manual variant 2021-01-09 02:06:00 +01:00
Adam Greig 8fb34901a7 Add Github Actions for CI 2020-12-22 13:11:35 +00:00
Matt Kelly b7725a4d6b Update recommended version in README 2019-12-10 01:16:30 +00:00
whitequark b5d5023ac6 Bump Rust version requirement to 1.28.
Actually, this is not a new requirement at all; because we do not
check the minimum version on CI, some dependencies on 1.28 have
already sneaked in. In particular, our required version of the crate
managed only works on 1.28+.

This allows us to use:
(1.28)
  - ops::RangeBounds
  - num::NonZero

Some trait bounds were added to make sure everything builds on 1.28.
2019-06-22 09:04:45 +00:00
whitequark 0134bb7399 Bump Rust version requirement to 1.27.
This allows us to use:
(1.26)
  - impl Trait
  - autoderef in pattern matching
  - fixed slice patterns
  - inclusive ranges
(1.27)
  - dyn Trait
  - #[must_use] on functions

To prepare for edition change, dyn is added where applicable. Other
edition changes would require bumping the requirement even higher,
and so they are not applied for now.
2019-06-22 08:19:39 +00:00
Kai Lüke 2ac9c77d18 Document that Packetization Layer Path MTU Discovery in TCP is not supported
PLPMTU should be used if ICMP messages are dropped by the network.

Closes: #277
Approved by: whitequark
2019-02-27 00:29:01 +08:00
Kai Lüke 15c6c24a87 Increase number of assembler gaps to 32 for std/alloc targets
Only allowing four missing packets is hurting
performance for large receive windows.

The new value was picked by observing good
performance with 500 kB socket buffers.

Closes: #264
Approved by: whitequark
2018-10-05 18:36:35 +08:00
whitequark b06bb735c7 Bring feature list in README up to date. 2018-08-28 00:13:35 +00:00
jhwgh1968 88016e675f Fully implement TCP Window Scaling
Closes: #253
Approved by: whitequark
2018-08-20 06:57:44 +08:00
Astro a8f2725784 Implement IGMPv1/v2 processing.
Closes: #178
Approved by: whitequark
2018-08-01 10:26:51 +08:00
Valentin Lorentz 2d716883b6 Add support for IPv6 gateways.
Closes: #207
Approved by: dlrobertson
2018-05-14 09:39:39 +08:00
Kai Lüke febe22b578 Mention that Probing Zero Windows is not implemented for TCP
Closes: #201
Approved by: whitequark
2018-05-08 01:47:24 +08:00
Dan Robertson 879e3ea3cd Update README detailing IPv6 support
Add sections detailing the current support for IPv6.

Closes: #196
Approved by: whitequark
2018-05-07 23:49:56 +08:00
Michal Podhradsky 31ab2c788e Update README.md 2018-04-17 18:04:55 +00:00
Adam Greig 96118d370d Use core::time::Duration. Closes #182.
Duration is now in core, so we can use that instead of conditional
compilation on std and std::time::Duration.

Closes: #189
Approved by: whitequark
2018-04-11 07:24:32 +08:00
Herman J. Radtke III d612a93163 Fix mistakes in README
- Fix binary path in tcpdump example
- Fix IP address in ping example
2018-01-13 18:42:17 +00:00
Dan Robertson 439e0a2cc1 Add the proto-ipv4 feature. 2017-12-24 13:28:59 +00:00
whitequark d8685dbb1e Unswitch the IP checksum loop for 30% improvement in performance. 2017-12-23 12:17:39 +00:00
whitequark fb11c4a84d Convert the stress.rs example into a simple benchmark.
There are no more bugs exposed by stress.rs as far as I can tell,
so let's make it do something more useful.
2017-12-22 20:59:30 +00:00
whitequark ae17151f2a Fix a few documentation issues. NFC. 2017-12-22 13:13:43 +00:00
whitequark 8b6050f711 Clean up our feature story and more aggressively test features. 2017-12-22 08:54:58 +00:00
whitequark 8863eb8db1 Add an HTTP client example. 2017-12-18 14:53:09 +00:00
whitequark eaa50d0003 Rewrite the ARP cache to allow for flood protection and expiration. 2017-11-21 10:53:55 +00:00
whitequark cee79f30f3 Update README. 2017-11-10 02:02:17 +00:00
whitequark 5c2deb5dd2 Update README. 2017-10-25 00:30:57 +00:00
whitequark 1cd3625bf4 Small adjustments to TTL code; style, docs, and tests. NFCI. 2017-10-24 23:12:55 +00:00
Dan Robertson eef65d2676 Implement set_ttl for Tcp and Udp sockets
- Add the ttl member to the IpRepr
 - Add the ttl member along with setters and getters to the tcp and udp
   socket types
 - Add unit tests for the new set_ttl parameter
 - Update usage of IpRepr to include the ttl value
2017-10-24 23:02:18 +00:00
Egor Karavaev 5be76b8dc1 Add support for IPv4 default gateway. 2017-10-03 15:17:29 +00:00
whitequark 4826d37c45 Allow disabling any of: raw, TCP or UDP sockets. 2017-09-25 00:20:22 +00:00
whitequark 0a8a962e94 Reorganize features using namespaces, to match module hierarchy.
I'm about to add a whole lot more features, and it's going to get
quite confusing otherwise.
2017-09-24 23:51:19 +00:00
Egor Karavaev 0e88617b82 Uncomment associated constants. 2017-09-24 23:25:18 +00:00
whitequark 2bb1d1bfc1 Clarify README paragraph about features.
We can easily (although annoyingly) do IP fragmentation with
the assembler now, so I don't see *any* features that are apriori
impossible to implement anymore.
2017-09-24 16:07:24 +00:00
whitequark 42b3a71f72 Add a keep-alive and timeout demo to the examples. 2017-09-24 13:58:53 +00:00
whitequark 73462b9503 Bump version. 2017-09-22 20:01:44 +00:00
whitequark 94e3109ab0 Update features to reflect merge of alloc and collections crates. 2017-09-22 19:54:47 +00:00
whitequark 4f6f6d7610 Update README.
Mention SACKs, don't spend many words on junk no one wants,
reword everything, and reorder the features so that the ones
with a higher cost/benefit ratio are higher up.
2017-09-22 19:49:54 +00:00
whitequark e38ec8f397 Update README.
We don't really care about fast open one way or another, this entry
was a misunderstanding of RFC 793's behavior wrt data in SYN packets.
2017-09-22 19:20:24 +00:00
whitequark 7a2cd7842d Implement reassembly of out-of-order TCP segments. 2017-09-22 10:06:40 +00:00
whitequark 9281733209 Implement TCP timeouts. 2017-09-18 11:05:40 +00:00
whitequark fe80bca19d Implement TCP keep-alive. 2017-09-16 10:54:59 +00:00
whitequark bdb9c03081 Update feature list in README to mention everything from RFC 1122. 2017-09-03 12:03:55 +00:00
whitequark 9a5d056d7f Add a TCP data source endpoint to the server example. 2017-08-31 09:09:16 +00:00
whitequark a9c958612c README: add some notable omissions. 2017-08-30 06:15:39 +00:00
whitequark acf4688ad8 README: fix typo. 2017-08-25 06:20:10 +00:00
whitequark afdf73ffef TcpRepr::push → TcpControl::Psh.
This is done for simplification. FIN implies PSH, RST doesn't have
any meaning with PSH, and SYN|PSH only makes sense in the context
of TCP Fast Open, in the context of which, any data in the original
SYN already implies PSH.
2017-08-25 06:05:17 +00:00
whitequark 66a6dde59c README.md: cleanup. 2017-08-21 07:28:32 +00:00