Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: TYBLE16_simple_data_logger TYBLE16_MP3_Air
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
Generated on Tue Jul 12 2022 13:54:31 by
