static void ofl_msg_print_flow_mod(struct ofl_msg_flow_mod *msg, FILE *stream, struct ofl_exp *exp) { size_t i; fprintf(stream, "{table=\""); ofl_table_print(stream, msg->table_id); fprintf(stream, "\", cmd=\""); ofl_flow_mod_command_print(stream, msg->command); fprintf(stream, "\", cookie=\"0x%"PRIx64"\", mask=\"0x%"PRIx64"\", " "idle=\"%u\", hard=\"%u\", prio=\"%u\", buf=\"", msg->cookie, msg->cookie_mask, msg->idle_timeout, msg->hard_timeout, msg->priority); ofl_buffer_print(stream, msg->buffer_id); fprintf(stream, "\", port=\""); ofl_port_print(stream, msg->out_port); fprintf(stream, "\", group=\""); ofl_group_print(stream, msg->out_group); fprintf(stream, "\", flags=\"0x%"PRIx16"\", match=",msg->flags); ofl_structs_match_print(stream, msg->match, exp); fprintf(stream, ", insts=["); for(i=0; i<msg->instructions_num; i++) { ofl_structs_instruction_print(stream, msg->instructions[i], exp); if (i < msg->instructions_num - 1) { fprintf(stream, ", "); } } fprintf(stream, "]}"); }
char * ofl_flow_mod_command_to_string(uint8_t command) { char *str; size_t str_size; FILE *stream = open_memstream(&str, &str_size); ofl_flow_mod_command_print(stream, command); fclose(stream); return str; }