From 2f797c99ab3c32b45881e8fbf5fbd765a2086870 Mon Sep 17 00:00:00 2001 From: "nevadita.chatterjee" <nevadita.chatterjee@iopsys.eu> Date: Thu, 14 Jan 2021 17:00:32 +0530 Subject: [PATCH] map_cntrl: Fixed the 1905 ACK crash and added error TLV 17.2.36 --- src/core/cntlr_map.c | 2 +- src/core/cntlr_map_debug.c | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/core/cntlr_map.c b/src/core/cntlr_map.c index 9feb715e..583c693e 100644 --- a/src/core/cntlr_map.c +++ b/src/core/cntlr_map.c @@ -494,7 +494,7 @@ bool is_cmdu_for_us(void *module, uint16_t type) /* TODO: handle cmdu types relevant for operating profile. */ - if (type >= CMDU_TYPE_1905_START && type <= CMDU_TYPE_MAP_START) { + if (type >= CMDU_TYPE_1905_START && type <= CMDU_TYPE_1905_END) { if (i1905ftable[type].handle) return true; } else if (type >= CMDU_TYPE_MAP_START && type <= CMDU_TYPE_MAP_END) { diff --git a/src/core/cntlr_map_debug.c b/src/core/cntlr_map_debug.c index 7072b3bd..fe0bdd6e 100644 --- a/src/core/cntlr_map_debug.c +++ b/src/core/cntlr_map_debug.c @@ -58,6 +58,33 @@ int debug_ap_autoconfig_wsc(void *cntlr, struct cmdu_cstruct *cmdu) int debug_1905_ack(void *cntlr, struct cmdu_cstruct *cmdu) { trace("%s: --->\n", __func__); + trace("parsing 1905 ack 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_ERROR_CODE: + { + struct tlv_error_code *p = (struct tlv_error_code *)tlv; + + trace("\treason_code: %d\n", + p->reason_code); + trace("\tsta addr: " MACFMT "\n", + MAC2STR(p->addr)); + break; + } + default: + fprintf(stdout, "unknown TLV in CMDU:|%s|", + map_stringify_cmdu_type(cmdu->message_type)); + break; + } + trace("\n"); + } return 0; } -- GitLab