Meta tags:
description= Towards a truly configurable transport protocol;
Headings (most frequently used words):
pluginized, quic, compiling, pquic, your, first, plugin, getting, started, towards, truly, configurable, transport, protocol, checking, that, picoquicdemo, works, running, inside,
Text of the page (most frequently used words):
the (46), pquic (15), plugin (14), fec (12), quic (12), that (11), and (11), install (10), plugins (9), working_dir (8), #picoquicdemo (8), server (8), first (8), you (8), should (7), client (6), this (6), make (6), compile (6), git (6), picotls (6), pluginized (6), are (5), connection (5), code (5), let (5), process (5), can (5), cmake (5), 4443 (4), launch (4), with (4), follows (4), for (4), exchange (4), our (4), them (4), clang (4), update (4), need (4), apt (4), but (4), used (3), picoquic (3), both (3), local (3), not (3), llc (3), following (3), https (3), might (3), now (3), all (3), which (3), clone (3), github (3), libarchive (3), submodule (3), sudo (3), dnf (3), protocol (3), log (2), frames (2), forward (2), erasure (2), correction (2), other (2), terminal (2), starting (2), port (2), name (2), just_once (2), hrr (2), open (2), two (2), terminals (2), one (2), will (2), your (2), several (2), files (2), have (2), generated (2), ebpf (2), error (2), about (2), variables (2), makefile (2), org (2), modify (2), source (2), base (2), implementation (2), works (2), data (2), compiling (2), shown (2), compiled (2), generate (2), com (2), dev (2), ubpf (2), michelfralloc (2), dependencies (2), gperftools (2), fedora (2), init (2), devel (2), once (2), just (2), working (2), directory (2), openssl (2), available (2), test (2), 2021, uclouvain, quick, look, shows, new, over, these, specific, injected, showing, achieved, inject, wonderful, sfpid, frame, 10000, notice, here, simpler, processing, limit, transfer, using, options, run, running, inside, objects, been, each, elf, containing, implementing, behavior, plug, raises, found, compilation, llvm, more, recent, versions, work, case, folders, then, well, little, such, protects, exchanged, exactly, does, into, lot, logs, last, lines, see, successfully, completed, without, great, convenience, different, below, before, going, further, check, depending, provided, arguments, either, acts, checking, end, executables, including, act, google, perftools, present, report, any, issue, also, required, current, build, dependency, handle, memory, warnings, fetch, virtual, machine, within, set, commands, libssl, pwd, return, back, fail, some, met, retry, instructions, come, from, readme, during, assume, provides, tls, based, itself, requires, getting, started, project, updated, latest, specification, draft, endpoint, 443, august, 2020, framework, enables, clients, servers, dynamically, extend, per, basis, towards, truly, configurable, transport, publications,
Text of the page (random words):
pluginized quic pluginized quic about publications pluginized quic towards a truly configurable transport protocol pluginized quic pluginized quic is a framework that enables quic clients and servers to dynamically exchange protocol plugins that extend the protocol on a per connection basis august 2020 update pluginized quic is now updated to the latest quic specification draft 29 a test endpoint is available at test pquic org 443 all the source code of this project is available on github getting started compiling pquic during this process we assume our base working directory is working_dir first you need to clone picotls which provides the tls implementation on which pquic is based it itself requires openssl sudo apt install libssl dev or dnf install openssl devel cd working_dir git clone https github com p quic picotls git cd picotls the following instructions just come from the picotls readme git submodule init git submodule update cmake cmake might fail if some dependencies are not met so install them and retry the cmake make once picotls is compiled just go back to the working directory cd pwd should return working_dir once picotls is set up you can compile pquic with the following commands git clone https github com p quic pquic cd pquic install libarchive used for the plugin exchange on fedora dnf install libarchive devel sudo apt install libarchive dev fetch and compile ubpf the virtual machine used within pquic git submodule update init cd ubpf vm make make might generate warnings but should compile cd compile michelfralloc dependency to handle memory cd picoquic michelfralloc make cd also install gperftools required in the current build process on fedora dnf install gperftools sudo apt install google perftools cmake if all the dependencies are present cmake should not report any issue make at the end of this process you should have generated several executables including picoquicdemo which can act as both the pquic client and server checking that picoquicdemo works before going further let s check that our compiled code can exchange data depending on the provided arguments picoquicdemo either acts as a p quic client or a p quic server let s generate our first connection for convenience let s open two different terminals in the first one we will launch the server as shown below cd working_dir pquic picoquicdemo starting picoquic server on port 4443 server name just_once 0 hrr 0 0 local plugins and 0 both plugins now on the other terminal launch the client as follows cd working_dir pquic picoquicdemo 1 4443 a lot of logs should be shown but in the last lines of the client you should see that the connection successfully completed without error great compiling your first plugin now that the base implementation works well let s modify it a little such that it protects the exchanged data with forward erasure correction the fec plugin exactly does this but first of all we need to compile it into ebpf code for the compilation process you need clang 6 0 and llc 6 0 you can install them by following the process at https apt llvm org more recent versions might work but in this case you need to modify the clang and llc variables in the makefile s in the plugin source code folders then you can compile the fec plugin as follows cd working_dir pquic cd plugins fec make if it raises an error about clang 6 0 not found update the clang and llc variables in makefile that s it several objects files should have been generated each of them are elf files containing the ebpf code implementing the plugin behavior let s plug them in pquic running your first plugin inside pquic as in our first run of picoquicdemo open two terminals in the first one we will launch the server with the fec plugin as follows cd working_dir pquic picoquicdemo p plugins fec fec plugin starting picoquic server on port 4443 server name just_once 0 hrr 0 1 local plugins and 0 both plugins local plugin plugins fec fec plugin and on the other terminal we launch the client with the fec plugin as follows notice that here for simpler log processing we limit the transfer exchange to 10 kb by using the g and 4 options cd working_dir pquic picoquicdemo 4 g 10000 p plugins fec fec plugin 1 4443 a quick look at the client log shows that new frames sfpid frame are used over the connection these frames are specific to the injected fec plugin showing that we achieved to inject forward erasure correction to this connection wonderful 2021 uclouvain
|