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): implement linear analysis #1417

Merged
merged 108 commits into from
Nov 30, 2023
Merged

feat(minipipeline): implement linear analysis #1417

merged 108 commits into from
Nov 30, 2023

Conversation

bassosimone
Copy link
Member

@bassosimone bassosimone commented Nov 30, 2023

The linear analysis takes advantage of recent changes in WebConnectivity LTE to build a linear chain of observations where the entries at the beginning of the chain are from the latest redirect followed by the penultimate with the chain ending with observations from the initial request. Within each redirect, entries are sorted by type such that HTTP appears before TLS which appears before TCP which appears before DNS. Within each protocol, entries without errors sort before entries with errors. Finally, if two entries have the same redirect depth, protocol type and error, we sort using the transaction ID (which is enough to avoid making tests nondeterministic).

With this functionality, we should be able to write relatively easily an analysis algorithm for Web Connectivity LTE.

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
@bassosimone bassosimone marked this pull request as ready for review November 30, 2023 21:37
@bassosimone bassosimone changed the title Linear feat(minipipeline): implement linear analysis Nov 30, 2023
@bassosimone bassosimone merged commit c056f79 into master Nov 30, 2023
10 checks passed
@bassosimone bassosimone deleted the linear branch November 30, 2023 21:41
Murphy-OrangeMud pushed a commit to Murphy-OrangeMud/probe-cli that referenced this pull request Feb 13, 2024
The linear analysis takes advantage of recent changes in WebConnectivity
LTE to build a linear chain of observations where the entries at the
beginning of the chain are from the latest redirect followed by the
penultimate with the chain ending with observations from the initial
request. Within each redirect, entries are sorted by type such that HTTP
appears before TLS which appears before TCP which appears before DNS.
Within each protocol, entries without errors sort before entries with
errors. Finally, if two entries have the same redirect depth, protocol
type and error, we sort using the transaction ID (which is enough to
avoid making tests nondeterministic).

With this functionality, we should be able to write relatively easily an
analysis algorithm for Web Connectivity LTE.

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
1 participant