diff --git a/scripts/ecnconfig b/scripts/ecnconfig index 7a59bc7d65..e3b08d2bd3 100755 --- a/scripts/ecnconfig +++ b/scripts/ecnconfig @@ -86,10 +86,7 @@ PORT_TABLE_NAME = "PORT" QUEUE_TABLE_NAME = "QUEUE" DEVICE_NEIGHBOR_TABLE_NAME = "DEVICE_NEIGHBOR" FIELD = "wred_profile" -ON = "[WRED_PROFILE|AZURE_LOSSLESS]" -OFF = "[]" - -lossless_queues = ['3', '4'] +ON = "AZURE_LOSSLESS" def chk_exec_privilege(): if os.geteuid() != 0 and os.environ.get("UTILITIES_UNIT_TESTING", "0") != "2": @@ -202,7 +199,6 @@ class EcnQ(object): def __init__(self, queues, filename, verbose): self.ports_key = [] self.queues = queues.split(',') - self.validate_queues() self.filename = filename self.verbose = verbose @@ -215,16 +211,15 @@ class EcnQ(object): self.gen_ports_key() - def validate_queues(self): - for q in self.queues: - if q not in lossless_queues: - sys.exit('Invalid queue index: %s' % q) - def gen_ports_key(self): if self.ports_key is not None: port_table = self.config_db.get_table(DEVICE_NEIGHBOR_TABLE_NAME) self.ports_key = list(port_table.keys()) + # Verify at least one port is available + if len(self.ports_key) == 0: + raise Exception("No active ports detected in table '{}'".format(DEVICE_NEIGHBOR_TABLE_NAME)) + # In multi-ASIC platforms backend ethernet ports are identified as # 'Ethernet-BPxy'. Add 1024 to sort backend ports to the end. self.ports_key.sort( @@ -245,7 +240,18 @@ class EcnQ(object): print("%s ECN on %s queue %s" % ("Enable" if enable else "Disable", ','.join(self.ports_key), queue)) for port_key in self.ports_key: key = '|'.join([port_key, queue]) - self.config_db.mod_entry(QUEUE_TABLE_NAME, key, {FIELD: ON if enable else OFF}) + entry = self.config_db.get_entry(QUEUE_TABLE_NAME, key) + if enable: + entry[FIELD] = ON + else: + # Remove entry to propagate SAI change + if FIELD in entry: + del entry[FIELD] + # If entry is now empty, remove the key + if entry == {}: + self.config_db.mod_entry(QUEUE_TABLE_NAME, key, None) + else: + self.config_db.set_entry(QUEUE_TABLE_NAME, key, entry) self.dump_table_info() def get(self): diff --git a/tests/ecn_input/ecn_test_vectors.py b/tests/ecn_input/ecn_test_vectors.py index a0aa2e85fb..c53bf48a24 100644 --- a/tests/ecn_input/ecn_test_vectors.py +++ b/tests/ecn_input/ecn_test_vectors.py @@ -122,22 +122,29 @@ 'args' : ['-q', '3'], 'rc' : 0, 'rc_msg' : 'ECN status:\nqueue 3: on\n', - 'cmp_args' : ['wred_profile,[WRED_PROFILE|AZURE_LOSSLESS]'], + 'cmp_args' : ['wred_profile,AZURE_LOSSLESS'], 'cmp_q_args' : ['3', '4'] }, 'ecn_q_get_verbose' : {'cmd' : ['q_cmd'], 'args' : ['-q', '3', '-vv'], 'rc' : 0, 'rc_msg' : 'ECN status:\n{0} queue 3: on\n', - 'cmp_args' : ['wred_profile,[WRED_PROFILE|AZURE_LOSSLESS]'], + 'cmp_args' : ['wred_profile,AZURE_LOSSLESS'], 'cmp_q_args' : ['3', '4'], 'db_table' : 'DEVICE_NEIGHBOR' }, + 'ecn_lossy_q_get' : {'cmd' : ['q_cmd'], + 'args' : ['-q', '2'], + 'rc' : 0, + 'rc_msg' : 'ECN status:\nqueue 2: off\n', + 'cmp_args' : [None], + 'cmp_q_args' : ['2'] + }, 'ecn_q_all_get_verbose' : {'cmd' : ['q_cmd'], 'args' : ['-q', '3,4', '-vv'], 'rc' : 0, 'rc_msg' : 'ECN status:\n{0} queue 3: on\n{0} queue 4: on\n', - 'cmp_args' : ['wred_profile,[WRED_PROFILE|AZURE_LOSSLESS]'], + 'cmp_args' : ['wred_profile,AZURE_LOSSLESS'], 'cmp_q_args' : ['3', '4'], 'db_table' : 'DEVICE_NEIGHBOR' }, @@ -145,19 +152,19 @@ 'args' : ['-q', '3,4'], 'rc' : 0, 'rc_msg' : 'ECN status:\nqueue 3: on\nqueue 4: on\n', - 'cmp_args' : ['wred_profile,[WRED_PROFILE|AZURE_LOSSLESS]'], + 'cmp_args' : ['wred_profile,AZURE_LOSSLESS'], 'cmp_q_args' : ['3', '4'] }, 'ecn_cfg_q_all_off' : {'cmd' : ['q_cmd'], 'args' : ['-q', '3,4', 'off'], 'rc' : 0, - 'cmp_args' : ['wred_profile,[]'], + 'cmp_args' : [None], 'cmp_q_args' : ['3', '4'] }, 'ecn_cfg_q_all_off_verbose' : {'cmd' : ['q_cmd'], 'args' : ['-q', '3,4', 'off', '-vv'], 'rc' : 0, - 'cmp_args' : ['wred_profile,[]'], + 'cmp_args' : [None], 'cmp_q_args' : ['3', '4'], 'db_table' : 'DEVICE_NEIGHBOR', 'rc_msg' : 'Disable ECN on {0} queue 3\nDisable ECN on {0} queue 4' @@ -165,14 +172,14 @@ 'ecn_cfg_q_off' : {'cmd' : ['q_cmd'], 'args' : ['-q', '3', 'off'], 'rc' : 0, - 'cmp_args' : ['wred_profile,[]', 'wred_profile,[WRED_PROFILE|AZURE_LOSSLESS]'], + 'cmp_args' : [None, 'wred_profile,AZURE_LOSSLESS'], 'cmp_q_args' : ['3'], 'other_q' : ['4'] }, 'ecn_cfg_q_off_verbose' : {'cmd' : ['q_cmd'], 'args' : ['-q', '3', 'off', '-vv'], 'rc' : 0, - 'cmp_args' : ['wred_profile,[]', 'wred_profile,[WRED_PROFILE|AZURE_LOSSLESS]'], + 'cmp_args' : [None, 'wred_profile,AZURE_LOSSLESS'], 'cmp_q_args' : ['3'], 'other_q' : ['4'], 'db_table' : 'DEVICE_NEIGHBOR', @@ -181,13 +188,13 @@ 'ecn_cfg_q_all_on' : {'cmd' : ['q_cmd'], 'args' : ['-q', '3,4', 'on'], 'rc' : 0, - 'cmp_args' : ['wred_profile,[WRED_PROFILE|AZURE_LOSSLESS]'], + 'cmp_args' : ['wred_profile,AZURE_LOSSLESS'], 'cmp_q_args' : ['3', '4'] }, 'ecn_cfg_q_all_on_verbose' : {'cmd' : ['q_cmd'], 'args' : ['-q', '3,4', 'on', '-vv'], 'rc' : 0, - 'cmp_args' : ['wred_profile,[WRED_PROFILE|AZURE_LOSSLESS]'], + 'cmp_args' : ['wred_profile,AZURE_LOSSLESS'], 'cmp_q_args' : ['3', '4'], 'db_table' : 'DEVICE_NEIGHBOR', 'rc_msg' : 'Enable ECN on {0} queue 3\nEnable ECN on {0} queue 4' @@ -195,15 +202,21 @@ 'ecn_cfg_q_on' : {'cmd' : ['q_cmd'], 'args' : ['-q', '4', 'on'], 'rc' : 0, - 'cmp_args' : ['wred_profile,[WRED_PROFILE|AZURE_LOSSLESS]'], + 'cmp_args' : ['wred_profile,AZURE_LOSSLESS'], 'cmp_q_args' : ['3', '4'] }, 'ecn_cfg_q_on_verbose' : {'cmd' : ['q_cmd'], 'args' : ['-q', '4', 'on', '-vv'], 'rc' : 0, - 'cmp_args' : ['wred_profile,[WRED_PROFILE|AZURE_LOSSLESS]'], + 'cmp_args' : ['wred_profile,AZURE_LOSSLESS'], 'cmp_q_args' : ['3', '4'], 'db_table' : 'DEVICE_NEIGHBOR', 'rc_msg' : 'Enable ECN on {0} queue 4' - } + }, + 'ecn_cfg_lossy_q_on' : {'cmd' : ['q_cmd'], + 'args' : ['-q', '0,1,2,5,6,7', 'on'], + 'rc' : 0, + 'cmp_args' : ['wred_profile,AZURE_LOSSLESS'], + 'cmp_q_args' : ['0', '1', '2', '5', '6', '7'] + } } diff --git a/tests/ecn_test.py b/tests/ecn_test.py index 0eac54ddbb..13474b12e8 100644 --- a/tests/ecn_test.py +++ b/tests/ecn_test.py @@ -88,6 +88,9 @@ def test_ecn_queue_get(self): def test_ecn_queue_get_verbose(self): self.executor(testData['ecn_q_get_verbose']) + def test_ecn_queue_get_lossy(self): + self.executor(testData['ecn_lossy_q_get']) + def test_ecn_all_queue_get(self): self.executor(testData['ecn_q_all_get']) @@ -118,6 +121,21 @@ def test_ecn_queue_set_all_on(self): def test_ecn_queue_set_all_on_verbose(self): self.executor(testData['ecn_cfg_q_all_on_verbose']) + def test_ecn_queue_set_lossy_q_on(self): + self.executor(testData['ecn_cfg_lossy_q_on']) + + def process_cmp_args(self, cmp_args): + if cmp_args is None: + return (None, None) + return cmp_args.split(',') + + def verify_profile(self, queue_db_entry, profile, value): + if profile != None: + assert queue_db_entry[profile] == value + else: + assert profile not in queue_db_entry,\ + "Profile needs to be fully removed from table to propagate NULL OID to SAI" + def executor(self, input): runner = CliRunner() @@ -150,16 +168,16 @@ def executor(self, input): if 'cmp_args' in input: fd = open('/tmp/ecnconfig', 'r') cmp_data = json.load(fd) - if 'cmp_q_args' in input: + profile, value = self.process_cmp_args(input['cmp_args'][0]) if 'other_q' in input: - profile1, value1 = input['cmp_args'][-1].split(',') - profile, value = input['cmp_args'][0].split(',') + profile1, value1 = self.process_cmp_args(input['cmp_args'][-1]) for key in cmp_data: - if ast.literal_eval(key)[-1] in input['cmp_q_args']: - assert(cmp_data[key][profile] == value) - if 'other_q' in input and ast.literal_eval(key)[-1] in input['other_q']: - assert(cmp_data[key][profile1] == value1) + queue_idx = ast.literal_eval(key)[-1] + if queue_idx in input['cmp_q_args']: + self.verify_profile(cmp_data[key], profile, value) + if 'other_q' in input and queue_idx in input['other_q']: + self.verify_profile(cmp_data[key], profile1, value1) else: for args in input['cmp_args']: profile, name, value = args.split(',') diff --git a/tests/mock_tables/config_db.json b/tests/mock_tables/config_db.json index 8861d43a75..ff0be3a446 100644 --- a/tests/mock_tables/config_db.json +++ b/tests/mock_tables/config_db.json @@ -2010,11 +2010,11 @@ }, "QUEUE|Ethernet0|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet0|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet0|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2033,11 +2033,11 @@ }, "QUEUE|Ethernet112|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet112|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet112|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2056,11 +2056,11 @@ }, "QUEUE|Ethernet116|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet116|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet116|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2079,11 +2079,11 @@ }, "QUEUE|Ethernet120|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet120|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet120|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2102,11 +2102,11 @@ }, "QUEUE|Ethernet124|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet124|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet124|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2125,11 +2125,11 @@ }, "QUEUE|Ethernet12|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet12|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet12|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2148,11 +2148,11 @@ }, "QUEUE|Ethernet16|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet16|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet16|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2171,11 +2171,11 @@ }, "QUEUE|Ethernet20|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet20|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet20|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2194,11 +2194,11 @@ }, "QUEUE|Ethernet24|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet24|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet24|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2217,11 +2217,11 @@ }, "QUEUE|Ethernet28|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet28|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet28|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2240,11 +2240,11 @@ }, "QUEUE|Ethernet32|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet32|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet32|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2263,11 +2263,11 @@ }, "QUEUE|Ethernet36|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet36|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet36|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2286,11 +2286,11 @@ }, "QUEUE|Ethernet40|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet40|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet40|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2309,11 +2309,11 @@ }, "QUEUE|Ethernet44|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet44|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet44|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2332,11 +2332,11 @@ }, "QUEUE|Ethernet48|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet48|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet48|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2355,11 +2355,11 @@ }, "QUEUE|Ethernet4|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet4|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet4|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2378,11 +2378,11 @@ }, "QUEUE|Ethernet52|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet52|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet52|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2401,11 +2401,11 @@ }, "QUEUE|Ethernet56|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet56|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet56|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2424,11 +2424,11 @@ }, "QUEUE|Ethernet60|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet60|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet60|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2447,11 +2447,11 @@ }, "QUEUE|Ethernet64|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet64|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet64|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2470,11 +2470,11 @@ }, "QUEUE|Ethernet68|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet68|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet68|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2493,11 +2493,11 @@ }, "QUEUE|Ethernet72|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet72|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet72|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2516,11 +2516,11 @@ }, "QUEUE|Ethernet76|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet76|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet76|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2539,11 +2539,11 @@ }, "QUEUE|Ethernet80|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet80|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet80|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2562,11 +2562,11 @@ }, "QUEUE|Ethernet84|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet84|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet84|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2585,11 +2585,11 @@ }, "QUEUE|Ethernet88|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet88|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet88|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2608,11 +2608,11 @@ }, "QUEUE|Ethernet8|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet8|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet8|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2631,11 +2631,11 @@ }, "QUEUE|Ethernet92|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet92|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet92|5": { "scheduler": "[SCHEDULER|scheduler.0]" @@ -2654,11 +2654,11 @@ }, "QUEUE|Ethernet96|3": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet96|4": { "scheduler": "[SCHEDULER|scheduler.1]", - "wred_profile": "[WRED_PROFILE|AZURE_LOSSLESS]" + "wred_profile": "AZURE_LOSSLESS" }, "QUEUE|Ethernet96|5": { "scheduler": "[SCHEDULER|scheduler.0]"