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

feat(minipipeline): introduce "classic" observations filtering #1402

Merged
merged 81 commits into from
Nov 29, 2023

Conversation

bassosimone
Copy link
Contributor

@bassosimone bassosimone commented Nov 29, 2023

Classic filtering is an WebObservationsContainer filtering technique that takes in input a WebObservationsContainer and only keeps DNS lookups using getaddrinfo and endpoints whose IP address has been discovered using getaddrinfo. By applying this technique, we reduce the richer dataset produced by Web Connectivity LTE to a smaller dataset comparable to what Web Connectivity v0.4 would return. In turn, by focusing the analysis on the reduced dataset, we hope to emulate the results produced by v0.4 for backward compatible test keys.

I named this feature "classic" because it's what we used to do and I don't want to call it legacy.

Part of ooni/probe#2634.

We're introducing failure modes that do not exist hence it seems
this is not the correct way of moving forward.
I'm doing this mainly to explore whether we could have more
robust webconnectivity v0.5 analysis code
Because I am dropping the requests again, we break again the tests
with the redirects. I could possibly fix it by putting requests back
again but I am not super happy about doing this because that would
cause the DSL to do some strange work and I'd honestly rather not do this.
what remains to be done now is to make sure we make green all the
tests that are currently skipped

we also need to account for differences between the two
then next step is to sort out this mess :-)
(I am thankful there's a ~comprehensive test suite.)
this happens because LTE sucessfully handshakes with the wrong address
Conflicts:
	internal/experiment/webconnectivitylte/cleartextflow.go
	internal/experiment/webconnectivitylte/secureflow.go
I am not planning on butchering lte on master, but I need to
butcher it here because I really need to figure out how to align
them correctly. What I have so far is good, but there's some
theory/abstraction that I am stil missing.
@bassosimone bassosimone changed the title feat(minipipeline): introduce classic filtering feat(minipipeline): introduce classic observations filtering Nov 29, 2023
@bassosimone bassosimone marked this pull request as ready for review November 29, 2023 00:59
@bassosimone bassosimone requested a review from hellais as a code owner November 29, 2023 00:59
@bassosimone bassosimone changed the title feat(minipipeline): introduce classic observations filtering feat(minipipeline): introduce "classic" observations filtering Nov 29, 2023
@bassosimone bassosimone merged commit e0c742c into master Nov 29, 2023
10 checks passed
@bassosimone bassosimone deleted the classic branch November 29, 2023 01:08
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this pull request Feb 13, 2024
…1402)

Classic filtering is an `WebObservationsContainer` filtering technique
that takes in input a `WebObservationsContainer` and only keeps DNS
lookups using `getaddrinfo` and endpoints whose IP address has been
discovered using `getaddrinfo`. By applying this technique, we reduce
the richer dataset produced by Web Connectivity LTE to a smaller dataset
comparable to what Web Connectivity v0.4 would return. In turn, by
focusing the analysis on the reduced dataset, we hope to emulate the
results produced by v0.4 for backward compatible test keys.

I named this feature "classic" because it's what we used to do and I
don't want to call it legacy.

Part of ooni/probe#2634.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant