#!/bin/tcsh # # Usage: process-congnotif fwdPM ftp ID duration warmup pairs # if ( $? != 0 || $# < 6 ) then echo "Usage: $0 fwdPM ftp ID duration warmup pairs" exit 2 endif # command-line arguments set fwdPM = $1 set ftp = $2 set ID = $3 set duration = $4 set warmup = $5 set pairs = $6 set run = 1 set datadir = "./processed" if (! -e $datadir) then echo "ERR> processed directory must already exist!" exit endif set pattern = "${fwdPM}cs-${ftp}FTP-$ID-${duration}s" printf "%-5.2f" $fwdPM >! tmp set rate = `cat tmp` if ($ID == "0CL") then set queues = "01" else if ($ID == "1CL") then set queues = "01 12" else if ($ID == "2CL") then set queues = "01 12 34" else if ($ID == "3CL") then set queues = "01 12 34 56" endif foreach q ($queues) # :: AGGREGATE :::: # add MARKS + DROPS > CONGNOTIF # (FTP flows are srcs 8-9. HTTP flows are srcs 10-11. CT are srcs 12+) set dropsfile = "$datadir/DROPS-$q" set marksfile = "$datadir/MARKS-$q" set cnfile = "$datadir/CONGNOTIF-$q" if ! (-e $cnfile) then echo "# c/s ftp ID run congnotif% congnotifs packets" > $cnfile endif printf "%-5.2f %-3s %-3s %-3d " $fwdPM $ftp $ID $run >> $cnfile set dropp = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $5}'` set drops = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $6}'` set markp = `grep $rate $marksfile | grep $ftp | grep $ID | grep $run | awk '{print $5}'` set marks = `grep $rate $marksfile | grep $ftp | grep $ID | grep $run | awk '{print $6}'` set pckts = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $7}'` set percent = `perl -e "print $dropp + $markp"` set cn = `perl -e "print $drops + $marks"` printf "%-5.2f %-7d %-7d\n" $percent $cn $pckts >> $cnfile # :: E2E HTTP ONLY :::: # compute marks for web traffic # (FTP flows are srcs 8-9. HTTP flows are srcs 10-11. CT are srcs 12+) set cnfile = "$datadir/CONGNOTIF-$q-HTTP" set marksfile = "$datadir/MARKS-$q-HTTP" set dropsfile = "$datadir/DROPS-$q-HTTP" if ! (-e $cnfile) then echo "# c/s ftp ID run congnotif% congnotifs packets" > $cnfile endif printf "%-5.2f %-3s %-3s %-3d " $fwdPM $ftp $ID $run >> $cnfile set dropp = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $5}'` set drops = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $6}'` set markp = `grep $rate $marksfile | grep $ftp | grep $ID | grep $run | awk '{print $5}'` set marks = `grep $rate $marksfile | grep $ftp | grep $ID | grep $run | awk '{print $6}'` set pckts = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $7}'` set percent = `perl -e "print $dropp + $markp"` set cn = `perl -e "print $drops + $marks"` printf "%-5.2f %-7d %-7d\n" $percent $cn $pckts >> $cnfile # :: E2E FTP ONLY :::: # compute marks for ftp traffic # (FTP flows are srcs 8-9. HTTP flows are srcs 10-11. CT are srcs 12+) set cnfile = "$datadir/CONGNOTIF-$q-FTP" set marksfile = "$datadir/MARKS-$q-FTP" set dropsfile = "$datadir/DROPS-$q-FTP" if ! (-e $cnfile) then echo "# c/s ftp ID run congnotif% congnotifs packets" > $cnfile endif printf "%-5.2f %-3s %-3s %-3d " $fwdPM $ftp $ID $run >> $cnfile set dropp = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $5}'` set drops = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $6}'` set markp = `grep $rate $marksfile | grep $ftp | grep $ID | grep $run | awk '{print $5}'` set marks = `grep $rate $marksfile | grep $ftp | grep $ID | grep $run | awk '{print $6}'` set pckts = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $7}'` set percent = `perl -e "print $dropp + $markp"` set cn = `perl -e "print $drops + $marks"` printf "%-5.2f %-7d %-7d\n" $percent $cn $pckts >> $cnfile # :: CT-HTTP ONLY :::: # compute marks for cross-traffic web flows # (FTP flows are srcs 8-9. HTTP flows are srcs 10-11. CT are srcs 12-23) if ($q != "01" && $q != "src") then set cnfile = "$datadir/CONGNOTIF-$q-CT" set marksfile = "$datadir/MARKS-$q-CT" set dropsfile = "$datadir/DROPS-$q-CT" if ! (-e $cnfile) then echo "# c/s ftp ID run congnotif% congnotifs packets" > $cnfile endif printf "%-5.2f %-3s %-3s %-3d " $fwdPM $ftp $ID $run >> $cnfile set dropp = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $5}'` set drops = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $6}'` set markp = `grep $rate $marksfile | grep $ftp | grep $ID | grep $run | awk '{print $5}'` set marks = `grep $rate $marksfile | grep $ftp | grep $ID | grep $run | awk '{print $6}'` set pckts = `grep $rate $dropsfile | grep $ftp | grep $ID | grep $run | awk '{print $7}'` set percent = `perl -e "print $dropp + $markp"` set cn = `perl -e "print $drops + $marks"` printf "%-5.2f %-7d %-7d\n" $percent $cn $pckts >> $cnfile endif end # :: E2E MARKS :::: # :: E2E HTTP MARKS :::: set cnfile = "$datadir/CONGNOTIF-HTTP" if ! (-e $cnfile) then echo "# c/s ftp ID run congnotif% congnotifs packets" > $cnfile endif printf "%-5.2f %-3s %-3s %-3d " $fwdPM $ftp $ID $run >> $cnfile set pcktsHTTP = `grep $rate $datadir/DROPS-src-HTTP | grep $ftp | grep $ID | grep $run | awk '{print $7}'` set cn01 = `grep $rate $datadir/CONGNOTIF-01-HTTP | grep $ftp | grep $ID | grep $run | awk '{print $6}'` set cn12 = `grep $rate $datadir/CONGNOTIF-12-HTTP | grep $ftp | grep $ID | grep $run | awk '{print $6}'` if ($ID != "1CL") then set cn34 = `grep $rate $datadir/CONGNOTIF-34-HTTP | grep $ftp | grep $ID | grep $run | awk '{print $6}'` endif if ($ID == "3CL") then set cn56 = `grep $rate $datadir/CONGNOTIF-56-HTTP | grep $ftp | grep $ID | grep $run | awk '{print $6}'` endif set cnHTTP = `expr $cn01 + $cn12` if ($ID != "1CL") then set cnHTTP = `expr $cnHTTP + $cn34` endif if ($ID == "3CL") then set cnHTTP = `expr $cnHTTP + $cn56` endif set percent = 0 if ($pcktsHTTP != 0) then set percent = `perl -e "print $cnHTTP/$pcktsHTTP * 100"` endif printf "%-5.2f %-7d %-7d\n" $percent $cnHTTP $pcktsHTTP >> $cnfile # :: E2E FTP MARKS :::: set cnfile = "$datadir/CONGNOTIF-FTP" if ! (-e $cnfile) then echo "# c/s ftp ID run congnotif% congnotifs packets" > $cnfile endif printf "%-5.2f %-3s %-3s %-3d " $fwdPM $ftp $ID $run >> $cnfile # $rate is set above in HTTP marks set pcktsFTP = `grep $rate $datadir/DROPS-src-FTP | grep $ftp | grep $ID | grep $run | awk '{print $7}'` set cn01 = `grep $rate $datadir/CONGNOTIF-01-FTP | grep $ftp | grep $ID | grep $run | awk '{print $6}'` set cn12 = `grep $rate $datadir/CONGNOTIF-12-FTP | grep $ftp | grep $ID | grep $run | awk '{print $6}'` if ($ID != "1CL") then set cn34 = `grep $rate $datadir/CONGNOTIF-34-FTP | grep $ftp | grep $ID | grep $run | awk '{print $6}'` endif if ($ID == "3CL") then set cn56 = `grep $rate $datadir/CONGNOTIF-56-FTP | grep $ftp | grep $ID | grep $run | awk '{print $6}'` endif set cnFTP = `expr $cn01 + $cn12` if ($ID != "1CL") then set cnFTP = `expr $cnFTP + $cn34` endif if ($ID == "3CL") then set cnFTP = `expr $cnFTP + $cn56` endif set percent = 0 if ($pcktsFTP != 0) then set percent = `perl -e "print $cnFTP/$pcktsFTP * 100"` endif printf "%-5.2f %-7d %-7d\n" $percent $cnFTP $pcktsFTP >> $cnfile # ::: E2E MARKS :::: set cnfile = "$datadir/CONGNOTIF" if ! (-e $cnfile) then echo "# c/s ftp ID run congnotif% congnotifs packets" > $cnfile endif printf "%-5.2f %-3s %-3s %-3d " $fwdPM $ftp $ID $run >> $cnfile set pckts = `expr $pcktsFTP + $pcktsHTTP` set cn = `expr $cnFTP + $cnHTTP` set percent = 0 if ($pckts != 0) then set percent = `perl -e "print $cn/$pckts * 100"` endif printf "%-5.2f %-7d %-7d\n" $percent $cn $pckts >> $cnfile # ::::::::::::::::::::::::::::: CLEANUP :::::::::::::::::::::::::::::::::: foreach q (01 12 34 56 dst) if (-e tmp-$q) then rm tmp-$q endif if (-e tmp) then rm tmp endif end