Skip to content

Commit 5a45589

Browse files
author
Tero Heinonen
authored
Thread commercial cleanup (#1472)
Thread discovery cleaned. Some constants moved to own header file.
1 parent abdce23 commit 5a45589

9 files changed

+61
-43
lines changed

source/6LoWPAN/Thread/thread_commercial.c

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include "6LoWPAN/Thread/thread_address_registration_client.h"
2727
#include "6LoWPAN/Thread/thread_discovery.h"
2828
#include "6LoWPAN/Thread/thread_commercial_bootstrap.h"
29+
#include "6LoWPAN/Thread/thread_commercial_constants.h"
2930
#include "6LoWPAN/MAC/mac_helper.h"
3031
#include "NWK_INTERFACE/Include/protocol.h"
3132
#include "Common_Protocols/ipv6.h"
@@ -562,6 +563,24 @@ bool thread_commercial_version_check(uint8_t version)
562563
return false;
563564
}
564565

566+
void thread_commercial_discover_response_read(discovery_response_list_t *nwk_info, uint8_t *data_ptr, uint16_t data_len)
567+
{
568+
uint8_t domain_data_len;
569+
uint8_t *domain_data_ptr;
570+
571+
domain_data_len = thread_meshcop_tlv_find(data_ptr, data_len, MESHCOP_TLV_DOMAIN_NAME, &domain_data_ptr);
572+
if (domain_data_len > 16) {
573+
domain_data_len = 0;
574+
}
575+
576+
if (domain_data_len) {
577+
memcpy(nwk_info->thread_domain, domain_data_ptr, domain_data_len);
578+
}
579+
580+
thread_meshcop_tlv_data_get_uint16(data_ptr, data_len, MESHCOP_TLV_AE_PORT, &nwk_info->ae_port);
581+
thread_meshcop_tlv_data_get_uint16(data_ptr, data_len, MESHCOP_TLV_NMKP_PORT, &nwk_info->nmk_port);
582+
}
583+
565584
#ifdef HAVE_THREAD_ROUTER
566585
static int thread_commercial_relay_tx_cb(int8_t service_id, uint8_t source_address[16], uint16_t source_port, sn_coap_hdr_s *request_ptr)
567586
{

source/6LoWPAN/Thread/thread_commercial.h

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
extern "C" {
1414
#endif
1515

16+
struct discovery_response_list;
17+
1618
#ifdef HAVE_THREAD_V2
1719

1820
void thread_commercial_allocate(protocol_interface_info_entry_t *cur);
@@ -31,11 +33,13 @@ void thread_commercial_route_set(protocol_interface_info_entry_t *cur);
3133
void thread_commercial_activate(protocol_interface_info_entry_t *cur);
3234
bool thread_commercial_security_policy_enabled(uint8_t securityPolicy);
3335
bool thread_commercial_version_check(uint8_t version);
36+
void thread_commercial_discover_response_read(struct discovery_response_list *nwk_info, uint8_t *data_ptr, uint16_t data_len);
3437
#ifdef HAVE_THREAD_ROUTER
3538
int thread_commercial_joiner_router_init(int8_t interface_id);
3639
bool thread_commercial_joining_enabled(int8_t interface_id);
3740
uint8_t thread_commercial_discover_response_len(protocol_interface_info_entry_t *cur);
3841
uint8_t *thread_commercial_discover_response_write(protocol_interface_info_entry_t *cur, uint8_t *ptr);
42+
3943
#else
4044
#define thread_commercial_joiner_router_init(interface_id)
4145
#define thread_commercial_joining_enabled(interface_id) false
@@ -64,7 +68,7 @@ uint8_t *thread_commercial_discover_response_write(protocol_interface_info_entry
6468
#define thread_commercial_joining_enabled(interface_id) false
6569
#define thread_commercial_discover_response_len(cur) 0
6670
#define thread_commercial_discover_response_write(cur, ptr) (ptr)
67-
71+
#define thread_commercial_discover_response_read(nwk_info, data_ptr, data_len)
6872
#endif
6973

7074
#ifdef __cplusplus

source/6LoWPAN/Thread/thread_commercial_bbr.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,14 +25,14 @@
2525
#include "6LoWPAN/Thread/thread_address_registration_client.h"
2626
#include "6LoWPAN/Thread/thread_discovery.h"
2727
#include "6LoWPAN/Thread/thread_commercial_bootstrap.h"
28+
#include "6LoWPAN/Thread/thread_commercial_constants.h"
2829
#include "NWK_INTERFACE/Include/protocol.h"
2930
#include "Common_Protocols/ipv6.h"
3031

3132
#include "6LoWPAN/Thread/thread_commercial_bbr.h"
3233

3334
#ifdef HAVE_THREAD_V2
3435
#ifdef HAVE_THREAD_BORDER_ROUTER
35-
3636
#define TRACE_GROUP "pBBR"
3737

3838
/*

source/6LoWPAN/Thread/thread_commercial_bootstrap.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "6LoWPAN/Thread/thread_joiner_application.h"
1919
#include "6LoWPAN/Thread/thread_discovery.h"
2020
#include "6LoWPAN/Thread/thread_commercial_bootstrap.h"
21+
#include "6LoWPAN/Thread/thread_commercial_constants.h"
2122

2223

2324
/*

source/6LoWPAN/Thread/thread_commercial_bootstrap.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ int thread_commercial_bootstrap_domain_certificate_enable(protocol_interface_inf
4040
#define thread_commercial_bootstrap_domain_certificate_set(cur, domain_certificate_ptr, domain_certificate_len) (-1)
4141
#define thread_commercial_bootstrap_domain_private_key_set(cur, priv_key_ptr, priv_key_len) (-1)
4242
#define thread_commercial_bootstrap_domain_name_set(cur, domain_name) (-1)
43-
#define thread_commercial_bootstrap_commission_start(cur, parent_address, port) (-1)
43+
#define thread_commercial_bootstrap_commission_start(cur, parent_address, port, done_cb) (-1)
4444
#define thread_commercial_bootstrap_network_select(cur, discovery_response) (NULL)
4545
#define thread_commercial_bootstrap_domain_name_length_get(cur) (0)
4646
#define thread_commercial_bootstrap_domain_name_ptr_get(cur) (NULL)
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* Copyright (c) 2017 ARM Limited. All rights reserved.
3+
*/
4+
5+
#ifndef THREAD_COMMERCIAL_CONSTANTS_H_
6+
#define THREAD_COMMERCIAL_CONSTANTS_H_
7+
8+
/**
9+
* Default Autonomous enrollment port.
10+
*/
11+
#define THREAD_DEFAULT_AE_PORT 49192
12+
13+
/**
14+
* Default NMK port.
15+
*/
16+
#define THREAD_DEFAULT_NMKP_PORT 49193
17+
18+
#define THREAD_URI_BBR_MCAST_LISTENER_REPORT "n/mr" //<* 1.2 feature
19+
#define THREAD_URI_BBR_DOMAIN_ADDRESS_REGISTRATION "n/dr" //<* 1.2 feature
20+
#define THREAD_URI_BBR_TRI_RX_NTF "c/rxr" //<* Backbone border router
21+
#define THREAD_URI_BBR_NMK_RX_NTF "c/rxb" //<* Backbone border router
22+
#define THREAD_URI_BBR_TRI_TX_NTF "c/txr" //<* Backbone border router
23+
#define THREAD_URI_BBR_NMK_TX_NTF "c/txb" //<* Backbone border router
24+
#define THREAD_URI_BBR_BB_QRY_NTF "b/bq" //<* Backbone border router
25+
#define THREAD_URI_BBR_BB_ANS_NTF "b/ba" //<* Backbone border router
26+
#define THREAD_URI_BBR_NMKP_REQ "c/cjf" //<* Backbone border router
27+
28+
#define THREAD_URI_TRI_TX_NTF ".well-known/thread/c/tx" //<* Registrar
29+
#define THREAD_URI_TRI_RX_NTF ".well-known/thread/c/rxr" //<* Registrar
30+
31+
32+
#endif /* THREAD_COMMERCIAL_CONSTANTS_H_ */

source/6LoWPAN/Thread/thread_constants.h

Lines changed: 0 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,6 @@
2727
*/
2828
#define THREAD_COMMISSIONING_PORT 49191
2929

30-
/**
31-
* Default Autonomous enrollment port.
32-
*/
33-
#define THREAD_DEFAULT_AE_PORT 49192
34-
35-
/**
36-
* Default NMK port.
37-
*/
38-
#define THREAD_DEFAULT_NMKP_PORT 49193
39-
4030
/**
4131
* End device default timeout.
4232
*/
@@ -126,20 +116,6 @@
126116
#define THREAD_URI_COMMISSIONER_SET "c/cs" //<* 1.1 feature
127117
#define THREAD_URI_DATASET_CHANGED "c/dc" //<* 1.1 feature
128118

129-
#define THREAD_URI_BBR_MCAST_LISTENER_REPORT "n/mr" //<* 1.2 feature
130-
#define THREAD_URI_BBR_DOMAIN_ADDRESS_REGISTRATION "n/dr" //<* 1.2 feature
131-
#define THREAD_URI_BBR_TRI_RX_NTF "c/rxr" //<* Backbone border router
132-
#define THREAD_URI_BBR_NMK_RX_NTF "c/rxb" //<* Backbone border router
133-
#define THREAD_URI_BBR_TRI_TX_NTF "c/txr" //<* Backbone border router
134-
#define THREAD_URI_BBR_NMK_TX_NTF "c/txb" //<* Backbone border router
135-
#define THREAD_URI_BBR_BB_QRY_NTF "b/bq" //<* Backbone border router
136-
#define THREAD_URI_BBR_BB_ANS_NTF "b/ba" //<* Backbone border router
137-
#define THREAD_URI_BBR_NMKP_REQ "c/cjf" //<* Backbone border router
138-
139-
#define THREAD_URI_TRI_TX_NTF ".well-known/thread/c/tx" //<* Registrar
140-
#define THREAD_URI_TRI_RX_NTF ".well-known/thread/c/rxr" //<* Registrar
141-
142-
143119
#define THREAD_DEFAULT_COAP_RESOLUTION 1
144120
#define THREAD_DEFAULT_KEY_SWITCH_GUARD_TIME 624 // Hours
145121
#define THREAD_DEFAULT_KEY_ROTATION 672 // Hours

source/6LoWPAN/Thread/thread_discovery.c

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -906,8 +906,6 @@ static void thread_discovery_response_msg_handler(thread_discovery_class_t * dis
906906
uint16_t discover_response_tlv;
907907
uint8_t *nwk_name, *extented_panid;
908908
uint8_t nwk_name_length;
909-
uint8_t domain_data_len;
910-
uint8_t *domain_data_ptr;
911909

912910
//Discover MLE_TYPE_DISCOVERY
913911
if (mle_tlv_option_discover(mle_msg->data_ptr, mle_msg->data_length, MLE_TYPE_DISCOVERY, &discovery_tlv) < 4) {
@@ -966,12 +964,6 @@ static void thread_discovery_response_msg_handler(thread_discovery_class_t * dis
966964
}
967965
}
968966

969-
970-
domain_data_len = thread_meshcop_tlv_find(discovery_tlv.dataPtr, discovery_tlv.tlvLen, MESHCOP_TLV_DOMAIN_NAME, &domain_data_ptr);
971-
if (domain_data_len > 16) {
972-
domain_data_len = 0;
973-
}
974-
975967
discovery_response_list_t *nwk_info = thread_discover_response_msg_get_discover_from_list(
976968
&discovery_class->discovered_network,
977969
discovery_class->discovery_request->active_channel, pan_id);
@@ -998,15 +990,9 @@ static void thread_discovery_response_msg_handler(thread_discovery_class_t * dis
998990
memset(nwk_info->network_name, 0, 16);
999991
memcpy(nwk_info->network_name, nwk_name, nwk_name_length);
1000992

1001-
if (domain_data_len) {
1002-
memcpy(nwk_info->thread_domain, domain_data_ptr, domain_data_len);
1003-
}
1004-
1005993
thread_meshcop_tlv_data_get_uint16(discovery_tlv.dataPtr, discovery_tlv.tlvLen, MESHCOP_TLV_COMMISSIONER_UDP_PORT, &nwk_info->commissioner_port);
1006994

1007-
thread_meshcop_tlv_data_get_uint16(discovery_tlv.dataPtr, discovery_tlv.tlvLen, MESHCOP_TLV_AE_PORT, &nwk_info->ae_port);
1008-
1009-
thread_meshcop_tlv_data_get_uint16(discovery_tlv.dataPtr, discovery_tlv.tlvLen, MESHCOP_TLV_NMKP_PORT, &nwk_info->nmk_port);
995+
thread_commercial_discover_response_read(nwk_info, discovery_tlv.dataPtr, discovery_tlv.tlvLen);
1010996

1011997
//Add to last
1012998
if (discovery_class->discovery_request->native_commisioner_scan) {

source/6LoWPAN/Thread/thread_discovery.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
struct protocol_interface_info_entry;
99

10-
typedef struct {
10+
typedef struct discovery_response_list {
1111
uint8_t thread_domain[16];
1212
uint8_t network_name[16];
1313
uint8_t steering_data[16];

0 commit comments

Comments
 (0)