diff --git a/src/device/service/drivers/p4/p4_global_options.py b/src/device/service/drivers/p4/p4_global_options.py index 86043b671e9316dfeff2fb12db8ab3088386382a..3457c8d556902557aa3991eee20418cf3094666c 100644 --- a/src/device/service/drivers/p4/p4_global_options.py +++ b/src/device/service/drivers/p4/p4_global_options.py @@ -42,7 +42,8 @@ class GlobalOptions: option_helpstrings = { Options.canonical_bytestrings: """ Use byte-padded legacy format for binary strings sent to the P4Runtime server, -instead of the canonical representation. See P4Runtime specification for details. +instead of the canonical representation. See P4Runtime specification for +details. """ } @@ -199,6 +200,7 @@ def make_canonical_if_option_set(bytes_): :return: canonical bytes """ - if GLOBAL_OPTIONS.get_option(Options.canonical_bytestrings): - return to_canonical_bytes(bytes_) + # TODO: Fix canonical representation issue + # if GLOBAL_OPTIONS.get_option(Options.canonical_bytestrings): + # return to_canonical_bytes(bytes_) return bytes_ diff --git a/src/device/service/drivers/p4/p4_manager.py b/src/device/service/drivers/p4/p4_manager.py index dc25e80b5803bfdec7d802d41c136865f4c045e3..65f8602ea30fa2d8cd06b09655ee4ee63d045a97 100644 --- a/src/device/service/drivers/p4/p4_manager.py +++ b/src/device/service/drivers/p4/p4_manager.py @@ -175,9 +175,7 @@ def insert_table_entry_exact( try: table_entry.insert() LOGGER.info("Inserted exact table entry: %s", table_entry) - except P4RuntimeWriteException as ex: - ex_msg = str(ex) - except P4RuntimeException as ex: + except (P4RuntimeException, P4RuntimeWriteException) as ex: raise P4RuntimeException from ex # Table entry exists, needs to be modified @@ -230,9 +228,7 @@ def insert_table_entry_ternary( try: table_entry.insert() LOGGER.info("Inserted ternary table entry: %s", table_entry) - except P4RuntimeWriteException as ex: - ex_msg = str(ex) - except P4RuntimeException as ex: + except (P4RuntimeException, P4RuntimeWriteException) as ex: raise P4RuntimeException from ex # Table entry exists, needs to be modified @@ -893,10 +889,6 @@ class P4Manager: # Exact match is supported if get_table_type(table) == p4info_pb2.MatchField.EXACT: - if priority != 0: - msg = f"Table {table_name} is non-ternary, priority must be 0" - LOGGER.error(msg) - raise UserError(msg) return insert_table_entry_exact( table_name, match_map, action_name, action_params, metadata, cnt_pkt, cnt_byte) @@ -904,10 +896,6 @@ class P4Manager: # Ternary and LPM matches are supported if get_table_type(table) in \ [p4info_pb2.MatchField.TERNARY, p4info_pb2.MatchField.LPM]: - if priority == 0: - msg = f"Table {table_name} is ternary, priority must be != 0" - LOGGER.error(msg) - raise UserError(msg) return insert_table_entry_ternary( table_name, match_map, action_name, action_params, metadata, priority, cnt_pkt, cnt_byte) @@ -955,12 +943,6 @@ class P4Manager: for action_k, action_v in action_params.items(): table_entry.action[action_k] = action_v - if get_table_type(table) == p4info_pb2.MatchField.EXACT: - if priority != 0: - msg = f"Table {table_name} is non-ternary, priority must be 0" - LOGGER.error(msg) - raise UserError(msg) - if get_table_type(table) in \ [p4info_pb2.MatchField.TERNARY, p4info_pb2.MatchField.LPM]: if priority == 0: