Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers mac_helper.h Source File

mac_helper.h

00001 /*
00002  * Copyright (c) 2016-2019, Arm Limited and affiliates.
00003  * SPDX-License-Identifier: Apache-2.0
00004  *
00005  * Licensed under the Apache License, Version 2.0 (the "License");
00006  * you may not use this file except in compliance with the License.
00007  * You may obtain a copy of the License at
00008  *
00009  *     http://www.apache.org/licenses/LICENSE-2.0
00010  *
00011  * Unless required by applicable law or agreed to in writing, software
00012  * distributed under the License is distributed on an "AS IS" BASIS,
00013  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
00014  * See the License for the specific language governing permissions and
00015  * limitations under the License.
00016  */
00017 
00018 #ifndef MAC_HELPER_H
00019 #define MAC_HELPER_H
00020 
00021 #include "mlme.h"
00022 #include "Core/include/ns_address_internal.h"
00023 
00024 struct channel_list_s;
00025 struct nwk_scan_params;
00026 struct nwk_filter_params;
00027 struct nwk_pan_descriptor_t;
00028 struct protocol_interface_info_entry;
00029 struct ns_sockaddr;
00030 struct buffer;
00031 struct mac_api_s;
00032 
00033 
00034 void mac_create_scan_request(mac_scan_type_t type, struct channel_list_s *chanlist, uint8_t scan_duration, struct mlme_scan_s *request);
00035 
00036 struct nwk_pan_descriptor_t *mac_helper_select_best_lqi(struct nwk_pan_descriptor_t *list);
00037 
00038 void mac_helper_drop_selected_from_the_scanresult(struct nwk_scan_params *scanParams, struct nwk_pan_descriptor_t *selected);
00039 
00040 void mac_helper_free_scan_confirm(struct nwk_scan_params *params);
00041 
00042 struct nwk_pan_descriptor_t *mac_helper_free_pan_descriptions(struct nwk_pan_descriptor_t *nwk_cur_active);
00043 
00044 int8_t mac_helper_nwk_id_filter_set(const uint8_t *nw_id, struct nwk_filter_params *filter);
00045 
00046 void mac_helper_panid_set(struct protocol_interface_info_entry *interface, uint16_t panId);
00047 
00048 void mac_helper_mac16_address_set(struct protocol_interface_info_entry *interface, uint16_t mac16);
00049 
00050 uint16_t mac_helper_mac16_address_get(const struct protocol_interface_info_entry *interface);
00051 
00052 uint16_t mac_helper_panid_get(const struct protocol_interface_info_entry *interface);
00053 
00054 void mac_helper_set_default_key_source(struct protocol_interface_info_entry *interface);
00055 
00056 void mac_helper_default_security_level_set(struct protocol_interface_info_entry *interface, uint8_t securityLevel);
00057 
00058 uint8_t mac_helper_default_security_level_get(struct protocol_interface_info_entry *interface);
00059 
00060 void mac_helper_default_security_key_id_mode_set(struct protocol_interface_info_entry *interface, uint8_t keyIdMode);
00061 
00062 uint8_t mac_helper_default_security_key_id_mode_get(struct protocol_interface_info_entry *interface);
00063 
00064 void mac_helper_default_key_index_set(struct protocol_interface_info_entry *interface, uint8_t keyIndex);
00065 
00066 uint8_t mac_helper_default_key_index_get(struct protocol_interface_info_entry *interface);
00067 
00068 int8_t mac_helper_security_default_key_set(struct protocol_interface_info_entry *interface, const uint8_t *key, uint8_t id, uint8_t keyid_mode);
00069 
00070 int8_t mac_helper_security_default_recv_key_set(struct protocol_interface_info_entry *interface, const uint8_t *key, uint8_t id, uint8_t keyid_mode);
00071 
00072 int8_t mac_helper_security_auto_request_key_index_set(struct protocol_interface_info_entry *interface, uint8_t key_attibute_index, uint8_t id);
00073 
00074 int8_t mac_helper_security_next_key_set(struct protocol_interface_info_entry *interface, uint8_t *key, uint8_t id, uint8_t keyid_mode);
00075 
00076 int8_t mac_helper_security_prev_key_set(struct protocol_interface_info_entry *interface, uint8_t *key, uint8_t id, uint8_t keyid_mode);
00077 
00078 int8_t mac_helper_security_key_to_descriptor_set(struct protocol_interface_info_entry *interface, const uint8_t *key, uint8_t id, uint8_t descriptor);
00079 
00080 int8_t mac_helper_security_key_descriptor_clear(struct protocol_interface_info_entry *interface, uint8_t descriptor);
00081 
00082 void mac_helper_security_key_swap_next_to_default(struct protocol_interface_info_entry *interface);
00083 
00084 int8_t mac_helper_security_pairwisekey_set(struct protocol_interface_info_entry *interface, const uint8_t *key, const uint8_t *mac_64, uint8_t key_attribute);
00085 
00086 void mac_helper_security_key_clean(struct protocol_interface_info_entry *interface);
00087 
00088 void mac_helper_coordinator_address_set(struct protocol_interface_info_entry *interface, addrtype_t adr_type, uint8_t *adr_ptr);
00089 
00090 addrtype_t mac_helper_coordinator_address_get(struct protocol_interface_info_entry *interface, uint8_t *adr_ptr);
00091 
00092 /* Beacon Payload API */
00093 uint8_t *mac_helper_beacon_payload_reallocate(struct protocol_interface_info_entry *interface, uint8_t len);
00094 
00095 int8_t mac_helper_beacon_payload_register(struct protocol_interface_info_entry *interface);
00096 
00097 uint8_t *mac_helper_beacon_payload_pointer_get(struct protocol_interface_info_entry *interface);
00098 
00099 uint8_t mac_helper_beacon_payload_length_get(struct protocol_interface_info_entry *interface);
00100 /* Beacon Payload API end*/
00101 
00102 int8_t mac_helper_pib_boolean_set(struct protocol_interface_info_entry *interface, mlme_attr_t attribute, bool value);
00103 
00104 int8_t mac_helper_mac_channel_set(struct protocol_interface_info_entry *interface, uint8_t new_channel);
00105 
00106 bool mac_helper_write_our_addr(struct protocol_interface_info_entry *interface, struct ns_sockaddr *ptr);
00107 
00108 int8_t mac_helper_mac64_set(struct protocol_interface_info_entry *interface, const uint8_t *mac64);
00109 
00110 uint_fast16_t mac_helper_max_payload_size(struct protocol_interface_info_entry *cur, uint_fast16_t frame_overhead);
00111 
00112 uint_fast8_t mac_helper_frame_overhead(struct protocol_interface_info_entry *cur, const struct buffer *buf);
00113 
00114 int8_t mac_helper_link_frame_counter_read(int8_t interface_id, uint32_t *seq_ptr);
00115 
00116 int8_t mac_helper_link_frame_counter_set(int8_t interface_id, uint32_t seq_ptr);
00117 
00118 int8_t mac_helper_key_link_frame_counter_read(int8_t interface_id, uint32_t *seq_ptr, uint8_t descriptor);
00119 
00120 int8_t mac_helper_key_link_frame_counter_set(int8_t interface_id, uint32_t seq_ptr, uint8_t descriptor);
00121 
00122 void mac_helper_devicetable_remove(struct mac_api_s *mac_api, uint8_t attribute_index, uint8_t *mac64);
00123 
00124 void mac_helper_device_description_write(struct protocol_interface_info_entry *cur, mlme_device_descriptor_t *device_desc, uint8_t *mac64, uint16_t mac16, uint32_t frame_counter, bool exempt);
00125 
00126 void mac_helper_devicetable_set(const mlme_device_descriptor_t *device_dec, struct protocol_interface_info_entry *cur, uint8_t attribute_index, uint8_t keyID, bool force_set);
00127 int8_t mac_helper_mac_mlme_max_retry_set(int8_t interface_id, uint8_t mac_retry_set);
00128 
00129 int8_t mac_helper_mac_device_description_pan_id_update(int8_t interface_id, uint16_t pan_id);
00130 
00131 #endif // MAC_HELPER_H