EL4121 Embedded System / mbed-os

Dependents:   cobaLCDJoyMotor_Thread odometry_omni_3roda_v3 odometry_omni_3roda_v1 odometry_omni_3roda_v2 ... more

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers thread_bbr_api_internal.h Source File

thread_bbr_api_internal.h

00001 /*
00002  * Copyright (c) 2016-2017, Arm Limited and affiliates.
00003  * SPDX-License-Identifier: BSD-3-Clause
00004  *
00005  * Redistribution and use in source and binary forms, with or without
00006  * modification, are permitted provided that the following conditions are met:
00007  *
00008  * 1. Redistributions of source code must retain the above copyright
00009  *    notice, this list of conditions and the following disclaimer.
00010  * 2. Redistributions in binary form must reproduce the above copyright
00011  *    notice, this list of conditions and the following disclaimer in the
00012  *    documentation and/or other materials provided with the distribution.
00013  * 3. Neither the name of the copyright holder nor the
00014  *    names of its contributors may be used to endorse or promote products
00015  *    derived from this software without specific prior written permission.
00016  *
00017  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
00018  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
00019  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
00020  * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
00021  * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
00022  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
00023  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
00024  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
00025  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00026  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
00027  * POSSIBILITY OF SUCH DAMAGE.
00028  */
00029 
00030 /**
00031  * \brief Nanostack BBR internal instance and corresponding methods.
00032  */
00033 
00034 #ifndef THREAD_BBR_API_INTERNAL_H_
00035 #define THREAD_BBR_API_INTERNAL_H_
00036 
00037 #include "net_interface.h"
00038 #ifdef HAVE_THREAD_ROUTER
00039 /**
00040  * \brief Initialize Thread Commissioner relay for BBR and Routers
00041  *
00042  * \param interface_id current interface id
00043  * \param external_commisssioner_port External commissioner port
00044  */
00045 int8_t thread_bbr_init(int8_t interface_id, uint16_t external_commisssioner_port);
00046 /**
00047  * \brief delete Thread Commissioner relay for BBR and Routers
00048  *
00049  * \param interface_id current interface id
00050  */
00051 void thread_bbr_delete(int8_t interface_id);
00052 
00053 /**
00054  * \brief seconds timer for border router
00055  *
00056  * \param interface_id current interface id
00057  * \param tics seconds pass since last call
00058  */
00059 void thread_bbr_seconds_timer(int8_t interface_id, uint32_t tics);
00060 
00061 /**
00062  * \brief enable/disable UDP proxy
00063  *
00064  * \param interface_id current interface id
00065  */
00066 int thread_bbr_commissioner_proxy_service_update(int8_t interface_id);
00067 
00068 #else
00069 #define thread_bbr_init(interface_id, external_commisssioner_port)
00070 #define thread_bbr_delete(interface_id)
00071 #define thread_bbr_seconds_timer(interface_id, tics)
00072 #define thread_bbr_commissioner_proxy_service_update(interface_id)
00073 #endif //HAVE_THREAD_ROUTER
00074 
00075 #ifdef HAVE_THREAD_BORDER_ROUTER
00076 /**
00077  * \brief nd proxy and relay service state change
00078  *
00079  * \param interface_id current interface id
00080  */
00081 int thread_bbr_proxy_state_update(int8_t caller_interface_id , int8_t handler_interface_id, bool status);
00082 
00083 /**
00084  * \brief Test if border router routing is enabled
00085  *
00086  * \param cur Protocol interface
00087  */
00088 bool thread_bbr_routing_enabled(protocol_interface_info_entry_t *cur);
00089 
00090 /**
00091  * \brief Inform BBR for network data change
00092  *
00093  * \param cur Protocol interface
00094  */
00095 void thread_bbr_network_data_update_notify(protocol_interface_info_entry_t *cur);
00096 
00097 #else
00098 #define thread_bbr_proxy_state_update(caller_interface_id , handler_interface_id, status) (NULL)
00099 #define thread_bbr_routing_enabled(cur) false
00100 #define thread_bbr_network_data_update_notify(cur)
00101 #endif //HAVE_THREAD_BORDER_ROUTER
00102 
00103 
00104 #endif /* THREAD_BORDER_ROUTER_API_INTERNAL_H_ */
00105