Merge pull request #125 from adferguson/adf-tc-renumber
Adjust numbering to support tc-based switch QoS This looks fine to me - probably we want to change the way this works eventually, but for now renumbering it is fine and we can change the numbering later if desired.
This commit is contained in:
+15
-12
@@ -196,36 +196,36 @@ class TCIntf( Intf ):
|
|||||||
# are specifying the correct sizes. For now I have used
|
# are specifying the correct sizes. For now I have used
|
||||||
# the same settings we had in the mininet-hifi code.
|
# the same settings we had in the mininet-hifi code.
|
||||||
if use_hfsc:
|
if use_hfsc:
|
||||||
cmds += [ '%s qdisc add dev %s root handle 1:0 hfsc default 1',
|
cmds += [ '%s qdisc add dev %s root handle 5:0 hfsc default 1',
|
||||||
'%s class add dev %s parent 1:0 classid 1:1 hfsc sc '
|
'%s class add dev %s parent 5:0 classid 5:1 hfsc sc '
|
||||||
+ 'rate %fMbit ul rate %fMbit' % ( bw, bw ) ]
|
+ 'rate %fMbit ul rate %fMbit' % ( bw, bw ) ]
|
||||||
elif use_tbf:
|
elif use_tbf:
|
||||||
if latency_ms is None:
|
if latency_ms is None:
|
||||||
latency_ms = 15 * 8 / bw
|
latency_ms = 15 * 8 / bw
|
||||||
cmds += [ '%s qdisc add dev %s root handle 1: tbf ' +
|
cmds += [ '%s qdisc add dev %s root handle 5: tbf ' +
|
||||||
'rate %fMbit burst 15000 latency %fms' %
|
'rate %fMbit burst 15000 latency %fms' %
|
||||||
( bw, latency_ms ) ]
|
( bw, latency_ms ) ]
|
||||||
else:
|
else:
|
||||||
cmds += [ '%s qdisc add dev %s root handle 1:0 htb default 1',
|
cmds += [ '%s qdisc add dev %s root handle 5:0 htb default 1',
|
||||||
'%s class add dev %s parent 1:0 classid 1:1 htb ' +
|
'%s class add dev %s parent 5:0 classid 5:1 htb ' +
|
||||||
'rate %fMbit burst 15k' % bw ]
|
'rate %fMbit burst 15k' % bw ]
|
||||||
parent = ' parent 1:1 '
|
parent = ' parent 5:1 '
|
||||||
|
|
||||||
# ECN or RED
|
# ECN or RED
|
||||||
if enable_ecn:
|
if enable_ecn:
|
||||||
cmds += [ '%s qdisc add dev %s' + parent +
|
cmds += [ '%s qdisc add dev %s' + parent +
|
||||||
'handle 10: red limit 1000000 ' +
|
'handle 6: red limit 1000000 ' +
|
||||||
'min 30000 max 35000 avpkt 1500 ' +
|
'min 30000 max 35000 avpkt 1500 ' +
|
||||||
'burst 20 ' +
|
'burst 20 ' +
|
||||||
'bandwidth %fmbit probability 1 ecn' % bw ]
|
'bandwidth %fmbit probability 1 ecn' % bw ]
|
||||||
parent = ' parent 10: '
|
parent = ' parent 6: '
|
||||||
elif enable_red:
|
elif enable_red:
|
||||||
cmds += [ '%s qdisc add dev %s' + parent +
|
cmds += [ '%s qdisc add dev %s' + parent +
|
||||||
'handle 10: red limit 1000000 ' +
|
'handle 6: red limit 1000000 ' +
|
||||||
'min 30000 max 35000 avpkt 1500 ' +
|
'min 30000 max 35000 avpkt 1500 ' +
|
||||||
'burst 20 ' +
|
'burst 20 ' +
|
||||||
'bandwidth %fmbit probability 1' % bw ]
|
'bandwidth %fmbit probability 1' % bw ]
|
||||||
parent = ' parent 10: '
|
parent = ' parent 6: '
|
||||||
return cmds, parent
|
return cmds, parent
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
@@ -251,7 +251,8 @@ class TCIntf( Intf ):
|
|||||||
cmds = [ '%s qdisc add dev %s ' + parent +
|
cmds = [ '%s qdisc add dev %s ' + parent +
|
||||||
' handle 10: netem ' +
|
' handle 10: netem ' +
|
||||||
netemargs ]
|
netemargs ]
|
||||||
return cmds
|
parent = ' parent 10:1 '
|
||||||
|
return cmds, parent
|
||||||
|
|
||||||
def tc( self, cmd, tc='tc' ):
|
def tc( self, cmd, tc='tc' ):
|
||||||
"Execute tc command for our interface"
|
"Execute tc command for our interface"
|
||||||
@@ -289,9 +290,10 @@ class TCIntf( Intf ):
|
|||||||
cmds += bwcmds
|
cmds += bwcmds
|
||||||
|
|
||||||
# Delay/jitter/loss/max_queue_size using netem
|
# Delay/jitter/loss/max_queue_size using netem
|
||||||
cmds += self.delayCmds( delay=delay, jitter=jitter, loss=loss,
|
delaycmds, parent = self.delayCmds( delay=delay, jitter=jitter, loss=loss,
|
||||||
max_queue_size=max_queue_size,
|
max_queue_size=max_queue_size,
|
||||||
parent=parent )
|
parent=parent )
|
||||||
|
cmds += delaycmds
|
||||||
|
|
||||||
# Ugly but functional: display configuration info
|
# Ugly but functional: display configuration info
|
||||||
stuff = ( ( [ '%.2fMbit' % bw ] if bw is not None else [] ) +
|
stuff = ( ( [ '%.2fMbit' % bw ] if bw is not None else [] ) +
|
||||||
@@ -308,6 +310,7 @@ class TCIntf( Intf ):
|
|||||||
debug( "cmds:", cmds, '\n' )
|
debug( "cmds:", cmds, '\n' )
|
||||||
debug( "outputs:", tcoutputs, '\n' )
|
debug( "outputs:", tcoutputs, '\n' )
|
||||||
result[ 'tcoutputs'] = tcoutputs
|
result[ 'tcoutputs'] = tcoutputs
|
||||||
|
result[ 'parent' ] = parent
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user