ooni-probe-cli/internal/engine
kelmenhorst 88236a4352
feat: add an experimental quicping experiment (#677)
This experiment pings a QUIC-able host. It can be used to measure QUIC availability independently from TLS.
This is the reference issue: https://github.com/ooni/probe/issues/1994

### A QUIC PING is:
- a QUIC Initial packet with a size of 1200 bytes (minimum datagram size defined in the [RFC 9000](https://www.rfc-editor.org/rfc/rfc9000.html#initial-size)),
- with a random payload (i.e. no TLS ClientHello),
- with the version string 0xbabababa which forces Version Negotiation at the server.

QUIC-able hosts respond to the QUIC PING with a Version Negotiation packet.

The input is a domain name or an IP address. The default port used by quicping is 443, as this is the port used by HTTP/3. The port can be modified with the `-O Port=` option.
The default number of repetitions is 10, it can be changed with `-O Repetitions=`.

### Usage:
```
./miniooni -i google.com quicping
./miniooni -i 142.250.181.206 quicping
./miniooni -i 142.250.181.206 -OPort=443 quicping
./miniooni -i 142.250.181.206 -ORepetitions=2 quicping

```
2022-02-14 19:21:16 +01:00
..
experiment feat: add an experimental quicping experiment (#677) 2022-02-14 19:21:16 +01:00
geolocate fix(geolocate): enforce 7s timeout for each lookupper (#678) 2022-02-09 13:22:01 +01:00
httpheader feat: start preparing for a cli release (#672) 2022-01-24 14:56:51 +01:00
internal fix(resolvermake): re-enable dns.google DoH HTTP3 resolutions (#680) 2022-01-31 19:12:43 +01:00
legacy cleanup: merge legacy errorsx in netxlite and hide classifiers (#655) 2022-01-07 17:31:21 +01:00
mockable feat(torsf): collect tor logs, select rendezvous method, count bytes (#683) 2022-02-07 17:05:36 +01:00
netx [forwardport] fix(netx): stop collecting HTTP performance metrics (#689) 2022-02-09 15:08:19 +01:00
probeservices refactor: move httpx into the internal package (#646) 2022-01-05 17:17:20 +01:00
testdata fix: add missing files causing tests to fail (#202) 2021-02-02 14:18:22 +01:00
.gitignore feat: support embedding encrypted psiphon config (#285) 2021-04-02 17:36:06 +02:00
allexperiments.go feat: add an experimental quicping experiment (#677) 2022-02-14 19:21:16 +01:00
doc.go feat(engine): allow runner to return many measurements (#527) 2021-09-30 00:54:52 +02:00
experiment_integration_test.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
experiment_internal_test.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
experiment_test.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
experiment.go feat(torsf): collect tor logs, select rendezvous method, count bytes (#683) 2022-02-07 17:05:36 +01:00
experimentbuilder_test.go chore: merge probe-engine into probe-cli (#201) 2021-02-02 12:05:47 +01:00
experimentbuilder.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
inputloader_network_test.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
inputloader_test.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
inputloader.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
inputprocessor_test.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
inputprocessor.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
saver_test.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
saver.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
session_integration_test.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
session_internal_test.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
session_nopsiphon_test.go [forwardport] fix(mk): do nothing if we already have psiphon config (#605) (#606) 2021-11-19 12:40:10 +01:00
session_nopsiphon.go [forwardport] fix(mk): do nothing if we already have psiphon config (#605) (#606) 2021-11-19 12:40:10 +01:00
session_psiphon_test.go [forwardport] fix(mk): do nothing if we already have psiphon config (#605) (#606) 2021-11-19 12:40:10 +01:00
session_psiphon.go [forwardport] fix(mk): do nothing if we already have psiphon config (#605) (#606) 2021-11-19 12:40:10 +01:00
session.go feat(torsf): collect tor logs, select rendezvous method, count bytes (#683) 2022-02-07 17:05:36 +01:00
submitter_test.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00
submitter.go refactor: interfaces and data types into the model package (#642) 2022-01-03 13:53:23 +01:00