Picoquic¤
Plugin Type: Service (IUT) Source Location:
plugins/services/iut/quic/picoquic/
Overview¤
The Picoquic plugin provides integration with the Picoquic QUIC implementation, developed by Christian Huitema. Picoquic is a lightweight, portable C implementation of the QUIC protocol that can function as both a client and server. It is mature, RFC-compliant, and actively maintained for both research and deployment use.
Configuration Options¤
| Parameter | Type | Default | Description |
|---|---|---|---|
name |
str | "picoquic" | Implementation name |
type |
ImplementationType | IUT | Implementation type |
version |
PicoquicVersion | (loaded from YAML) | Version configuration |
alpn |
Optional[str] | None | ALPN protocol identifier |
initial_rtt |
Optional[int] | None | Initial RTT in milliseconds |
max_stream_data |
Optional[int] | None | Maximum stream data in bytes |
max_data |
Optional[int] | None | Maximum connection data in bytes |
PicoquicVersion Fields:
| Parameter | Type | Default | Description |
|---|---|---|---|
version |
str | "" | Version string |
commit |
str | "" | Git commit hash |
dependencies |
List[Dict[str, str]] | [] | List of dependencies |
client |
Optional[dict] | {} | Client-specific configuration |
server |
Optional[dict] | {} | Server-specific configuration |
Usage Example¤
tests:
- name: "Picoquic Basic Test"
network_environment:
type: docker_compose
services:
server:
implementation:
name: picoquic
type: iut
protocol:
name: quic
version: rfc9000
role: server
client:
implementation:
name: picoquic
type: iut
protocol:
name: quic
version: rfc9000
role: client
target: server
steps:
wait: 30
Integration¤
- Inherits from
BaseQUICServiceManagerusing the template method pattern for consistent QUIC behavior - Uses the
picoquicdemobinary with C-based compilation via CMake - Docker-based deployment automatically handles all build dependencies (GCC, CMake, OpenSSL 1.1.1+)
- Supports conformance, interoperability, and performance testing scenarios