Kenji Arai / mbed-os_TYBLE16

Dependents:   TYBLE16_simple_data_logger TYBLE16_MP3_Air

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers ws_pae_nvm_data.h Source File

ws_pae_nvm_data.h

00001 /*
00002  * Copyright (c) 2018-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 WS_PAE_NVM_DATA_H_
00019 #define WS_PAE_NVM_DATA_H_
00020 
00021 /*
00022  * Port access entity non-volatile memory (NVM) data module. Module is used
00023  * to create and parse PAE NVM data TLVs.
00024  *
00025  */
00026 
00027 /**
00028  * ws_pae_nvm_store_nw_info_tlv_create create NVM network info TLV
00029  *
00030  * \param tlv_entry TLV entry pointer
00031  * \param pan_id PAN ID
00032  * \param nw_name network name
00033  * \param gtks GTK keys
00034  *
00035  * \return TLV entry or NULL
00036  *
00037  */
00038 void ws_pae_nvm_store_nw_info_tlv_create(nvm_tlv_entry_t *tlv_entry, uint16_t pan_id, char *nw_name, sec_prot_gtk_keys_t *gtks);
00039 
00040 /**
00041  * ws_pae_nvm_store_nw_info_tlv_read read from NVM network info TLV
00042  *
00043  * \param tlv_entry TLV entry
00044  * \param pan_id PAN ID
00045  * \param nw_name network name
00046  * \param gtks GTK keys
00047  *
00048  * \return < 0 failure
00049  * \return >= 0 success
00050  *
00051  */
00052 int8_t ws_pae_nvm_store_nw_info_tlv_read(nvm_tlv_entry_t *tlv_entry, uint16_t *pan_id, char *nw_name, sec_prot_gtk_keys_t *gtks);
00053 
00054 /**
00055  * ws_pae_nvm_store_keys_tlv_create create NVM keys TLV
00056  *
00057  * \param tlv_entry TLV entry buffer pointer
00058  * \param sec_keys security keys
00059  *
00060  */
00061 void ws_pae_nvm_store_keys_tlv_create(nvm_tlv_entry_t *tlv_entry, sec_prot_keys_t *sec_keys);
00062 
00063 /**
00064  * ws_pae_nvm_store_nw_info_tlv_read read from NVM keys TLV
00065  *
00066  * \param tlv_entry TLV entry
00067  * \param sec_keys security keys
00068  *
00069  * \return < 0 failure
00070  * \return >= 0 success
00071  *
00072  */
00073 int8_t ws_pae_nvm_store_keys_tlv_read(nvm_tlv_entry_t *tlv_entry, sec_prot_keys_t *sec_keys);
00074 
00075 /**
00076  * ws_pae_nvm_store_frame_counter_tlv_create create NVM frame counter TLV
00077  *
00078  * \param tlv_entry TLV entry buffer pointer
00079  * \param counters frame counters
00080  *
00081  */
00082 void ws_pae_nvm_store_frame_counter_tlv_create(nvm_tlv_entry_t *tlv_entry, frame_counters_t *counters);
00083 
00084 /**
00085  * ws_pae_nvm_store_frame_counter_tlv_read read from NVM frame counter TLV
00086  *
00087  * \param tlv_entry TLV entry
00088  * \param counters frame counters
00089  *
00090  * \return < 0 failure
00091  * \return >= 0 success
00092  *
00093  */
00094 int8_t ws_pae_nvm_store_frame_counter_tlv_read(nvm_tlv_entry_t *tlv_entry, frame_counters_t *counters);
00095 
00096 nvm_tlv_entry_t *ws_pae_buffer_allocate(void);
00097 
00098 #endif /* WS_PAE_NVM_DATA_H_ */