Lines Matching +full:thread +full:- +full:border +full:- +full:router
2 * Copyright (c) 2021-22, The OpenThread Authors.
32 * This file defines the OpenThread Border Routing Manager API.
47 * @addtogroup api-border-routing
50 * This module includes definitions related to Border Routing Manager.
57 …* Border Routing Manager handles bi-directional routing between Thread network and adjacent infras…
59 …* It emits ICMRv6 ND Router Advertisement (RA) messages on AIL to advertise on-link and route pref…
60 …d RA messages from infrastructure and mirrors the discovered prefixes on the Thread Network Data to
61 * ensure devices on Thread mesh can reach AIL through the Border Router.
63 …* Routing Manager manages the Off-Mesh Routable (OMR) prefix on the Thread Network data which conf…
64 …* devices with a suitable Off-Mesh Routable IPv6 address. It announces the reachability of this pr…
67 …* Routing Manager also monitors and adds on-link prefix on the infrastructure network. If a router…
69 …* self-configure their own routable unicast IPv6 address, this address can be used by Thread devic…
70 …* Border Router finds no such RA message on AIL, it generates a ULA on-link prefix which it then a…
75 * Represents an iterator to iterate through the Border Router's discovered prefix table.
93 * Represents a discovered router on the infrastructure link.
96 …* determines whether the router is a peer BR (connected to the same Thread mesh network) by compar…
97 …* PIO/RIO prefixes with the entries in the Thread Network Data. While this method is generally eff…
102 otIp6Address mAddress; ///< IPv6 address of the router.
103 …secSinceLastUpdate; ///< Milliseconds since last update (any message rx) from this router.
104 …uint32_t mAge; ///< The router's age in seconds (duration since its f…
105 …bool mManagedAddressConfigFlag : 1; ///< The router's Managed Address Config flag (`M` fla…
106 bool mOtherConfigFlag : 1; ///< The router's Other Config flag (`O` flag).
107 bool mSnacRouterFlag : 1; ///< The router's SNAC Router flag (`S` flag).
108 bool mIsLocalDevice : 1; ///< This router is the local device (this BR).
109 bool mIsReachable : 1; ///< This router is reachable.
110 bool mIsPeerBr : 1; ///< This router is (likely) a peer BR.
116 …* The entries in the discovered table track the Prefix/Route Info Options in the received Router A…
121 …otBorderRoutingRouterEntry mRouter; ///< Information about the router advertising thi…
123 …bool mIsOnLink; ///< Indicates whether the prefix is on-link or r…
127 …uint32_t mPreferredLifetime; ///< Preferred lifetime of the on-link prefix whe…
131 * Represents information about a peer Border Router found in the Network Data.
140 * Represents a group of data of platform-generated RA messages processed.
150 * Represents the state of Border Routing Manager.
165 OT_BORDER_ROUTING_DHCP6_PD_STATE_DISABLED, ///< DHCPv6 PD is disabled on the border router.
168 …OT_BORDER_ROUTING_DHCP6_PD_STATE_IDLE, ///< DHCPv6 PD is idle; Higher-prf prefix published by …
172 * Initializes the Border Routing Manager on given infrastructure interface.
175 …* @note This method can be re-called to change the infrastructure interface, but the Border Routi…
176 * disabled first, and re-enabled after.
183 …* @retval OT_ERROR_NONE Successfully started the Border Routing Manager on given infras…
184 …* @retval OT_ERROR_INVALID_STATE The Border Routing Manager is in a state other than disabled or…
194 * Enables or disables the Border Routing Manager.
196 * @note The Border Routing Manager is disabled by default.
201 * @retval OT_ERROR_INVALID_STATE The Border Routing Manager is not initialized yet.
202 * @retval OT_ERROR_NONE Successfully enabled/disabled the Border Routing Manager.
207 * Gets the current state of Border Routing Manager.
211 * @returns The current state of Border Routing Manager.
216 …* Gets the current preference used when advertising Route Info Options (RIO) in Router Advertiseme…
221 …* - If explicitly set by user by calling `otBorderRoutingSetRouteInfoOptionPreference()`, the give…
223 …* - Otherwise, it is determined based on device's current role: Medium preference when in router/l…
231 * Explicitly sets the preference to use when advertising Route Info Options (RIO) in Router
246 * in router/leader role and low preference when in child role.
253 * Sets additional options to append at the end of emitted Router Advertisement (RA) messages.
272 …* - If explicitly set by user by calling `otBorderRoutingSetRoutePreference()`, the given preferen…
273 …* - Otherwise, it is determined automatically by `RoutingManager` based on the device's role and l…
296 * link quality (to the parent when acting as end-device).
303 * Gets the local Off-Mesh-Routable (OMR) Prefix, for example `fdfc:1ff5:1512:5622::/64`.
305 * An OMR Prefix is a randomly generated 64-bit prefix that's published in the
306 * Thread network if there isn't already an OMR prefix. This prefix can be reached
307 * from the local Wi-Fi or Ethernet network.
309 * Note: When DHCPv6 PD is enabled, the border router may publish the prefix from
315 * @retval OT_ERROR_INVALID_STATE The Border Routing Manager is not initialized yet.
323 * Gets the DHCPv6 Prefix Delegation (PD) provided off-mesh-routable (OMR) prefix.
333 * @retval OT_ERROR_INVALID_STATE The Border Routing Manager is not initialized yet.
350 * @retval OT_ERROR_INVALID_STATE The Border Routing Manager is not initialized yet.
356 * Gets the currently favored Off-Mesh-Routable (OMR) Prefix.
364 * @retval OT_ERROR_INVALID_STATE The Border Routing Manager is not running yet.
370 * Gets the local On-Link Prefix for the adjacent infrastructure link.
372 …* The local On-Link Prefix is a 64-bit prefix that's advertised on the infrastructure link if ther…
373 * usable on-link prefix being advertised on the link.
378 * @retval OT_ERROR_INVALID_STATE The Border Routing Manager is not initialized yet.
379 * @retval OT_ERROR_NONE Successfully retrieved the local on-link prefix.
384 * Gets the currently favored On-Link Prefix.
386 …* The favored prefix is either a discovered on-link prefix on the infrastructure link or the local…
391 * @retval OT_ERROR_INVALID_STATE The Border Routing Manager is not initialized yet.
392 * @retval OT_ERROR_NONE Successfully retrieved the favored on-link prefix.
397 * Gets the local NAT64 Prefix of the Border Router.
399 * NAT64 Prefix might not be advertised in the Thread network.
406 * @retval OT_ERROR_INVALID_STATE The Border Routing Manager is not initialized yet.
420 * @retval OT_ERROR_INVALID_STATE The Border Routing Manager is not initialized yet.
443 * Iterates over the entries in the Border Router's discovered prefix table.
445 …* Prefix entries associated with the same discovered router on an infrastructure link are guarante…
446 * together (retrieved back-to-back).
460 * Iterates over the discovered router entries on the infrastructure link.
466 * @retval OT_ERROR_NONE Iterated to the next router, @p aEntry and @p aIterator are updated.
467 * @retval OT_ERROR_NOT_FOUND No more router entries.
478 …* Peer BRs are other devices within the Thread mesh that provide external IP connectivity. A devic…
482 * - It has added at least one external route entry.
483 * - It has added at least one prefix entry with both the default-route and on-mesh flags set.
484 * - It has added at least one domain prefix (with both the domain and on-mesh flags set).
504 …* Peer BRs are other devices within the Thread mesh that provide external IP connectivity. A devic…
508 * - It has added at least one external route entry.
509 * - It has added at least one prefix entry with both the default-route and on-mesh flags set.
510 * - It has added at least one domain prefix (with both the domain and on-mesh flags set).
545 …* When the state of a DHCPv6 Prefix Delegation (PD) on the Thread interface changes, this callback…
554 * Sets the callback whenever the DHCPv6 PD state changes on the Thread interface.
567 * Sets the local on-link prefix.
571 …* This is intended for testing only and using it will make the BR non-compliant with the Thread Sp…
573 * @param[in] aPrefix The on-link prefix to use.