Skip to content
Snippets Groups Projects

Added Changes for ticket 3595 section 8.1

Merged Nevadita requested to merge channel_pref_controller into devel
2 files
+ 191
1
Compare changes
  • Side-by-side
  • Inline
Files
2
+ 140
0
@@ -170,6 +170,146 @@ 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\top_channel_nr: %d\n",
p->op_class[j].channel_nr);
for (k = 0; k < p->op_class[j].channel_nr; k++) {
trace("\t\t\tchannel: %d\n",
p->op_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;
}
case MAP_TLV_RADIO_OPERATION_RESTRICTION:
{
struct tlv_radio_oper_restrict *p =
(struct tlv_radio_oper_restrict *)tlv;
trace("\tradio_id: " MACFMT "\n",
MAC2STR(p->radio_id));
trace("\top_restricted_op_class_nr: %d\n",
p->op_restricted_op_class_nr);
for (j = 0; j < p->op_restricted_op_class_nr; j++) {
trace("\t\top_class: %d\n",
p->restricted_op_class[j].op_class);
trace("\t\top_channel_nr: %d\n",
p->restricted_op_class[j].channel_nr);
for (k = 0; k < p->restricted_op_class[j].channel_nr; k++) {
trace("\t\t\tchannel: %d\n",
p->restricted_op_class[j].restricted_channels[k].channel);
trace("\t\t\tmin_freq_sep: %d\n",
p->restricted_op_class[j].restricted_channels[k].min_freq_sep);
}
}
break;
}
case MAP_TLV_CAC_COMPLETION_REPORT:
{
struct tlv_cac_comp_report *p =
(struct tlv_cac_comp_report *)tlv;
trace("\tnbr_radios: %d\n",
p->nbr_radios);
for (j = 0; j < p->nbr_radios; j++) {
trace("\t\tradio_id: " MACFMT "\n",
MAC2STR(p->radio_data[j].radio_id));
trace("\t\top_class: %d\n",
p->radio_data[j].op_class);
trace("\t\tchannel: %d\n",
p->radio_data[j].ch);
trace("\t\tcompletion_status %d\n",
p->radio_data[j].completion_status);
trace("\t\tnbr_pairs %d\n",
p->radio_data[j].nbr_pairs);
for (k = 0; k < p->radio_data[j].nbr_pairs; k++) {
trace("\t\t\top_class_detected: %d\n",
p->radio_data[j].pair_data[k].op_class_detected);
trace("\t\t\tch_detected: %d\n",
p->radio_data[j].pair_data[k].ch_detected);
}
}
break;
}
case MAP_TLV_CAC_STATUS_REPORT:
{
struct tlv_cac_status_report *p =
(struct tlv_cac_status_report *)tlv;
trace("\tnbr_available_ch: %d\n",
p->nbr_available_ch);
for (j = 0; j < p->nbr_available_ch; j++) {
trace("\t\top_class: %d\n",
p->ch_data[j].op_class);
trace("\t\tchannel: %d\n",
p->ch_data[j].ch);
trace("\t\ttime: %d\n",
p->ch_data[j].time);
}
trace("\tnbr_pairs_duration: %d\n",
p->nbr_pairs_duration);
for (j = 0; j < p->nbr_pairs_duration; j++) {
trace("\t\top_class: %d\n",
p->duration_pair_data[j].op_class);
trace("\t\tchannel: %d\n",
p->duration_pair_data[j].ch);
trace("\t\ttime: %d\n",
p->duration_pair_data[j].time);
}
trace("\tnbr_pairs_coundown: %d\n",
p->nbr_pairs_coundown);
for (j = 0; j < p->nbr_pairs_coundown; j++) {
trace("\t\top_class: %d\n",
p->count_pair_data[j].op_class);
trace("\t\tchannel: %d\n",
p->count_pair_data[j].ch);
trace("\t\ttime: %d\n",
p->count_pair_data[j].time);
}
break;
}
default:
fprintf(stdout, "unknown TLV in CMDU:|%s|",
map_stringify_cmdu_type(cmdu->message_type));
break;
}
trace("\n");
}
return 0;
}
Loading