# Functions
AnalyzeWebObservationsWithLinearAnalysis generates a [*WebAnalysis] from a [*WebObservationsContainer] and ensures we also use [NewLinearyAnalysis] to generate a linear analysis.
AnalyzeWebObservationsWithoutLinearAnalysis generates a [*WebAnalysis] from a [*WebObservationsContainer] but avoids calling [NewLinearyAnalysis] to generate a linear analysis.
ClassicFilter takes in input a [*WebObservationsContainer] and returns in output another [*WebObservationsContainer] where we only keep:
1.
ComputeHTTPDiffBodyProportionFactor computes the body proportion factor.
ComputeHTTPDiffStatusCodeMatch computes whether the status code matches.
ComputeHTTPDiffTitleDifferentLongWords computes the different long words in the title (a long word is a word longer than 5 chars).
ComputeHTTPDiffUncommonHeadersIntersection computes the uncommon header intersection.
DNSDiffFindCommonIPAddressIntersection returns the set of ASNs that belong to both the set of ASNs obtained from the measurement and the one obtained from the control.
DNSDiffFindCommonIPAddressIntersection returns the set of IP addresses that belong to both the measurement and the control sets.
IngestWebMeasurement loads a [*WebMeasurement] into a [*WebObservationsContainter].
NewLinearWebAnalysis constructs a slice containing all the observations contained inside the given [*WebObservationsContainer].
NewSet creates a new set containing the given keys.
NewWebObservationsContainer constructs a [*WebObservationsContainer].
NormalizeDNSLookupResults MUTATES values in input to zero its T0 and T fields and applies other normalizations meant to reduce the size of diffs.
NormalizeHTTPRequestResults is like [NormalizeDNSLookupResults] but for HTTP requests.
NormalizeNetworkEvents is like [NormalizeDNSLookupResults] but for network events.
NormalizeTCPConnectResults is like [NormalizeDNSLookupResults] but for TCP connect results.
NormalizeTLSHandshakeResults is like [NormalizeDNSLookupResults] but for TLS handshake results.
SortDNSLookupResults sorts and returns a copy of the DNS lookup results to avoid too-much timing dependent churn when generating testcases for the minipipeline.
SortNetworkEvents is like [SortDNSLookupResults] but for network events.
SortTCPConnectResults is like [SortDNSLookupResults] but for TCP connect results.
SortTLSHandshakeResults is like [SortDNSLookupResults] but for TLS handshake results.
# Constants
These are the possible origins for IP addresses.
These are the possible origins for IP addresses.
The last operation is a DNS lookup.
The last operation is an HTTP round trip.
The last operation is a TCP connect.
The last operation is a TLS handshake.
# Variables
ErrNoTestKeys indicates that a [*WebMeasurement] does not contain [*MeasurementTestKeys].
# Structs
Set is a set containing keys with pretty JSON serialization and deserialization rules and a valid zero value.
WebAnalysis summarizes the content of [*WebObservationsContainer].
WebMeasurement is the canonical web measurement structure assumed by minipipeline.
WebMeasurementTestKeys is the canonical container for observations generated by most OONI experiments.
WebObservation is an observation of the flow that starts with a DNS lookup that either fails or discovers an IP address and proceeds by documenting binding such an address to a part to obtain and use a TCP or UDP endpoint.
WebObservationsContainer contains [*WebObservations].
WebObservationsControlExpectations summarizes the expectations based on the control.
# Type aliases
WebObservationType is the type of a [*WebObservation].