capsule-rs / capsule-rs/capsule
Extend suite of ICMPv4 Messages
- Dominant language
- Rust
- Stars
- 443
- Forks
- 42
- PR merge metrics
- No merged PRs in 30d
Description
## Background
[ICMP](https://en.wikipedia.org/wiki/Internet_Control_Message_Protocol) messages are used by network devices, including routers, to send error messages and operational information indicating success or failure when communicating with another IP address. Examples include errors indicating when a requested service is not available or when a host or router could not be reached. We've implemented a few ICMPv4 messages thus far in Capsule, but we'd like to include more.
## Solution
Implement *almost*1 all ICMPv4 message types in Capsule. For reference on how to handle these kinds of messages, please look at what's been implemented thus far @ https://github.com/capsule-rs/capsule/tree/master/core/src/packets/icmp/v4.
Format information for most messages can be found in [RFC 792](https://tools.ietf.org/html/rfc792) and [RFC 1256](https://tools.ietf.org/html/rfc1256) (Sorry, no anchor links!).
Another helpful resource is available via [IANA](https://www.iana.org/assignments/icmp-parameters/icmp-parameters.xhtml), including [RFC 2780](https://tools.ietf.org/html/rfc2780) for helpful considerations.
### Message Types
#### *Good First Issues* from [RFC 792](https://tools.ietf.org/html/rfc792):
- [X] [Echo Reply](https://github.com/capsule-rs/capsule/blob/master/core/src/packets/icmp/v4/echo_reply.rs)
- [ ] Destination Unreachable
- [ ] Source Quench
- [x] Redirect
- [X] [Echo (Request)](https://github.com/capsule-rs/capsule/blob/master/core/src/packets/icmp/v4/echo_request.rs)
- [X] [Time Exceeded](https://github.com/capsule-rs/capsule/blob/master/core/src/packets/icmp/v4/time_exceeded.rs)
- [ ] Parameter Problem
- [ ] Timestamp
- [ ] Timestamp Reply
- [ ] Information Request
- [ ] Information Reply
#### Others:
- [ ] Router Advertisement ~ [RFC 1256](https://tools.ietf.org/html/rfc1256)1
- [ ] Router Solicitation ~ [RFC 1256](https://tools.ietf.org/html/rfc1256)1
- [ ] Extended Echo Request ~ [RFC 8335](https://tools.ietf.org/html/rfc8335#section-2)
- [ ] Extended Echo Reply ~ [RFC 8335](https://tools.ietf.org/html/rfc8335#section-3)
1 Not including Mobile IP extensions here.
Contributor guide
Research direction
Start in core/src/packets/icmp/v4 and compare the existing echo_reply.rs, echo_request.rs, redirect, and time_exceeded implementations with the unchecked message types in the issue. Read RFC 792 and RFC 1256 first, then consult RFC 2780, RFC 8335, and the IANA registry as needed. Done means the applicable unchecked ICMPv4 message types are implemented, with the Mobile IP extensions excluded.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- networking
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100