@@ -134,7 +134,7 @@ class EcnQ(object):
134
134
Process ecn on/off on queues
135
135
"""
136
136
def __init__ (self , queues , verbose ):
137
- self .ports_key = ''
137
+ self .ports_key = []
138
138
self .queues = queues .split (',' )
139
139
self .validate_queues ()
140
140
self .verbose = verbose
@@ -156,35 +156,32 @@ class EcnQ(object):
156
156
# TODO: Change to use active ports only
157
157
def gen_ports_key (self ):
158
158
if self .ports_key is not None :
159
- ports = []
160
-
161
159
port_table = self .config_db .get_table (PORT_TABLE_NAME )
162
- for port in port_table :
163
- ports .append (port )
160
+ self .ports_key = port_table .keys ()
164
161
165
- self .ports_key = ',' . join ( sorted ( ports , key = lambda k : int (k [8 :]) ))
162
+ self .ports_key . sort ( key = lambda k : int (k [8 :]))
166
163
167
164
def set (self , enable ):
168
165
if os .geteuid () != 0 :
169
166
sys .exit ("Root privileges required for this operation" )
170
167
for queue in self .queues :
171
168
if self .verbose :
172
- print ("%s ECN on %s queue %s" % ("Enable" if enable else "Disable" , self .ports_key , queue ))
173
- key = '|' .join ([self .ports_key , queue ])
174
- self .config_db .mod_entry (QUEUE_TABLE_NAME , key , {FIELD : ON if enable else OFF })
169
+ print ("%s ECN on %s queue %s" % ("Enable" if enable else "Disable" , ',' .join (self .ports_key ), queue ))
170
+ for port_key in self .ports_key :
171
+ key = '|' .join ([port_key , queue ])
172
+ self .config_db .mod_entry (QUEUE_TABLE_NAME , key , {FIELD : ON if enable else OFF })
175
173
176
174
def get (self ):
177
175
print ("ECN status:" )
178
176
for queue in self .queues :
179
177
out = ' ' .join (['queue' , queue ])
180
178
if self .verbose :
181
- out = ' ' .join ([self .ports_key , out ])
179
+ out = ' ' .join ([',' . join ( self .ports_key ) , out ])
182
180
183
- key = '|' .join ([QUEUE_TABLE_NAME , self .ports_key , queue ])
181
+ # ecn on/off status on a queue index is homogeneous among all ports
182
+ # checking one port is sufficient
183
+ key = '|' .join ([QUEUE_TABLE_NAME , self .ports_key [0 ], queue ])
184
184
val = self .db .get (self .db .CONFIG_DB , key , FIELD )
185
- if not val :
186
- key = '|' .join ([QUEUE_TABLE_NAME , self .ports_key , '3-4' ])
187
- val = self .db .get (self .db .CONFIG_DB , key , FIELD )
188
185
189
186
if val == ON :
190
187
print ("%s: on" % (out ))
0 commit comments