Skip to content

Commit

Permalink
fix(ts-017-web-connectivity): proper markdown (#286)
Browse files Browse the repository at this point in the history
In markdown, there should be just one top-level entry in a file.

To address this, create a title with the nettest name and then make sure
all the other titles fall below one level.

Part of ooni/probe#2666

(If I have time, I'll try to do some maintenance of all the nettest
specs and implement similar changes, but for now I will only limit my
boyscout-rules instincts to the spec I am editing.)
  • Loading branch information
bassosimone authored Feb 9, 2024
1 parent 08997dd commit fbba757
Showing 1 changed file with 19 additions and 17 deletions.
36 changes: 19 additions & 17 deletions nettests/ts-017-web-connectivity.md
Original file line number Diff line number Diff line change
@@ -1,29 +1,31 @@
# Specification version number
# Web Connectivity

2024-01-30-001
## Specification version number

2024-02-09-001

* _status_: current

# Specification name
## Specification name

Web connectivity

# Test preconditions
## Test preconditions

* An internet connection

* The ability to reach the web connectivity test helper

# Expected impact
## Expected impact

Ability to detect if the websites being tested are reachable and if not what is
the reason for them not being reachable.

# Expected inputs
## Expected inputs

A list of URLs to be tested.

## Semantics
### Semantics

One URL per line:

Expand All @@ -35,7 +37,7 @@ http://example-3.com/path2/

URLs may contain IP addresses rather than domain names.

# Test description
## Test description

This test is divided into multiple steps that will each test a different aspect
related to connectivity of the website in question.
Expand Down Expand Up @@ -194,9 +196,9 @@ It will be set to "http" when DNS resolutions are consistent and we are able to
establish a TCP connection to the IP ports of the control, but the HTTP request
either fails or we get back a HTTP response that contains a page we don't expect.

# Expected output
## Expected output

## Parent data format
### Parent data format

We will include data following these data formats.

Expand All @@ -211,7 +213,7 @@ particular that the `tcp_connect` key will include the "blocked" key, whose
specification is not part of `df-005-tcpconnect` and is instead given
above.

## Semantics
### Semantics

In addition to the above specified common data formats, we will also
include into the "test_keys" the following keys:
Expand All @@ -232,7 +234,7 @@ include into the "test_keys" the following keys:
The meaning of the keys "dns_consistency", "body_length_match" and
"tcp_connect" is described above.

The flag "accessible" indicates if the site in question is overall considered to be
The flag "accessible" indicates if the site in question is overall considered to be
accessible (DNS responses are consistent, at least one TCP connection succeeds
and the expected HTTP response is received).

Expand All @@ -243,15 +245,15 @@ responses (dns), TCP/IP based blocking (tcp_ip), if the HTTP page response
matches with the control (http-diff) or if the HTTP response failed
(http-failure).

## Possible conclusions
### Possible conclusions

* If the URL in question is accessible from the network vantage point of the probe.

* If the blocking of the URL in question is being performed by means of DNS
tampering, TCP connection RST/IP blocking or by having a transparent HTTP
proxy.

## Example control request and response
### Example control request and response

Request:

Expand Down Expand Up @@ -321,7 +323,7 @@ Response:
*Note*: the control will set `body_length` and `status_code` to `-1` in
case of failure. The client code must correctly handle this case.

## Example output sample
### Example output sample

```JSON
{
Expand Down Expand Up @@ -727,12 +729,12 @@ case of failure. The client code must correctly handle this case.
}
```

# Limitations
## Limitations

Web Connectivity does not correctly handle server-side blocking with `http://` like URLs, as
documented by [ooni/probe#2661](https://github.com/ooni/probe/issues/2661).

# Privacy considerations
## Privacy considerations

If the client has opted out of providing the ASN of their probe the
client_resolver key may give away extra information pertaining to the network
Expand Down

0 comments on commit fbba757

Please sign in to comment.