diff --git a/src/core/cntlr_map_debug.c b/src/core/cntlr_map_debug.c index 2fe463dd408cea5342f39ff8f0d640466cfb2e52..5566dbd7484a8d350a7f334bb630444a3cfc15b2 100644 --- a/src/core/cntlr_map_debug.c +++ b/src/core/cntlr_map_debug.c @@ -170,6 +170,50 @@ int debug_ap_caps_report(void *cntlr, struct cmdu_cstruct *cmdu) int debug_channel_pref_report(void *cntlr, struct cmdu_cstruct *cmdu) { trace("%s: --->\n", __func__); + trace("parsing channel pref of |%s:" MACFMT "|\n", cmdu->intf_name, + MAC2STR(cmdu->origin)); + + int i, j, k; + uint8_t *tlv = NULL; + + for (i = 0; i < cmdu->num_tlvs; i++) { + tlv = (uint8_t *) cmdu->tlvs[i]; + trace("CMDU type: %s\n", map_stringify_tlv_type(*tlv)); + switch (*tlv) { + case MAP_TLV_CHANNEL_PREFERENCE: + { + struct tlv_channel_pref *p = + (struct tlv_channel_pref *)tlv; + + trace("\tradio_id: " MACFMT "\n", + MAC2STR(p->radio_id)); + trace("\tch_preference_op_class_nr: %d\n", + p->ch_preference_op_class_nr); + + for (j = 0; j < p->ch_preference_op_class_nr; + j++) { + trace("\t\top_class: %d\n", + p->op_class[j].op_class); + trace("\t\tnon_op_ch_nr: %d\n", + p->op_class[j].channel_nr); + + //for (k = 0; k < p->operating_class[j].channel_nr; k++) + // trace("\t\t\tchannel: %d\n", + // p->operating_class[j].channel_list[k]); + trace("\t\tpreference: %d\n", + p->op_class[j].preference); + trace("\t\tpreference_reason: %d\n", + p->op_class[j].preference_reason); + } + break; + } + default: + fprintf(stdout, "unknown TLV in CMDU:|%s|", + map_stringify_cmdu_type(cmdu->message_type)); + break; + } + trace("\n"); + } return 0; }