takashi kadono / Mbed OS Nucleo446_SSD1331

Dependencies:   ssd1331

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers mac_helper.h Source File

mac_helper.h

00001 /*
00002  * Copyright (c) 2016-2018, 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/address.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_next_key_set(struct protocol_interface_info_entry *interface, uint8_t *key, uint8_t id, uint8_t keyid_mode);
00071 
00072 int8_t mac_helper_security_prev_key_set(struct protocol_interface_info_entry *interface, uint8_t *key, uint8_t id, uint8_t keyid_mode);
00073 
00074 void mac_helper_security_key_swap_next_to_default(struct protocol_interface_info_entry *interface);
00075 
00076 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);
00077 
00078 void mac_helper_security_key_clean(struct protocol_interface_info_entry *interface);
00079 
00080 void mac_helper_coordinator_address_set(struct protocol_interface_info_entry *interface, addrtype_t adr_type, uint8_t *adr_ptr);
00081 
00082 addrtype_t mac_helper_coordinator_address_get(struct protocol_interface_info_entry *interface, uint8_t *adr_ptr);
00083 
00084 /* Beacon Payload API */
00085 uint8_t *mac_helper_beacon_payload_reallocate(struct protocol_interface_info_entry *interface, uint8_t len);
00086 
00087 int8_t mac_helper_beacon_payload_register(struct protocol_interface_info_entry *interface);
00088 
00089 uint8_t *mac_helper_beacon_payload_pointer_get(struct protocol_interface_info_entry *interface);
00090 
00091 uint8_t mac_helper_beacon_payload_length_get(struct protocol_interface_info_entry *interface);
00092 /* Beacon Payload API end*/
00093 
00094 int8_t mac_helper_pib_boolean_set(struct protocol_interface_info_entry *interface, mlme_attr_t attribute, bool value);
00095 
00096 int8_t mac_helper_mac_channel_set(struct protocol_interface_info_entry *interface, uint8_t new_channel);
00097 
00098 bool mac_helper_write_our_addr(struct protocol_interface_info_entry *interface, struct ns_sockaddr *ptr);
00099 
00100 int8_t mac_helper_mac64_set(struct protocol_interface_info_entry *interface, const uint8_t *mac64);
00101 
00102 uint_fast16_t mac_helper_max_payload_size(struct protocol_interface_info_entry *cur, uint_fast16_t frame_overhead);
00103 
00104 uint_fast8_t mac_helper_frame_overhead(struct protocol_interface_info_entry *cur, const struct buffer *buf);
00105 
00106 int8_t mac_helper_link_frame_counter_read(int8_t interface_id, uint32_t *seq_ptr);
00107 
00108 int8_t mac_helper_link_frame_counter_set(int8_t interface_id, uint32_t seq_ptr);
00109 
00110 void mac_helper_devicetable_remove(struct mac_api_s *mac_api, uint8_t attribute_index);
00111 
00112 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);
00113 
00114 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);
00115 int8_t mac_helper_mac_mlme_max_retry_set(int8_t interface_id, uint8_t mac_retry_set);
00116 
00117 #endif // MAC_HELPER_H