def parse_rec_metrics_updated()

in scripts/qlog_parser.py [0:0]


def parse_rec_metrics_updated(line):
    # [2024/05/14 11:34:11 642348] [rec_metrics_updated] 
    # |scid:007cc254f81be8e78d765a2e63339fc99a66320d|xqc_send_ctl_on_ack_received|
    # cwnd:47152|inflight:1384|mode:0|applimit:0|pacing_rate:1477151|bw:13370|srtt:89748|latest_rtt:89748|ctl_rttvar:0|pto_count:89748|min_rtt:6|send:0|lost:0|tlp:29|recv:47152|
    data = {}
    event_scid = "unknown"
    segments = line.split('|')
    segments = [segment.strip() for segment in segments]
    assert(len(segments) > 1)
    for i in range(1,len(segments)):
        item = segments[i].split(':')
        item = [i.strip() for i in item]
        if(len(item) != 2):
            continue
        if item[0] == "scid":
            event_scid = item[1]
        elif item[0] == "cwnd":
            data["congestion_window"] = int(item[1])
        elif item[0] == "inflight":
            data["bytes_in_flight"] = int(item[1])
        elif item[0] == "pacing_rate":
            data["pacing_rate"] = int(item[1])
        elif item[0] == "pto_count":
            data["pto_count"] = int(item[1])
        elif item[0] == "ctl_rttvar":
            data["rtt_variance"] = int(item[1])
        elif item[0] == "min_rtt":
            data["min_rtt"] = int(item[1])
        elif item[0] == "latest_rtt":
            data["latest_rtt"] = int(item[1])

    return (data, event_scid)