Skip to content
Snippets Groups Projects
Commit 689bed65 authored by Bartolomeo Berend Müller's avatar Bartolomeo Berend Müller
Browse files

Change TCP max segement size to 1200 to be comparable to QUIC

parent f80031a4
Branches
No related tags found
No related merge requests found
SERVER_HANDSHAKE_TRAFFIC_SECRET 2cbc5714e6d25d52b582dac3d932bb88b1ff49eaff6f7ac0a9f6715c4fd4528d 68097c0ebd4c5d014448de9ea50b037d0370fea113af0f6b64c0700fbf29eaad35482cc39c1b95ed289b448cbeeee4d4
CLIENT_HANDSHAKE_TRAFFIC_SECRET 2cbc5714e6d25d52b582dac3d932bb88b1ff49eaff6f7ac0a9f6715c4fd4528d 52613ffe3afd4ebf603f301e58d4c0a33268098b01335ac8e8f99b6335dd8a2c20d4747b78c677dd7daeabf09d2dc7b7
EXPORTER_SECRET 2cbc5714e6d25d52b582dac3d932bb88b1ff49eaff6f7ac0a9f6715c4fd4528d b6d5532d20b7149fbfc7d7a2cd66160812cbd9279520991d08ff26a35fd0435130bf6823ff14536825005aff80973581
SERVER_TRAFFIC_SECRET_0 2cbc5714e6d25d52b582dac3d932bb88b1ff49eaff6f7ac0a9f6715c4fd4528d 6c8560d756b9607c38626a285d32f6147f397cf5967ca3feebbf2194e2b231fe171e0278fe9def67c83f65e34c94f508
CLIENT_TRAFFIC_SECRET_0 2cbc5714e6d25d52b582dac3d932bb88b1ff49eaff6f7ac0a9f6715c4fd4528d 3aadfca10b7bb787f46ed32c70fef3658a45cd98d509712d5aa616eb37e9f6f34ff7d8af0a2596471124d8d56af5a191
SERVER_HANDSHAKE_TRAFFIC_SECRET 0a8221ff45245a0e211968805d1dbbe17c3585cae6c81ac7746be9e96d1a2ab1 62ebda5863617810d812cca9e3485754bd28e50cd87b9693c28b8519f3ee3c2dd6473ec510bb092b71e94f4f7303bc9b
CLIENT_HANDSHAKE_TRAFFIC_SECRET 0a8221ff45245a0e211968805d1dbbe17c3585cae6c81ac7746be9e96d1a2ab1 c2bff011805145f93530008093597abc3a6093d3e7cb42d69ef7b59df2ca2d93c440fc0b598042641ee0047bd62d9cd2
EXPORTER_SECRET 0a8221ff45245a0e211968805d1dbbe17c3585cae6c81ac7746be9e96d1a2ab1 1c53f6f5e7652c9f19662cc1c7d7a8742120845efcb2349e860d08f8116bb41ee2aaeb0faf0b31d45fe21e4d7c8bb2d8
SERVER_TRAFFIC_SECRET_0 0a8221ff45245a0e211968805d1dbbe17c3585cae6c81ac7746be9e96d1a2ab1 27bf0448aaecb58f4102d1d6a66640084df2c19faa7f669874a547b6a6821b185d16732cb340f57a9ffeb2a70dc08674
CLIENT_TRAFFIC_SECRET_0 0a8221ff45245a0e211968805d1dbbe17c3585cae6c81ac7746be9e96d1a2ab1 6e6c671722c01c51a6ab05bc681ddd7d86d7df84365feef768ee28b567e15818de357b662ad9c1fd9f9d7164e9ef2603
SERVER_HANDSHAKE_TRAFFIC_SECRET be85cc1be51d80e8c99363869e702c2bb38f7d3fa69314db4c2bb16c30e1cc9f 1d52b13d392bb9228c8e25dd0380212b428ac155f1a3309394793edefaec389dee0c7aa6b5dca8d74e92a3ccedeee319
CLIENT_HANDSHAKE_TRAFFIC_SECRET be85cc1be51d80e8c99363869e702c2bb38f7d3fa69314db4c2bb16c30e1cc9f b9a525f69108ab2a699eb78079f5903cc6d4784403cf3e1887db5929ffa20d60e588351ddea2ded115e711128c6871f6
EXPORTER_SECRET be85cc1be51d80e8c99363869e702c2bb38f7d3fa69314db4c2bb16c30e1cc9f d4c8ba0fbff53c4340b08b54a929760ec86746b4624f2fb7fcbdac4f50dda25a6fdfefe3325056bf736cf4710239cf2d
SERVER_TRAFFIC_SECRET_0 be85cc1be51d80e8c99363869e702c2bb38f7d3fa69314db4c2bb16c30e1cc9f dc9ee2b26ec9c87923c3f01f6d7377f0d058f707ce3b9468197fc88b6030fec13f35ebe29f3ccf7ce95c720fd7969e07
CLIENT_TRAFFIC_SECRET_0 be85cc1be51d80e8c99363869e702c2bb38f7d3fa69314db4c2bb16c30e1cc9f ced72edb7ae9ed0b2aaff6fc44a73bef38de64bb62d399cd7a50127636733e4478aff465ec859cb04244e889c8ac7aee
SERVER_HANDSHAKE_TRAFFIC_SECRET 64b8cfadd89a6e3114a4183834f3f46233c57c7cba07e185fdaf8bb6b9a34de5 464b905bc47a6e02ea8dd673143d80ca005d14e185860cd583bf31087838b3789edac6ea91969aadcef832b2f71d758c
CLIENT_HANDSHAKE_TRAFFIC_SECRET 64b8cfadd89a6e3114a4183834f3f46233c57c7cba07e185fdaf8bb6b9a34de5 acc0803dd3466d42587c60d39bf4094f62184a198c28031ae158d58038c7c2a796e07008907afe1147f5f9fa34a57ea0
EXPORTER_SECRET 64b8cfadd89a6e3114a4183834f3f46233c57c7cba07e185fdaf8bb6b9a34de5 14bb5a4fab40f2ad2b953d19bab8754f3407d57ad914cf52b38b186d678f99099c95314aefd20809921fb9184e08aa95
SERVER_TRAFFIC_SECRET_0 64b8cfadd89a6e3114a4183834f3f46233c57c7cba07e185fdaf8bb6b9a34de5 32f583574d3dd967669f4c80841673d8522df0c629c7fb35d933ad45fb3b3d3e5b939b6f89a40568a7620c655896f851
CLIENT_TRAFFIC_SECRET_0 64b8cfadd89a6e3114a4183834f3f46233c57c7cba07e185fdaf8bb6b9a34de5 51e0277a31fda722b55c5e5d5388c6f92869e687afc183c133b9b8b6ce68b9bd88f8317a39d5ead4de9588ce0d9ae9c0
{"qlog_version":"0.3","qlog_format":"JSON-SEQ","title":"cquiche_s_timer qlog","description":"cquiche_s_timer qlog id=697e5c45a7ae1da114051c9999be198620088ec9","trace":{"vantage_point":{"type":"client"},"title":"cquiche_s_timer qlog","description":"cquiche_s_timer qlog id=697e5c45a7ae1da114051c9999be198620088ec9","configuration":{"time_offset":0.0}}} {"qlog_version":"0.3","qlog_format":"JSON-SEQ","title":"cquiche_s_timer qlog","description":"cquiche_s_timer qlog id=38cf05b47b0b37542df8dc4316081f8f9ee3fd7d","trace":{"vantage_point":{"type":"client"},"title":"cquiche_s_timer qlog","description":"cquiche_s_timer qlog id=38cf05b47b0b37542df8dc4316081f8f9ee3fd7d","configuration":{"time_offset":0.0}}}
{"time":0.0,"name":"transport:parameters_set","data":{"owner":"local","tls_cipher":"None","disable_active_migration":false,"max_idle_timeout":30000,"max_udp_payload_size":1200,"ack_delay_exponent":3,"max_ack_delay":25,"active_connection_id_limit":2,"initial_max_data":10000000,"initial_max_stream_data_bidi_local":1000000,"initial_max_stream_data_bidi_remote":1000000,"initial_max_stream_data_uni":1000000,"initial_max_streams_bidi":100,"initial_max_streams_uni":100}} {"time":0.0,"name":"transport:parameters_set","data":{"owner":"local","tls_cipher":"None","disable_active_migration":false,"max_idle_timeout":30000,"max_udp_payload_size":1200,"ack_delay_exponent":3,"max_ack_delay":25,"active_connection_id_limit":2,"initial_max_data":10000000,"initial_max_stream_data_bidi_local":1000000,"initial_max_stream_data_bidi_remote":1000000,"initial_max_stream_data_uni":1000000,"initial_max_streams_bidi":100,"initial_max_streams_uni":100}}
{"time":0.008598,"name":"transport:packet_sent","data":{"header":{"packet_type":"initial","packet_number":0,"version":"1","scil":20,"dcil":16,"scid":"697e5c45a7ae1da114051c9999be198620088ec9","dcid":"2f977b4d5ac9d82da8d97d2b903a6aa9"},"raw":{"length":1098,"payload_length":1035},"send_at_time":0.008598,"frames":[{"frame_type":"crypto","offset":0,"length":1031}]}} {"time":0.018517999,"name":"transport:packet_sent","data":{"header":{"packet_type":"initial","packet_number":0,"version":"1","scil":20,"dcil":16,"scid":"38cf05b47b0b37542df8dc4316081f8f9ee3fd7d","dcid":"8af447d7eba160b4f5bddc7270a59bef"},"raw":{"length":1098,"payload_length":1035},"send_at_time":0.018517999,"frames":[{"frame_type":"crypto","offset":0,"length":1031}]}}
{"time":0.008598,"name":"recovery:metrics_updated","data":{"smoothed_rtt":333.0,"rtt_variance":166.5,"congestion_window":12000,"bytes_in_flight":1098,"ssthresh":18446744073709551615}} {"time":0.018517999,"name":"recovery:metrics_updated","data":{"smoothed_rtt":333.0,"rtt_variance":166.5,"congestion_window":12000,"bytes_in_flight":1098,"ssthresh":18446744073709551615}}
{"time":0.68416804,"name":"transport:packet_received","data":{"header":{"packet_type":"initial","packet_number":0,"version":"1","scil":20,"dcil":20,"scid":"0000000000002001c44bf0a77f8432798a7f4832","dcid":"697e5c45a7ae1da114051c9999be198620088ec9"},"raw":{"length":1200,"payload_length":852},"frames":[{"frame_type":"ack","ack_delay":0.0,"acked_ranges":[[0,0]]},{"frame_type":"crypto","offset":0,"length":826}]}} {"time":204.14677,"name":"transport:packet_received","data":{"header":{"packet_type":"initial","packet_number":0,"version":"1","scil":20,"dcil":20,"scid":"00000000000010014430020ae1c41277123b3d1c","dcid":"38cf05b47b0b37542df8dc4316081f8f9ee3fd7d"},"raw":{"length":1200,"payload_length":852},"frames":[{"frame_type":"ack","ack_delay":0.0,"acked_ranges":[[0,0]]},{"frame_type":"crypto","offset":0,"length":826}]}}
{"time":0.68416804,"name":"recovery:metrics_updated","data":{"min_rtt":0.67557,"smoothed_rtt":0.67557,"latest_rtt":0.67557,"rtt_variance":0.337785,"bytes_in_flight":0}} {"time":204.14677,"name":"recovery:metrics_updated","data":{"min_rtt":204.12825,"smoothed_rtt":204.12825,"latest_rtt":204.12825,"rtt_variance":102.064125,"bytes_in_flight":0}}
{"time":0.791948,"name":"transport:packet_received","data":{"header":{"packet_type":"handshake","packet_number":0,"version":"1","scil":20,"dcil":20,"scid":"0000000000002001c44bf0a77f8432798a7f4832","dcid":"697e5c45a7ae1da114051c9999be198620088ec9"},"raw":{"length":298,"payload_length":249},"frames":[{"frame_type":"crypto","offset":0,"length":228}]}} {"time":204.73093,"name":"transport:packet_received","data":{"header":{"packet_type":"handshake","packet_number":0,"version":"1","scil":20,"dcil":20,"scid":"00000000000010014430020ae1c41277123b3d1c","dcid":"38cf05b47b0b37542df8dc4316081f8f9ee3fd7d"},"raw":{"length":298,"payload_length":249},"frames":[{"frame_type":"crypto","offset":0,"length":228}]}}
{"time":0.80144596,"name":"transport:packet_received","data":{"header":{"packet_type":"handshake","packet_number":1,"version":"1","scil":20,"dcil":20,"scid":"0000000000002001c44bf0a77f8432798a7f4832","dcid":"697e5c45a7ae1da114051c9999be198620088ec9"},"raw":{"length":612,"payload_length":563},"frames":[{"frame_type":"crypto","offset":228,"length":11},{"frame_type":"crypto","offset":239,"length":385},{"frame_type":"crypto","offset":624,"length":80},{"frame_type":"crypto","offset":704,"length":52}]}} {"time":204.75575,"name":"transport:packet_received","data":{"header":{"packet_type":"handshake","packet_number":1,"version":"1","scil":20,"dcil":20,"scid":"00000000000010014430020ae1c41277123b3d1c","dcid":"38cf05b47b0b37542df8dc4316081f8f9ee3fd7d"},"raw":{"length":610,"payload_length":561},"frames":[{"frame_type":"crypto","offset":228,"length":11},{"frame_type":"crypto","offset":239,"length":384},{"frame_type":"crypto","offset":623,"length":79},{"frame_type":"crypto","offset":702,"length":52}]}}
{"time":0.80144596,"name":"transport:parameters_set","data":{"owner":"remote","tls_cipher":"Some(AES256_GCM)","original_destination_connection_id":"2f977b4d5ac9d82da8d97d2b903a6aa9","stateless_reset_token":"2810d617b6c5e9341ae5de9c9fdbfe1b","disable_active_migration":false,"max_idle_timeout":75000,"max_udp_payload_size":65527,"ack_delay_exponent":3,"max_ack_delay":25,"active_connection_id_limit":2,"initial_max_data":8585216,"initial_max_stream_data_bidi_local":65536,"initial_max_stream_data_bidi_remote":65536,"initial_max_stream_data_uni":65536,"initial_max_streams_bidi":128,"initial_max_streams_uni":3}} {"time":204.75575,"name":"transport:parameters_set","data":{"owner":"remote","tls_cipher":"Some(AES256_GCM)","original_destination_connection_id":"8af447d7eba160b4f5bddc7270a59bef","stateless_reset_token":"ccdf20b1a7675d440f8375e878a17716","disable_active_migration":false,"max_idle_timeout":75000,"max_udp_payload_size":65527,"ack_delay_exponent":3,"max_ack_delay":25,"active_connection_id_limit":2,"initial_max_data":8585216,"initial_max_stream_data_bidi_local":65536,"initial_max_stream_data_bidi_remote":65536,"initial_max_stream_data_uni":65536,"initial_max_streams_bidi":128,"initial_max_streams_uni":3}}
{"time":1.2092669,"name":"transport:packet_sent","data":{"header":{"packet_type":"initial","packet_number":1,"version":"1","scil":20,"dcil":20,"scid":"697e5c45a7ae1da114051c9999be198620088ec9","dcid":"0000000000002001c44bf0a77f8432798a7f4832"},"raw":{"length":73,"payload_length":6},"send_at_time":1.2092669,"frames":[{"frame_type":"ack","ack_delay":0.065,"acked_ranges":[[0,0]]}]}} {"time":206.04721,"name":"transport:packet_sent","data":{"header":{"packet_type":"initial","packet_number":1,"version":"1","scil":20,"dcil":20,"scid":"38cf05b47b0b37542df8dc4316081f8f9ee3fd7d","dcid":"00000000000010014430020ae1c41277123b3d1c"},"raw":{"length":73,"payload_length":6},"send_at_time":206.04721,"frames":[{"frame_type":"ack","ack_delay":0.238,"acked_ranges":[[0,0]]}]}}
{"time":1.2092669,"name":"recovery:metrics_updated","data":{"pacing_rate":22203472}} {"time":206.04721,"name":"recovery:metrics_updated","data":{"pacing_rate":73483}}
{"time":1.2092669,"name":"transport:packet_sent","data":{"header":{"packet_type":"handshake","packet_number":0,"version":"1","scil":20,"dcil":20,"scid":"697e5c45a7ae1da114051c9999be198620088ec9","dcid":"0000000000002001c44bf0a77f8432798a7f4832"},"raw":{"length":127,"payload_length":61},"send_at_time":1.2092669,"frames":[{"frame_type":"ack","ack_delay":0.052,"acked_ranges":[[0,1]]},{"frame_type":"crypto","offset":0,"length":52}]}} {"time":206.04721,"name":"transport:packet_sent","data":{"header":{"packet_type":"handshake","packet_number":0,"version":"1","scil":20,"dcil":20,"scid":"38cf05b47b0b37542df8dc4316081f8f9ee3fd7d","dcid":"00000000000010014430020ae1c41277123b3d1c"},"raw":{"length":128,"payload_length":62},"send_at_time":206.04721,"frames":[{"frame_type":"ack","ack_delay":0.166,"acked_ranges":[[0,1]]},{"frame_type":"crypto","offset":0,"length":52}]}}
{"time":1.2092669,"name":"recovery:metrics_updated","data":{"bytes_in_flight":127}} {"time":206.04721,"name":"recovery:metrics_updated","data":{"bytes_in_flight":128}}
{"time":1.2681559,"name":"transport:packet_sent","data":{"header":{"packet_type":"1RTT","packet_number":0},"raw":{"length":48,"payload_length":10},"send_at_time":1.2681559,"frames":[{"frame_type":"connection_close","error_space":"application_error","error_code":0,"reason":"kthxbye"}]}} {"time":206.1397,"name":"transport:packet_sent","data":{"header":{"packet_type":"1RTT","packet_number":0},"raw":{"length":48,"payload_length":10},"send_at_time":206.1397,"frames":[{"frame_type":"connection_close","error_space":"application_error","error_code":0,"reason":"kthxbye"}]}}
{"time":1.2681559,"name":"recovery:metrics_updated","data":{"bytes_in_flight":175}} {"time":206.1397,"name":"recovery:metrics_updated","data":{"bytes_in_flight":176}}
...@@ -166,6 +166,7 @@ def get_packets_sent_by_node(udp_packets_df): ...@@ -166,6 +166,7 @@ def get_packets_sent_by_node(udp_packets_df):
# print(df.info()) # print(df.info())
print(df) print(df)
return df
def analyze_udp_packets(kem_id_df): def analyze_udp_packets(kem_id_df):
...@@ -326,4 +327,5 @@ def map_tls_handshake_types(handshake_types): ...@@ -326,4 +327,5 @@ def map_tls_handshake_types(handshake_types):
] ]
main() if __name__ == "__main__":
main()
...@@ -14,7 +14,7 @@ import scipy ...@@ -14,7 +14,7 @@ import scipy
import helper_scripts.helper_functions as helper_functions import helper_scripts.helper_functions as helper_functions
import helper_scripts.performance_eval_of_oqs as performance_eval_of_oqs import helper_scripts.performance_eval_of_oqs as performance_eval_of_oqs
RESULTS_DIR = "saved/results-run-20250126-vm-p16" RESULTS_DIR = "saved/results-run-20250207-vm-p16"
FILTER_RESULTS = [] FILTER_RESULTS = []
PLOTS_DIR = "plots" PLOTS_DIR = "plots"
FEATHERS_DIR = "feathers" FEATHERS_DIR = "feathers"
...@@ -897,7 +897,7 @@ def plot_distributions(data): ...@@ -897,7 +897,7 @@ def plot_distributions(data):
def plot_multiple_violin_plots(data, filtered: bool = False): def plot_multiple_violin_plots(data, filtered: bool = False):
os.makedirs( os.makedirs(
f"{PLOTS_DIR}/distributions/filtered/multiple-violin-plots", f"{PLOTS_DIR}/distributions/multiple-violin-plots/filtered/",
mode=0o777, mode=0o777,
exist_ok=True, exist_ok=True,
) )
...@@ -1115,6 +1115,7 @@ def plot_distributions(data): ...@@ -1115,6 +1115,7 @@ def plot_distributions(data):
fontsize="small", fontsize="small",
) )
plt.tight_layout()
plt.savefig( plt.savefig(
f"{PLOTS_DIR}/distributions/cdf/per-sec-level/{subdir_string}cdf-for-{row['scenario']}-{row['protocol']}-{row['sec_level']}-{param_value}{graph_name_extension}.pdf" f"{PLOTS_DIR}/distributions/cdf/per-sec-level/{subdir_string}cdf-for-{row['scenario']}-{row['protocol']}-{row['sec_level']}-{param_value}{graph_name_extension}.pdf"
) )
......
...@@ -32,6 +32,10 @@ for i in $(seq 1 ${NUMBER_OF_NETWORK_NAMESPACES}); do ...@@ -32,6 +32,10 @@ for i in $(seq 1 ${NUMBER_OF_NETWORK_NAMESPACES}); do
address ${CLIENT_VETH_LL_ADDR} \ address ${CLIENT_VETH_LL_ADDR} \
netns ${CLIENT_NS} netns ${CLIENT_NS}
# Set MTU to 1252 -> comparable to minimal 1200 max_datagram_size in QUIC
ip netns exec ${SERVER_NS} ip link set dev ${SERVER_VETH} mtu 1252
ip netns exec ${CLIENT_NS} ip link set dev ${CLIENT_VETH} mtu 1252
ip netns exec ${SERVER_NS} \ ip netns exec ${SERVER_NS} \
ip link set dev ${SERVER_VETH} up ip link set dev ${SERVER_VETH} up
ip netns exec ${SERVER_NS} \ ip netns exec ${SERVER_NS} \
......
import math
import pandas as pd import pandas as pd
FEATHERS_DIR = "feathers" FEATHERS_DIR = "feathers"
import generate_graphs as gg import generate_graphs as gg
import helper_scripts.helper_functions as hf import helper_scripts.helper_functions as hf
import analyze_packets as ap
def main(): def main():
data = pd.read_feather(f"{FEATHERS_DIR}/data.feather") data = pd.read_feather(f"{FEATHERS_DIR}/data.feather")
# data = pd.read_feather(f"{FEATHERS_DIR}/data_run_20241028.feather") # data = pd.read_feather(f"{FEATHERS_DIR}/data_run_20241028.feather")
static_scenario_statistical_analysis(data) p_no_one_sec_delay()
# static_scenario_statistical_analysis(data)
# median_of_all_static_runs_per_algorithm(data) # median_of_all_static_runs_per_algorithm(data)
# stats_of_qtl95_of_packetloss(data) # stats_of_qtl95_of_packetloss(data)
# error_count_and_rate(data) # error_count_and_rate(data)
...@@ -20,6 +23,58 @@ def main(): ...@@ -20,6 +23,58 @@ def main():
# print_kem_ids() # print_kem_ids()
def p_no_one_sec_delay():
udp_packets_df = pd.read_feather("feathers/udp_packets.feather")
df = ap.get_packets_sent_by_node(udp_packets_df)
print("\n\n No one second delay")
df = df.drop(columns=["length_public_key", "length_ciphertext"])
# print(df)
df["cic"] = df["client_sent_packets_with_crypto_count"] - 1
df["sic"] = df["server_sent_packets_with_crypto_count"]
df = df.drop(
columns=[
"client_sent_packets_with_crypto_count",
"server_sent_packets_with_crypto_count",
]
)
df = df.query("cic <= 10 and sic <= 10")
def calc_p(cic, sic, l):
"""
Calculates the probability p_noOneSec.
Args:
cic: client initial count.
sic: server initial count.
l: loss probability.
Returns:
p_noOneSec as defined in the thesis.
"""
term1 = (1 - l) ** cic * (1 - l ** (sic + (cic - 1)))
term2 = 0
# range: upper is not inclusive, in math symbol SUM it is inclusive
for i in range(1, cic):
term2 += (
math.comb(cic, i) * (1 - l) ** (cic - i) * l**i * (1 - l ** (cic - i))
)
return term1 + term2
# print(df)
for l in [0.01, 0.05, 0.10, 0.20]:
df[f"p_noOneSec_{l}"] = df.apply(
lambda row: calc_p(row["cic"], row["sic"], l), axis=1
)
print(df)
def static_scenario_statistical_analysis(data): def static_scenario_statistical_analysis(data):
ldata = data ldata = data
print("Static scenario statistical analysis") print("Static scenario statistical analysis")
...@@ -105,12 +160,19 @@ def error_count_and_rate(data): ...@@ -105,12 +160,19 @@ def error_count_and_rate(data):
ldata = ldata.query("error_count > 0") ldata = ldata.query("error_count > 0")
print("Total index length with error count > 0") print("Total index length with error count > 0")
print(len(ldata.index)) print(len(ldata.index))
print("Error count describe") print("Data with error count > 0 describe error_count")
print(ldata["error_count"].describe()) print(ldata["error_count"].describe())
print("How much each scenario has error count > 0")
print(ldata["scenario"].value_counts()) print(ldata["scenario"].value_counts())
# print(ldata["scenario"].unique()) # all 10 scenarios print("How much each protocol has error count > 0")
print("With error count > 1") print(ldata["protocol"].value_counts())
ldata = ldata.query("error_count > 1") print("How much each scenario protocol combinanation has error count > 0")
print(ldata.groupby(["scenario", "protocol"]).size())
print("How much each kem_alg has error count > 0")
print(ldata["kem_alg"].value_counts())
print("With error count > 3")
ldata = ldata.query("error_count > 12")
print( print(
ldata[ ldata[
[ [
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment