コード例 #1
0
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;
        }
    }
}
コード例 #2
0
ファイル: ofl-print.c プロジェクト: gucio1200/nox13oflib
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;
}