0.2.0 alpha
Description
Finally here. Long waited divorce from Tokio pre-alpha as the underlying runtime. Along the way we also wanted to re-envision how we process packets. Major breaking changes,
- goodbye Tokio (closing #75), hello Smol. this actually doesn't impact the end user much.
- brand new runtime with a simpler set of API! all FFI code has been rewritten from the ground up too.
- no more combinators. that was an idea carried over from NetBricks and that concept no longer align with how we handle types.
- same example apps but they really work! no more replaying pcap files, they now interact with live traffic in our vagrant.
a couple things still missing
- metrics! need to put metrics back.
- revisit the packet ownership around parse and peek.
Type of change
- [x] Breaking change
- [x] Documentation update
Codecov Report
Merging #138 (1232a4c) into master (63b7155) will increase coverage by
7.60%. The diff coverage is55.59%.
@@ Coverage Diff @@
## master #138 +/- ##
==========================================
+ Coverage 68.69% 76.29% +7.60%
==========================================
Files 66 50 -16
Lines 5836 5050 -786
==========================================
- Hits 4009 3853 -156
+ Misses 1827 1197 -630
| Impacted Files | Coverage Δ | |
|---|---|---|
| core/src/packets/arp.rs | 63.31% <ø> (-0.37%) |
:arrow_down: |
| core/src/packets/ethernet.rs | 79.86% <0.00%> (ø) |
|
| core/src/packets/icmp/v4/echo_reply.rs | 70.66% <ø> (ø) |
|
| core/src/packets/icmp/v4/echo_request.rs | 80.00% <ø> (ø) |
|
| core/src/packets/icmp/v4/mod.rs | 80.73% <ø> (ø) |
|
| core/src/packets/icmp/v4/redirect.rs | 75.82% <ø> (ø) |
|
| core/src/packets/icmp/v4/time_exceeded.rs | 74.07% <ø> (ø) |
|
| core/src/packets/icmp/v6/echo_reply.rs | 70.66% <ø> (ø) |
|
| core/src/packets/icmp/v6/echo_request.rs | 70.66% <ø> (ø) |
|
| core/src/packets/icmp/v6/mod.rs | 77.96% <ø> (ø) |
|
| ... and 39 more |
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.
I have operation not supported running any of the examples.
are you running the examples in our vagrant environment? they only work inside vagrant+docker setup because they have to assume a certain network topology with specific device names. if you are using vagrant, can you post the program output? I will take a look.
I'm running examples in the same environment where I run 0.1 examples. Old version runs just fine. note that I modified the device name and device id according to my network. I can give you access to my testing machine if you like
------------------ Original ------------------ From: Daniel Jin @.> Date: Sat, Apr 10, 2021 11:38 PM To: capsule-rs/capsule @.> Cc: QiuJiangkun @.>, Comment @.> Subject: Re: [capsule-rs/capsule] 0.2.0 alpha (#138)
are you running the examples in our vagrant environment? they only work inside vagrant/docker setup because they have to assume a certain network topology with specific device names. if you are using vagrant, can you post the program output? I will take a look.
— You are receiving this because you commented. Reply to this email directly, view it on GitHub, or unsubscribe.
At this time, we are only going to support the 0.2.0 examples running in our controlled environment. To make them work and interact with live packets, we have to make a lot of assumptions about their device name, IP address, MAC address, subnet etc. basically a lot goes into controlling how the packets are routed to make the examples work.
but if you set the log level to DEBUG and share the output, I can take a look and maybe identify what "operation not supported" is referring to. that error could suggest you are potentially encountering some device capability limitation? I'm not sure. but I don't have a lot info to go on.
Maybe my environment was not clean enough. After rebooting, all examples are runnable.
@drunkirishcoder also maybe do a deps update and see if we can fix the security issue related to chrono/time.
sigh
getting blocked by an indirect dependency. not sure which lib is pulling it in, but will need to update the sandbox to the latest stable rust. will do it when I find time soon.