Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SCMP refactoring and clean up #14

Merged
merged 13 commits into from
Feb 16, 2024
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
### Changed
- BREAKING CHANGE: Changed maven artifactId to "client"
[#9](https://github.com/tzaeschke/phtree-cpp/pull/9)
- BREAKING CHANGE: SCMP refactoring, renamed several SCMP related classes.
[#14](https://github.com/tzaeschke/phtree-cpp/pull/14)

### Fixed
- Fixed SCMP timeout and error handling (IOExceptions + SCMP errors).
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,9 +66,10 @@ The central classes of the API are:
returned by `Scion.defaultService()`.
- `Scion`, `ScionUtil`, `ScionConstants`: Utility classes.
- `ScionSocketOptions`: Options for the `DatagramChannel`.
- `SCMP` provides `ScmpType` and `ScmpCode` enums with text messages. It also contains
`ScmpMessage` (for SCMP errors) and `ScmpEcho`/`ScmpTraceroute` types. These can be used with the
`DatagramChannel`'s `sendXXXRequest()` and `setXXXListener()` methods.
- `Scmp`:
- `ScmpType` and `ScmpCode` enums with text messages.
- `Message` (for SCMP errors) and `EchoMessage`/`TracerouteMessage` types.
- `createChannel(...)` for sending echo and traceroute requests
- **TODO** Currently residing in `test`: `ScionPacketInspector`: A packet inspector and builder.
- **TODO** `DatagramSocket` and `DatagramPacket`: These work similar to the old `java.net.DatagramSocket`.
This is currently deprecated because it does not work well.
Expand Down
1 change: 1 addition & 0 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ Discuss required for 0.1.0:
- Selector support
- Implement interfaces from nio.DatagramChannel
- Look into Selectors: https://www.baeldung.com/java-nio-selector
- Consider sublcassing DatagramChannel directly.
- Consider SHIM support. SHIM is a compatibility component that supports
old border-router software (requiring a fixed port on the client, unless
the client is listening on this very port). When SHIM is used, we cannot
Expand Down
3 changes: 2 additions & 1 deletion doc/Design.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ We should look at other custom Java protocol implementations, e.g. for QUIC:
## Daemon
The implementation can use the daemon. Alternatively, since daemon installation may
be cumbersome on platforms such as Android, we can directly connect to a control service.

An alternative for mobile devices could be a non-local daemon that is hosted by the mobile provider.
This may work but may open opportunities for side-channel attacks on the daemon.
Also, when roaming, the provider may not actually support SCION. In this case the
Expand All @@ -27,7 +28,7 @@ at least a topology server + control server.
- Use Junit 5.
- Use Google style guide for code
- We use custom exceptions. However, to make the API as compatible with standard networking API
as possible, our Exceptions extend either IOException or RuntimeExcdeption.
as possible, our Exceptions extends either IOException or RuntimeException.

## Paths

Expand Down
Loading