Skip to content

Commit 815bb8a

Browse files
wendanilguohan
authored andcommitted
Update to accommodate syntax change in ecn/wred profile apply (sonic-net#375)
"Ethernet0|4": { "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]", "scheduler": "[SCHEDULER|scheduler.0]" }, Signed-off-by: Wenda <[email protected]>
1 parent bb67cda commit 815bb8a

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

scripts/ecnconfig

+11-14
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ class EcnQ(object):
134134
Process ecn on/off on queues
135135
"""
136136
def __init__(self, queues, verbose):
137-
self.ports_key = ''
137+
self.ports_key = []
138138
self.queues = queues.split(',')
139139
self.validate_queues()
140140
self.verbose = verbose
@@ -156,35 +156,32 @@ class EcnQ(object):
156156
# TODO: Change to use active ports only
157157
def gen_ports_key(self):
158158
if self.ports_key is not None:
159-
ports = []
160-
161159
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()
164161

165-
self.ports_key = ','.join(sorted(ports, key = lambda k: int(k[8:])))
162+
self.ports_key.sort(key = lambda k: int(k[8:]))
166163

167164
def set(self, enable):
168165
if os.geteuid() != 0:
169166
sys.exit("Root privileges required for this operation")
170167
for queue in self.queues:
171168
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})
175173

176174
def get(self):
177175
print("ECN status:")
178176
for queue in self.queues:
179177
out = ' '.join(['queue', queue])
180178
if self.verbose:
181-
out = ' '.join([self.ports_key, out])
179+
out = ' '.join([','.join(self.ports_key), out])
182180

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])
184184
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)
188185

189186
if val == ON:
190187
print("%s: on" % (out))

0 commit comments

Comments
 (0)