Hello all I wanted to know if anyone has used below awk script to calculate jitter. We have 2 different values of jitter, and the calculations in the script dont explain me fully which jitter you would look for finding out whats the jitter for that particular communication. Can someone please help me for this?
Cheers Haseeb # ============================== jitter.awk ============================ BEGIN { num_recv=0 } { # Trace line format: normal if ($2 != "-t") { event = $1 time = $2 if (event == "+" || event == "-") node_id = $3 if (event == "r" || event == "d") node_id = $4 flow_id = $8 pkt_id = $12 pkt_size = $6 flow_t = $5 level = "AGT" } # Trace line format: new if ($2 == "-t") { event = $1 time = $3 node_id = $5 flow_id = $39 pkt_id = $41 pkt_size = $37 flow_t = $45 level = $19 } # Store packets send time if (level == "AGT" && sendTime[pkt_id] == 0 && (event == "+" || event == "s") && pkt_size >= 512) { sendTime[pkt_id] = time } # Store packets arrival time if (level == "AGT" && event == "r" && pkt_size >= 512) { recvTime[pkt_id] = time num_recv++ } } END { # Compute average jitter jitter1 = jitter2 = tmp_recv = 0 prev_time = delay = prev_delay = processed = 0 prev_delay = -1 for (i=0; processed<num_recv; i++) { if(recvTime[i] != 0) { tmp_recv++ if(prev_time != 0) { delay = recvTime[i] - prev_time e2eDelay = recvTime[i] - sendTime[i] if(delay < 0) delay = 0 if(prev_delay != -1) { jitter1 += abs(e2eDelay - prev_e2eDelay) jitter2 += abs(delay-prev_delay) } prev_delay = delay prev_e2eDelay = e2eDelay } prev_time = recvTime[i] } processed++ } } END { printf("Jitter1 = %.2f\n",jitter1*1000/tmp_recv); printf("Jitter2 = %.2f\n",jitter2*1000/tmp_recv); } function abs(value) { if (value < 0) value = 0-value return value }