Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cobalt algorithm added in AQM Eval Suite #5

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/AdaptiveRedQueueDisc-delay.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Delay (ms)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
set yrange [0:]
set xrange [:300]
plot "aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-qdel.dat" using 1:2 with lines title "AdaptiveRedQueueDisc"
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/AdaptiveRedQueueDisc-goodput.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Goodput (Mbps)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
plot "aqm-eval-output/AggressiveTransportSender/data/new-AdaptiveRedQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1"
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/CoDelQueueDisc-delay.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Delay (ms)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
set yrange [0:]
set xrange [:300]
plot "aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-qdel.dat" using 1:2 with lines title "CoDelQueueDisc"
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/CoDelQueueDisc-goodput.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Goodput (Mbps)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
plot "aqm-eval-output/AggressiveTransportSender/data/new-CoDelQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1"
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/CobaltQueueDisc-delay.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Delay (ms)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
set yrange [0:]
set xrange [:300]
plot "aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-qdel.dat" using 1:2 with lines title "CobaltQueueDisc"
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/CobaltQueueDisc-goodput.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Goodput (Mbps)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
plot "aqm-eval-output/AggressiveTransportSender/data/new-CobaltQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1"
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/FengAdaptiveRedQueueDisc-delay.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Delay (ms)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
set yrange [0:]
set xrange [:300]
plot "aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-qdel.dat" using 1:2 with lines title "FengAdaptiveRedQueueDisc"
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/FengAdaptiveRedQueueDisc-goodput.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Goodput (Mbps)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
plot "aqm-eval-output/AggressiveTransportSender/data/new-FengAdaptiveRedQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1"
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/NonLinearRedQueueDisc-delay.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Delay (ms)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
set yrange [0:]
set xrange [:300]
plot "aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-qdel.dat" using 1:2 with lines title "NonLinearRedQueueDisc"
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/NonLinearRedQueueDisc-goodput.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Goodput (Mbps)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
plot "aqm-eval-output/AggressiveTransportSender/data/new-NonLinearRedQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1"
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/PfifoFastQueueDisc-delay.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Delay (ms)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
set yrange [0:]
set xrange [:300]
plot "aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-qdel.dat" using 1:2 with lines title "PfifoFastQueueDisc"
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/PfifoFastQueueDisc-goodput.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Goodput (Mbps)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
plot "aqm-eval-output/AggressiveTransportSender/data/new-PfifoFastQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1"
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/PieQueueDisc-delay.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Delay (ms)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
set yrange [0:]
set xrange [:300]
plot "aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-qdel.dat" using 1:2 with lines title "PieQueueDisc"
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/PieQueueDisc-goodput.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Goodput (Mbps)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
plot "aqm-eval-output/AggressiveTransportSender/data/new-PieQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1"
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/RedQueueDisc-delay.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Delay (ms)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
set yrange [0:]
set xrange [:300]
plot "aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-qdel.dat" using 1:2 with lines title "RedQueueDisc"
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
set terminal png
set output "aqm-eval-output/AggressiveTransportSender/graph/RedQueueDisc-goodput.png"
set xlabel "Time (Seconds)" font "Verdana,12"
set ylabel "Goodput (Mbps)" font "Verdana,12"
set grid
show grid
set key font "Verdana,12"
plot "aqm-eval-output/AggressiveTransportSender/data/new-RedQueueDisc-goodput.dat" i 0 using 1:2 with lines smooth csplines title "Flow 1"
25 changes: 25 additions & 0 deletions aqm-eval-output/AggressiveTransportSender/data/plot-shell
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
set terminal png size 600, 350
set size .9, 1
set output "aqm-eval-output/AggressiveTransportSender/graph/qdel-goodput.png"
set xlabel "Queue Delay (ms)" font "Verdana"
set ylabel "Goodput (Mbps)" font "Verdana"
set xrange[] reverse
set grid
show grid
set label "" at 72.06835290016018,0.7867839260302462 point lt 1 pt 1 center font "Verdana" tc lt 1 offset 1.5,0.4
set label "DropTail" at graph 1.03,0.96 point lt 1 pt 1 font "Verdana,12" tc lt 1 offset 0.7, -0.2
set label "" at 2.431904950121579,0.7230681669476516 point lt 2 pt 2 center font "Verdana" tc lt 2 offset 1.5,0.4
set label "CoDel" at graph 1.03,0.9 point lt 2 pt 2 font "Verdana,12" tc lt 2 offset 0.7, -0.2
set label "" at 19.08199634253437,0.7351984735537219 point lt 3 pt 3 center font "Verdana" tc lt 3 offset 1.5,0.4
set label "PIE" at graph 1.03,0.84 point lt 3 pt 3 font "Verdana,12" tc lt 3 offset 0.7, -0.2
set label "" at 50.088985730296265,0.8121450662276379 point lt 4 pt 4 center font "Verdana" tc lt 4 offset 1.5,0.4
set label "RED" at graph 1.03,0.78 point lt 4 pt 4 font "Verdana,12" tc lt 4 offset 0.7, -0.2
set label "" at 27.44747594008444,0.7416029147450488 point lt 5 pt 5 center font "Verdana" tc lt 5 offset 1.5,0.4
set label "ARED" at graph 1.03,0.72 point lt 5 pt 5 font "Verdana,12" tc lt 5 offset 0.7, -0.2
set label "" at 50.711097209133456,0.7591207397362596 point lt 6 pt 6 center font "Verdana" tc lt 6 offset 1.5,0.4
set label "FRED" at graph 1.03,0.66 point lt 6 pt 6 font "Verdana,12" tc lt 6 offset 0.7, -0.2
set label "" at 51.375889290678344,0.8062692176578442 point lt 7 pt 7 center font "Verdana" tc lt 7 offset 1.5,0.4
set label "NLRED" at graph 1.03,0.6 point lt 7 pt 7 font "Verdana,12" tc lt 7 offset 0.7, -0.2
set label "" at 0.9186746462718389,0.9397544572402379 point lt 8 pt 8 center font "Verdana" tc lt 8 offset 1.5,0.4
set label "Cobalt" at graph 1.03,0.54 point lt 8 pt 8 font "Verdana,12" tc lt 8 offset 0.7, -0.2
plot "aqm-eval-output/AggressiveTransportSender/data/PfifoFastQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/CoDelQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/PieQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/RedQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/AdaptiveRedQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/FengAdaptiveRedQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/NonLinearRedQueueDisc-ellipse.dat" notitle with lines,"aqm-eval-output/AggressiveTransportSender/data/CobaltQueueDisc-ellipse.dat" notitle with lines
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 3 additions & 2 deletions src/aqm-eval-suite/examples/aqm-eval-suite-runner.cc
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,11 @@ std::vector<std::string> AQM = {
"Red",
"AdaptiveRed",
"FengAdaptiveRed",
"NonLinearRed"
"NonLinearRed",
"Cobalt"
};
std::string queueDisc = "QueueDisc";
uint32_t nAQM = 7;
uint32_t nAQM = 8;
std::string AggressiveTcp = "";
std::string QueueDiscMode = "QUEUE_DISC_MODE_PACKETS";
std::string isBql = "false";
Expand Down
27 changes: 13 additions & 14 deletions src/aqm-eval-suite/helper/aqm-eval-suite-helper.cc
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,11 @@ namespace ns3 {

ScenarioImpl::ScenarioImpl ()
{
m_AQM = {
"ns3::PfifoFastQueueDisc",
"ns3::RedQueueDisc",
"ns3::AdaptiveRedQueueDisc",
"ns3::FengAdaptiveRedQueueDisc",
"ns3::NonLinearRedQueueDisc",
"ns3::CoDelQueueDisc",
"ns3::PieQueueDisc"
};
m_nAQM = 7;
m_AQM = {"ns3::PfifoFastQueueDisc", "ns3::RedQueueDisc",
"ns3::AdaptiveRedQueueDisc", "ns3::FengAdaptiveRedQueueDisc",
"ns3::NonLinearRedQueueDisc", "ns3::CoDelQueueDisc",
"ns3::PieQueueDisc", "ns3::CobaltQueueDisc"};
m_nAQM = 8;
}

ScenarioImpl::~ScenarioImpl ()
Expand All @@ -56,9 +51,11 @@ ScenarioImpl::DestroyTrace (EvaluationTopology et)
}

void
ScenarioImpl::ConfigureQueueDisc (uint32_t limit, uint32_t pktsize, std::string linkbw, std::string linkdel, std::string mode)
ScenarioImpl::ConfigureQueueDisc (uint32_t limit, uint32_t pktsize, std::string linkbw,
std::string linkdel, std::string mode)
{
Config::SetDefault ("ns3::PfifoFastQueueDisc::MaxSize", StringValue (std::to_string (limit) + "p"));
Config::SetDefault ("ns3::PfifoFastQueueDisc::MaxSize",
StringValue (std::to_string (limit) + "p"));

Config::SetDefault ("ns3::RedQueueDisc::MeanPktSize", UintegerValue (pktsize));
Config::SetDefault ("ns3::RedQueueDisc::LinkBandwidth", StringValue (linkbw));
Expand All @@ -79,11 +76,13 @@ ScenarioImpl::ConfigureQueueDisc (uint32_t limit, uint32_t pktsize, std::string
}
else
{
Config::SetDefault ("ns3::RedQueueDisc::MaxSize",StringValue (std::to_string (limit * pktsize) + "B"));
Config::SetDefault ("ns3::RedQueueDisc::MaxSize",
StringValue (std::to_string (limit * pktsize) + "B"));
Config::SetDefault ("ns3::RedQueueDisc::MinTh", DoubleValue (5 * pktsize));
Config::SetDefault ("ns3::RedQueueDisc::MaxTh", DoubleValue (15 * pktsize));

Config::SetDefault ("ns3::PieQueueDisc::MaxSize", StringValue (std::to_string (limit * pktsize) + "B"));
Config::SetDefault ("ns3::PieQueueDisc::MaxSize",
StringValue (std::to_string (limit * pktsize) + "B"));
}
}

Expand Down
59 changes: 34 additions & 25 deletions src/aqm-eval-suite/utils/ellipsemaker
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/usr/bin/python

import sys;
import sys
import numpy as np

samples = []
Expand All @@ -9,37 +9,43 @@ scenario_name = sys.argv[1]
queuedisc_name = sys.argv[2]
queuedisc_index = sys.argv[3]

input_file = open("aqm-eval-output/"+scenario_name+"/data/"+queuedisc_name+"-result.dat", "r")
input_file = open("aqm-eval-output/"+scenario_name +
"/data/"+queuedisc_name+"-result.dat", "r")
lines = input_file.readlines()

output_file_name = "aqm-eval-output/"+scenario_name+"/data/"+queuedisc_name+"-ellipse.dat"
output_file = open(output_file_name, "w")
output_file_name = "aqm-eval-output/"+scenario_name + \
"/data/"+queuedisc_name+"-ellipse.dat"
output_file = open(output_file_name, "w")

qdisc_label = {'PfifoFast': 'DropTail', 'CoDel': 'CoDel', 'Pie': 'PIE', 'Red': 'RED', 'AdaptiveRed': 'ARED', 'FengAdaptiveRed': 'FRED', 'NonLinearRed':'NLRED'}
qdisc_label = {'PfifoFast': 'DropTail', 'CoDel': 'CoDel', 'Pie': 'PIE', 'Red': 'RED',
'AdaptiveRed': 'ARED', 'FengAdaptiveRed': 'FRED', 'NonLinearRed': 'NLRED', 'Cobalt': 'Cobalt'}

for line in lines:
fields = line.split( ' ' )
delay, throughput = (float(fields[ 0 ]))/1000.0, (float(fields[ 1 ]))/(1024.0*128.0)
samples.append( [ delay, throughput ] )
fields = line.split(' ')
delay, throughput = (float(fields[0])) / \
1000.0, (float(fields[1]))/(1024.0*128.0)
samples.append([delay, throughput])

samples = np.matrix( samples )
samples = np.matrix(samples)

# taken from https://github.com/joferkington/oost_paper_code/blob/master/error_ellipse.py


def get_ellipse(points, nstd=1):
def eigsorted(cov):
vals, vecs = np.linalg.eigh(cov)
order = vals.argsort()[::-1]
return vals[order], vecs[:,order]
return vals[order], vecs[:, order]

cov = np.cov(points, rowvar=False)
vals, vecs = eigsorted(cov)
theta = np.degrees(np.arctan2(*vecs[:,0][::-1]))
theta = np.degrees(np.arctan2(*vecs[:, 0][::-1]))
# Width and height are "full" widths, not radius
# width, height = 2 * nstd * np.sqrt(vals)
width = nstd[0,0] * np.sqrt(vals[0])
height = nstd[0,1] * np.sqrt(vals[1])
return [ width, height, theta ]
width = nstd[0, 0] * np.sqrt(vals[0])
height = nstd[0, 1] * np.sqrt(vals[1])
return [width, height, theta]


def get_ellipse_coords(a=0.0, b=0.0, x=0.0, y=0.0, angle=0.0, k=2):
""" Draws an ellipse using (360*k + 1) discrete points; based on pseudo code
Expand All @@ -66,21 +72,24 @@ def get_ellipse_coords(a=0.0, b=0.0, x=0.0, y=0.0, angle=0.0, k=2):

return pts

means = np.mean( samples, axis=0 )
center_x = means[ 0, 0 ]
center_y = means[ 0, 1 ]
width, height, theta = get_ellipse( samples, np.std( samples, axis=0 ))

#print center_x, center_y
#print width, height, theta
means = np.mean(samples, axis=0)
center_x = means[0, 0]
center_y = means[0, 1]
width, height, theta = get_ellipse(samples, np.std(samples, axis=0))

# print center_x, center_y
# print width, height, theta

for i in get_ellipse_coords(width, height, center_x, center_y, -theta, 10 ):
output_file.write(str(i[ 0 ]*1000.0)+' '+str(i[ 1 ])+'\n')
for i in get_ellipse_coords(width, height, center_x, center_y, -theta, 10):
output_file.write(str(i[0]*1000.0)+' '+str(i[1])+'\n')

output_file.close()
input_file.close()

gnu_file = open("aqm-eval-output/"+scenario_name+"/data/plot-shell", "a")
gnu_file.write ("set label \"\" at "+str(center_x*1000.0)+","+str(center_y)+" point lt "+queuedisc_index+" pt "+queuedisc_index+" center font \"Verdana\" tc lt "+queuedisc_index+" offset 1.5,0.4\n")
gnu_file.write ("set label \""+qdisc_label[queuedisc_name[:-9]]+"\" at graph "+str(1.03)+","+str(0.96 - (0.06 * (float(queuedisc_index) - 1)))+" point lt "+queuedisc_index+" pt "+queuedisc_index+" font \"Verdana,12\" tc lt "+queuedisc_index+" offset 0.7, -0.2\n")
gnu_file = open("aqm-eval-output/"+scenario_name+"/data/plot-shell", "a")
gnu_file.write("set label \"\" at "+str(center_x*1000.0)+","+str(center_y)+" point lt "+queuedisc_index +
" pt "+queuedisc_index+" center font \"Verdana\" tc lt "+queuedisc_index+" offset 1.5,0.4\n")
gnu_file.write("set label \""+qdisc_label[queuedisc_name[:-9]]+"\" at graph "+str(1.03)+","+str(0.96 - (0.06 * (float(queuedisc_index) - 1))
)+" point lt "+queuedisc_index+" pt "+queuedisc_index+" font \"Verdana,12\" tc lt "+queuedisc_index+" offset 0.7, -0.2\n")
gnu_file.close()
Loading