Knight KE / Mbed OS Game_Master
Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers mac_helper.h Source File

mac_helper.h

00001 /*
00002  * Copyright (c) 2016-2017, 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 struct mle_neigh_table_entry_t;
00033 
00034 
00035 void mac_create_scan_request(mac_scan_type_t type, struct channel_list_s *chanlist, uint8_t scan_duration, struct mlme_scan_s *request);
00036 
00037 struct nwk_pan_descriptor_t *mac_helper_select_best_lqi(struct nwk_pan_descriptor_t *list);
00038 
00039 void mac_helper_drop_selected_from_the_scanresult(struct nwk_scan_params *scanParams, struct nwk_pan_descriptor_t *selected);
00040 
00041 void mac_helper_free_scan_confirm(struct nwk_scan_params *params);
00042 
00043 struct nwk_pan_descriptor_t * mac_helper_free_pan_descriptions(struct nwk_pan_descriptor_t *nwk_cur_active);
00044 
00045 int8_t mac_helper_nwk_id_filter_set(const uint8_t *nw_id, struct nwk_filter_params *filter);
00046 
00047 void mac_helper_panid_set(struct protocol_interface_info_entry *interface, uint16_t panId);
00048 
00049 void mac_helper_mac16_address_set(struct protocol_interface_info_entry *interface, uint16_t mac16);
00050 
00051 uint16_t mac_helper_mac16_address_get(const struct protocol_interface_info_entry *interface);
00052 
00053 uint16_t mac_helper_panid_get(const struct protocol_interface_info_entry *interface);
00054 
00055 void mac_helper_set_default_key_source(struct protocol_interface_info_entry *interface);
00056 
00057 void mac_helper_default_security_level_set(struct protocol_interface_info_entry *interface, uint8_t securityLevel);
00058 
00059 uint8_t mac_helper_default_security_level_get(struct protocol_interface_info_entry *interface);
00060 
00061 void mac_helper_default_security_key_id_mode_set(struct protocol_interface_info_entry *interface, uint8_t keyIdMode);
00062 
00063 uint8_t mac_helper_default_security_key_id_mode_get(struct protocol_interface_info_entry *interface);
00064 
00065 void mac_helper_default_key_index_set(struct protocol_interface_info_entry *interface, uint8_t keyIndex);
00066 
00067 uint8_t mac_helper_default_key_index_get(struct protocol_interface_info_entry *interface);
00068 
00069 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);
00070 
00071 int8_t mac_helper_security_next_key_set(struct protocol_interface_info_entry *interface, uint8_t *key, uint8_t id, uint8_t keyid_mode);
00072 
00073 int8_t mac_helper_security_prev_key_set(struct protocol_interface_info_entry *interface, uint8_t *key, uint8_t id, uint8_t keyid_mode);
00074 
00075 void mac_helper_security_key_swap_next_to_default(struct protocol_interface_info_entry *interface);
00076 
00077 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);
00078 
00079 void mac_helper_security_key_clean(struct protocol_interface_info_entry *interface);
00080 
00081 void mac_helper_coordinator_address_set(struct protocol_interface_info_entry *interface, addrtype_t adr_type, uint8_t *adr_ptr);
00082 
00083 addrtype_t mac_helper_coordinator_address_get(struct protocol_interface_info_entry *interface, uint8_t *adr_ptr);
00084 
00085 /* Beacon Payload API */
00086 uint8_t *mac_helper_beacon_payload_reallocate(struct protocol_interface_info_entry *interface, uint8_t len);
00087 
00088 int8_t mac_helper_beacon_payload_register(struct protocol_interface_info_entry *interface);
00089 
00090 uint8_t *mac_helper_beacon_payload_pointer_get(struct protocol_interface_info_entry *interface);
00091 
00092 uint8_t mac_helper_beacon_payload_length_get(struct protocol_interface_info_entry *interface);
00093 /* Beacon Payload API end*/
00094 
00095 int8_t mac_helper_pib_boolean_set(struct protocol_interface_info_entry *interface, mlme_attr_t attribute, bool value);
00096 
00097 int8_t mac_helper_mac_channel_set(struct protocol_interface_info_entry *interface, uint8_t new_channel);
00098 
00099 bool mac_helper_write_our_addr(struct protocol_interface_info_entry *interface, struct ns_sockaddr *ptr);
00100 
00101 int8_t mac_helper_mac64_set(struct protocol_interface_info_entry *interface, const uint8_t *mac64);
00102 
00103 uint_fast16_t mac_helper_max_payload_size(struct protocol_interface_info_entry *cur, uint_fast8_t frame_overhead);
00104 
00105 uint_fast8_t mac_helper_frame_overhead(struct protocol_interface_info_entry *cur, const struct buffer *buf);
00106 
00107 int8_t mac_helper_link_frame_counter_read(int8_t interface_id, uint32_t *seq_ptr);
00108 
00109 int8_t mac_helper_link_frame_counter_set(int8_t interface_id, uint32_t seq_ptr);
00110 
00111 void mac_helper_devicetable_remove(struct mac_api_s *mac_api, uint8_t attribute_index);
00112 
00113 void mac_helper_devicetable_set(struct mle_neigh_table_entry_t *entry_temp, struct protocol_interface_info_entry *cur, uint32_t frame_counter, uint8_t keyID, bool force_set);
00114 
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