Summary plots

This commit is contained in:
Pascal Engélibert 2026-06-05 16:12:49 +02:00
commit 09764b6107
3 changed files with 550 additions and 70 deletions

92
exp.py
View file

@ -73,13 +73,13 @@ CONFIGS = {
"pi3": {
"experiments": [
#"impl-cipher-ver",
"impl-cert-ver",
#"impl-cert-ver",
#"impl-kex-ver",
#"zrtt",
#"realistic"
"realistic"
],
"sides": [
#"client",
"client",
"server",
],
"tls": [
@ -87,9 +87,9 @@ CONFIGS = {
True,
],
"records": [
{ "filename": "wp2", "repeat": 10000, "time": 300 },
#{ "filename": "yt2-ads", "repeat": 10000, "time": 600 },
#{ "filename": "yt2-ublock", "repeat": 10000, "time": 600 },
{ "filename": "wp2", "repeat": 10000, "time": 300, "reproduce": 2 },
{ "filename": "yt2-ads", "repeat": 10000, "time": 300, "reproduce": 2 },
{ "filename": "yt2-ublock", "repeat": 10000, "time": 300, "reproduce": 2 },
#{ "filename": "wp2", "repeat": 10000, "time": 300, "reproduce": 100 },
],
"repo_dir": "/home/tuxmain/reps/tlsbench",
@ -108,29 +108,32 @@ CONFIGS = {
"idle": "idle - - - - - - - - - - - 600.000081539154 0.0 896 4792 0.5399999999999991 0 -",
"notify_listen": ("0.0.0.0", 8090),
"notify_addr": "192.168.3.1:8090",
"concurrency": "4",
"concurrency": "1",
},
# i7-4790 -> core2
"core2": {
"experiments": [
"impl-cipher-ver",
"impl-cert-ver",
"impl-kex-ver",
#"impl-cipher-ver",
#"impl-cert-ver",
#"impl-kex-ver",
#"zrtt",
#"realistic",
"realistic",
#"debug",
],
"sides": [
"client",
#"server",
"server",
],
"tls": [
#False,
True,
False,
#True,
],
"records": [
{ "filename": "wp2", "repeat": 10000, "time": 300 },
#{ "filename": "yt2-ads", "repeat": 10000, "time": 600 },
#{ "filename": "yt2-ublock", "repeat": 10000, "time": 600 },
{ "filename": "wp2", "repeat": 10000, "time": 300, "reproduce": 3 },
{ "filename": "yt2-ads", "repeat": 10000, "time": 300, "reproduce": 3 },
{ "filename": "yt2-ublock", "repeat": 10000, "time": 300, "reproduce": 3 },
#{ "filename": "test", "repeat": 1, "time": 10 },
#{ "filename": "wp2", "repeat": 10000, "time": 300, "reproduce": 100 },
],
"repo_dir": "/home/tuxmain/reps/tlsbench",
"exp_dir": "/dev/shm/exp",
@ -148,6 +151,7 @@ CONFIGS = {
"idle": "idle - - - - - - - - - 1777360401.7482355 1777361601.7482355 1200.0000903606415 0 589 4764 3.478999999999999 0 -",
"notify_listen": ("0.0.0.0", 8090),
"notify_addr": "192.168.3.1:8090",
"concurrency": "1",
},
"core2-local": {
"experiments": [
@ -182,11 +186,11 @@ CONFIGS = {
# i7-4790 -> i5-7300HQ
"i5": {
"experiments": [
"impl-cipher-ver",
"impl-cert-ver",
#"impl-cipher-ver",
#"impl-cert-ver",
#"impl-kex-ver",
#"zrtt",
#"realistic",
"realistic",
],
"sides": [
"client",
@ -197,9 +201,9 @@ CONFIGS = {
True,
],
"records": [
{ "filename": "wp2", "repeat": 10000, "time": 300 },
#{ "filename": "yt2-ads", "repeat": 10000, "time": 600 },
#{ "filename": "yt2-ublock", "repeat": 10000, "time": 600 },
{ "filename": "wp2", "repeat": 10000, "time": 300, "reproduce": 2 },
{ "filename": "yt2-ads", "repeat": 10000, "time": 300, "reproduce": 2 },
{ "filename": "yt2-ublock", "repeat": 10000, "time": 300, "reproduce": 2 },
#{ "filename": "wp2", "repeat": 10000, "time": 300, "reproduce": 100 },
],
"repo_dir": "/home/tuxmain/reps/tlsbench",
@ -220,7 +224,8 @@ CONFIGS = {
"notify_addr": "192.168.3.1:8090",
"ld_preload": {
"openssl": "/home/tuxmain/reps/tlsbench/libssl.so:/home/tuxmain/reps/tlsbench/libcrypto.so",
}
},
"concurrency": "1",
},
"i5-local": {
"experiments": [
@ -265,23 +270,23 @@ CONFIGS = {
"server",
],
"tls": [
False,
#False,
True,
],
"records": [
# Can't repeat more than 8000 times here
# TODO check if netreplay client frees ports correctly, or try to reuse ports
{ "filename": "wp2", "repeat": 8000, "time": 180 },
{ "filename": "yt2-ads", "repeat": 8000, "time": 180 },
{ "filename": "yt2-ublock", "repeat": 8000, "time": 180 },
#{ "filename": "wp2", "repeat": 10000, "time": 300, "reproduce": 100 },
#{ "filename": "wp2", "repeat": 8000, "time": 180 },
#{ "filename": "yt2-ads", "repeat": 8000, "time": 180 },
#{ "filename": "yt2-ublock", "repeat": 8000, "time": 180 },
{ "filename": "wp2", "repeat": 10000, "time": 120, "reproduce": 10 },
],
"repo_dir": "/home/pengelib/tlsbench",
"exp_dir": "/dev/shm/exp",
"log_backup_dir": "/home/pengelib",
"local_addr": "TODO",
"remote_addr": "172.16.52.6",
"remote_ssh": "pengelib@gros-69",
"local_addr": "172.16.101.x",
"remote_addr": "172.16.101.x",
"remote_ssh": "pengelib@paradoxe-x",
"remote_psw": None,
"remote_repo_dir": "/home/pengelib/tlsbench",
"wattmeter": False,
@ -289,9 +294,9 @@ CONFIGS = {
"rapl": False,
"sa": False,
"listen_port": 8080,
"idle": "idle - - - - - - - - - 1775721200 1775721800 600 0 222346 1105446 10.105035525271305 0 -",
"idle": "idle - - - - - - - - - 1779276600 1779277200 600 0 222346 1105446 2.935994312264558 0 -",
"notify_listen": ("0.0.0.0", 8090),
"notify_addr": "TODO:8090",
"notify_addr": "172.16.101.x:8090",
"ld_preload": {
"openssl": "/home/pengelib/openssl-openssl-3.6.1/libssl.so.3:/home/pengelib/openssl-openssl-3.6.1/libcrypto.so.3",
}
@ -351,13 +356,13 @@ CERT_SIGN_ALGS = [
"rsa2048", "rsa3072", "rsa4096", # widely used
]
IMPLS = [
#"aws-lc", # Amazon's crypto widely used in Rust stuff
"aws-lc", # Amazon's crypto widely used in Rust stuff
#"boring", # Google's fork of OpenSSL used in Chrome and Android
#"graviola", # New crypto in Rust
#"openssl", # widely used
#"openssl-static",
#"ring", # used in most Rust stuff
"symcrypt", # Microsoft's crypto
#"symcrypt", # Microsoft's crypto
]
# Symmetric ciphers
# They also allow to choose the TLS version.
@ -449,12 +454,11 @@ EXPERIMENTS = {
"debug": {
"impls": IMPLS,
"ciphers": [
"ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,ECDHE_RSA_WITH_AES_128_GCM_SHA256",
#"ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
"AES_256_GCM_SHA384",
],
"kexes": ["X25519"],
"kexes": ["X25519MLKEM768"],
"cert": ["prime256v1"],
"earlydata": ["0"],
"earlydata": ["1"],
},
"realistic": {
"impls": IMPLS,
@ -463,14 +467,14 @@ EXPERIMENTS = {
"AES_256_GCM_SHA384",
#"CHACHA20_POLY1305_SHA256",
#"ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,ECDHE_RSA_WITH_AES_128_GCM_SHA256",
#"ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,ECDHE_RSA_WITH_AES_256_GCM_SHA384",
"ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,ECDHE_RSA_WITH_AES_256_GCM_SHA384",
#"ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256",
],
"kexes": [
"X25519",
#"SECP256R1",
#"SECP384R1",
#"X25519MLKEM768",
"X25519MLKEM768",
#"SECP256R1MLKEM768",
#"MLKEM768",
],
@ -482,7 +486,7 @@ EXPERIMENTS = {
#"rsa4096",
"realistic",
],
"earlydata": ["1"],
"earlydata": ["0", "1"],
},
}
@ -845,7 +849,7 @@ def run_exp(config, only_record=None, idle=False, shutdown=False, debug=False):
for kex in exp["kexes"]:
for cipher in exp["ciphers"]:
for earlydata in exp["earlydata"]:
if not alg_filter(kex, alg, cipher, impl):
if not alg_filter(kex, alg, cipher, impl) or (earlydata == "1" and "WITH" in cipher):
continue
for tls in config["tls"]:
tls_int = int(tls)