Skip to content

Commit

Permalink
Merge pull request #14462 from mikaleppanen/feat_wisun_start_wisun_if
Browse files Browse the repository at this point in the history
[feature-wisun] Added new start methods to Wi-SUN BR with WisunInterface parameter and deprecated the old ones
  • Loading branch information
0xc0170 authored Apr 14, 2021
2 parents 72c3981 + fcac235 commit 1d1a8f9
Show file tree
Hide file tree
Showing 2 changed files with 57 additions and 4 deletions.
30 changes: 30 additions & 0 deletions features/nanostack/mbed-mesh-api/mbed-mesh-api/WisunBorderRouter.h
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,21 @@ class WisunBorderRouter {
* \return MESH_ERROR_NONE on success.
* \return MESH_ERROR_UNKNOWN in case of failure.
* */
mesh_error_t start(WisunInterface *mesh_if, NetworkInterface *backbone_if);

/**
* \brief Start Wi-SUN Border Router
*
* Starts Wi-SUN Border Router and routing between the mesh and backbone interfaces. Network interfaces
* must be initialized and connected before calling the start. Backbone interface can be either Ethernet
* (EMAC) or Cellular.
*
* \param mesh_if Wi-SUN mesh network interface
* \param backbone_if Backbone network interface
* \return MESH_ERROR_NONE on success.
* \return MESH_ERROR_UNKNOWN in case of failure.
* */
MBED_DEPRECATED_SINCE("mbed-os-5.15.8", "Using NetworkInterface type for mesh_if is deprecated, use WisunInterface instead")
mesh_error_t start(NetworkInterface *mesh_if, NetworkInterface *backbone_if);

/**
Expand All @@ -100,6 +115,21 @@ class WisunBorderRouter {
* \return MESH_ERROR_NONE on success.
* \return MESH_ERROR_UNKNOWN in case of failure.
* */
mesh_error_t start(WisunInterface *mesh_if, OnboardNetworkStack::Interface *backbone_if);

/**
* \brief Start Wi-SUN Border Router
*
* Starts Wi-SUN Border Router and routing between the mesh and backbone interfaces. Mesh network interface
* must be initialized and connected before calling the start. Backbone OnboardNetworkStack::Interface must
* be brought up before calling the start. Backbone interface can be either Ethernet (EMAC) or Cellular (PPP).
*
* \param mesh_if Wi-SUN mesh network interface
* \param backbone_if Backbone OnboardNetworkStack::Interface interface
* \return MESH_ERROR_NONE on success.
* \return MESH_ERROR_UNKNOWN in case of failure.
* */
MBED_DEPRECATED_SINCE("mbed-os-5.15.8", "Using NetworkInterface type for mesh_if is deprecated, use WisunInterface instead")
mesh_error_t start(NetworkInterface *mesh_if, OnboardNetworkStack::Interface *backbone_if);

/**
Expand Down
31 changes: 27 additions & 4 deletions features/nanostack/mbed-mesh-api/source/WisunBorderRouter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -40,8 +40,17 @@ mesh_error_t WisunBorderRouter::start(NetworkInterface *mesh_if, NetworkInterfac
return MESH_ERROR_PARAM;
}

InterfaceNanostack *nano_mesh_if = reinterpret_cast<InterfaceNanostack *>(mesh_if);
int8_t mesh_if_id = nano_mesh_if->get_interface_id();
WisunInterface *wisun_mesh_if = reinterpret_cast<WisunInterface *>(mesh_if);
return start(wisun_mesh_if, backbone_if);
}

mesh_error_t WisunBorderRouter::start(WisunInterface *mesh_if, NetworkInterface *backbone_if)
{
if (mesh_if == NULL || backbone_if == NULL) {
return MESH_ERROR_PARAM;
}

int8_t mesh_if_id = mesh_if->get_interface_id();
if (mesh_if_id < 0) {
return MESH_ERROR_UNKNOWN;
}
Expand Down Expand Up @@ -71,10 +80,24 @@ mesh_error_t WisunBorderRouter::start(NetworkInterface *mesh_if, NetworkInterfac
return MESH_ERROR_NONE;
}


mesh_error_t WisunBorderRouter::start(NetworkInterface *mesh_if, OnboardNetworkStack::Interface *backbone_if)
{
InterfaceNanostack *nano_mesh_if = reinterpret_cast<InterfaceNanostack *>(mesh_if);
int8_t mesh_if_id = nano_mesh_if->get_interface_id();
if (mesh_if == NULL || backbone_if == NULL) {
return MESH_ERROR_PARAM;
}

WisunInterface *wisun_mesh_if = reinterpret_cast<WisunInterface *>(mesh_if);
return start(wisun_mesh_if, backbone_if);
}

mesh_error_t WisunBorderRouter::start(WisunInterface *mesh_if, OnboardNetworkStack::Interface *backbone_if)
{
if (mesh_if == NULL || backbone_if == NULL) {
return MESH_ERROR_PARAM;
}

int8_t mesh_if_id = mesh_if->get_interface_id();
if (mesh_if_id < 0) {
return MESH_ERROR_UNKNOWN;
}
Expand Down

0 comments on commit 1d1a8f9

Please sign in to comment.