void ofl_structs_meter_band_print(FILE *stream, struct ofl_meter_band_header* s){ fprintf(stream, "{type = "); ofl_meter_band_type_print(stream, s->type); switch(s->type){ case(OFPMBT_DROP):{ struct ofl_meter_band_drop *d = (struct ofl_meter_band_drop*)s; fprintf(stream, ", rate=\"%"PRIu32"\", burst_size=\"%"PRIu32"\"}", d->rate, d->burst_size); break; } case(OFPMBT_DSCP_REMARK):{ struct ofl_meter_band_dscp_remark *d = (struct ofl_meter_band_dscp_remark*)s; fprintf(stream, ", rate=\"%"PRIu32"\", burst_size=\"%"PRIu32"\", prec_level=\"%u\"}", d->rate, d->burst_size, d->prec_level); break; } case(OFPMBT_EXPERIMENTER):{ struct ofl_meter_band_experimenter *d = (struct ofl_meter_band_experimenter*)s; fprintf(stream, ", rate=\"%"PRIu32"\", burst_size=\"%"PRIu32"\", exp_id=\"%"PRIu32"\"}", d->rate, d->burst_size, d->experimenter); break; } } }
char * ofl_meter_band_type_to_string(uint16_t type) { char *str; size_t str_size; FILE *stream = open_memstream(&str, &str_size); ofl_meter_band_type_print(stream, type); fclose(stream); return str; }