def _dump_std_primitives(self, hlir, primitives): p4_types = { "header_instance": p4_header_instance, "int": int, "table_entry_data": p4_table_entry_data, "field": p4_field, "field_list": p4_field_list, "field_list_calculation": p4_field_list_calculation, "counter": p4_counter, "meter": p4_meter, "register": p4_register, } for name, data in primitives.items(): properties = data["properties"] signature = data["args"] signature_flags = {} for formal, props in properties.items(): signature_flags[formal] = {} access = P4_WRITE if props["access"] == "write" else\ P4_READ signature_flags[formal]["access"] = access type_ = {p4_types[t] for t in props["type"]} signature_flags[formal]["type"] = type_ if "optional" in props: signature_flags[formal]["optional"] = props["optional"] if "data_width" in props: signature_flags[formal]["data_width"] = props["data_width"] g_action = p4_action(hlir, name, signature=signature, signature_flags=signature_flags)
def dump_to_p4_P4ActionFunction(self, hlir): signature = self.formals call_sequence = [call.dump_to_p4(hlir) for call in self.action_body] g_action = p4_action( hlir, self.name, filename=self.filename, lineno=self.lineno, signature=signature, call_sequence=call_sequence ) g_action._pragmas = self._pragmas.copy()
def dump_to_p4_P4ActionFunction(self, hlir, program_version=0, config_dir=None): if program_version == TestingVersion: rename_str = self.name + " " + self.name + _ShadowFlag_ + "\n" if config_dir == None: config_dir = "." filename = os.path.join(config_dir, ShadowP4Configure) with open(filename, 'a+') as fp: fp.write(rename_str) print 'LOG|HLIR|frontend|Dumper|rename action function:', self.name, '-->', self.name + _ShadowFlag_ self.name = self.name + _ShadowFlag_ # print 'DBG|action:', pprint(vars(self)) signature = self.formals call_sequence = [ call.dump_to_p4(hlir, program_version=program_version) for call in self.action_body ] g_action = p4_action(hlir, self.name, filename=self.filename, lineno=self.lineno, signature=signature, call_sequence=call_sequence) g_action._pragmas = self._pragmas.copy()
def _dump_std_primitives(self, hlir, primitives): p4_types = { "header_instance": p4_header_instance, "int": int, "table_entry_data": p4_table_entry_data, "field": p4_field, "field_list": p4_field_list, "field_list_calculation": p4_field_list_calculation, "counter": p4_counter, "meter": p4_meter, "register": p4_register, } for name, data in primitives.items(): properties = data["properties"] signature = data["args"] signature_flags = {} for formal, props in properties.items(): signature_flags[formal] = {} access = P4_WRITE if props["access"] == "write" else P4_READ signature_flags[formal]["access"] = access type_ = {p4_types[t] for t in props["type"]} signature_flags[formal]["type"] = type_ if "optional" in props: signature_flags[formal]["optional"] = props["optional"] if "data_width" in props: signature_flags[formal]["data_width"] = props["data_width"] g_action = p4_action(hlir, name, signature=signature, signature_flags=signature_flags)
def dump_to_p4_P4ActionFunction(self, hlir): signature = self.formals call_sequence = [call.dump_to_p4(hlir) for call in self.action_body] g_action = p4_action(hlir, self.name, filename=self.filename, lineno=self.lineno, signature=signature, call_sequence=call_sequence) g_action._pragmas = self._pragmas.copy()