mirror of
https://github.com/espressif/openthread.git
synced 2026-09-07 01:30:11 +00:00
[routing-manager] add section comments (#10228)
This commit enhances the readability of the `RoutingManager` class definition by adding comments to delineate different sections within the code: Constants, typedefs, enumerations, nested classes and structs, private methods, and variables.
This commit is contained in:
@@ -565,6 +565,9 @@ public:
|
||||
#endif // OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
|
||||
|
||||
private:
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Constants
|
||||
|
||||
static constexpr uint8_t kMaxOnMeshPrefixes = OPENTHREAD_CONFIG_BORDER_ROUTING_MAX_ON_MESH_PREFIXES;
|
||||
|
||||
static constexpr uint8_t kOmrPrefixLength = OT_IP6_PREFIX_BITSIZE; // The length of an OMR prefix. In bits.
|
||||
@@ -605,6 +608,9 @@ private:
|
||||
static_assert(kPolicyEvaluationMaxDelay > kPolicyEvaluationMinDelay,
|
||||
"kPolicyEvaluationMaxDelay must be larger than kPolicyEvaluationMinDelay");
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Typedefs
|
||||
|
||||
using Option = Ip6::Nd::Option;
|
||||
using PrefixInfoOption = Ip6::Nd::PrefixInfoOption;
|
||||
using RouteInfoOption = Ip6::Nd::RouteInfoOption;
|
||||
@@ -614,6 +620,9 @@ private:
|
||||
using NeighborSolicitMessage = Ip6::Nd::NeighborSolicitMessage;
|
||||
using RouterSolicitMessage = Ip6::Nd::RouterSolicitMessage;
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Enumerations
|
||||
|
||||
enum RouterAdvTxMode : uint8_t // Used in `SendRouterAdvertisement()`
|
||||
{
|
||||
kInvalidateAllPrevPrefixes,
|
||||
@@ -628,6 +637,9 @@ private:
|
||||
kToReplyToRs,
|
||||
};
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Nested types
|
||||
|
||||
class LifetimedPrefix
|
||||
{
|
||||
// Represents an IPv6 prefix with its valid lifetime. Used as
|
||||
@@ -666,6 +678,8 @@ private:
|
||||
TimeMilli mLastUpdateTime;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
class OnLinkPrefix : public LifetimedPrefix, public Clearable<OnLinkPrefix>
|
||||
{
|
||||
public:
|
||||
@@ -683,6 +697,8 @@ private:
|
||||
uint32_t mPreferredLifetime;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
class RoutePrefix : public LifetimedPrefix, public Clearable<RoutePrefix>
|
||||
{
|
||||
public:
|
||||
@@ -697,6 +713,8 @@ private:
|
||||
RoutePreference mRoutePreference;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
void HandleDiscoveredPrefixTableChanged(void); // Declare early so we can use in `mSignalTask`
|
||||
void HandleDiscoveredPrefixTableEntryTimer(void) { mDiscoveredPrefixTable.HandleEntryTimer(); }
|
||||
void HandleDiscoveredPrefixTableRouterTimer(void) { mDiscoveredPrefixTable.HandleRouterTimer(); }
|
||||
@@ -749,6 +767,8 @@ private:
|
||||
private:
|
||||
static constexpr uint32_t kFavoredOnLinkPrefixMinPreferredLifetime = 1800; // In sec.
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
template <class Type>
|
||||
struct Entry : public Type,
|
||||
public LinkedListEntry<Entry<Type>>,
|
||||
@@ -766,6 +786,8 @@ private:
|
||||
Entry<Type> *mNext;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
struct Router : public Clearable<Router>
|
||||
{
|
||||
// The timeout (in msec) for router staying in active state
|
||||
@@ -801,6 +823,8 @@ private:
|
||||
bool mStubRouterFlag : 1;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
class Iterator : public PrefixTableIterator
|
||||
{
|
||||
public:
|
||||
@@ -839,6 +863,8 @@ private:
|
||||
void SetType(Type aType) { mData2 = aType; }
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
#if !OPENTHREAD_CONFIG_BORDER_ROUTING_USE_HEAP_ENABLE
|
||||
static constexpr uint16_t kMaxRouters = OPENTHREAD_CONFIG_BORDER_ROUTING_MAX_DISCOVERED_ROUTERS;
|
||||
static constexpr uint16_t kMaxEntries = OPENTHREAD_CONFIG_BORDER_ROUTING_MAX_DISCOVERED_PREFIXES;
|
||||
@@ -858,6 +884,8 @@ private:
|
||||
};
|
||||
#endif
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
void ProcessRaHeader(const RouterAdvert::Header &aRaHeader, Router &aRouter);
|
||||
void ProcessPrefixInfoOption(const PrefixInfoOption &aPio, Router &aRouter);
|
||||
void ProcessRouteInfoOption(const RouteInfoOption &aRio, Router &aRouter);
|
||||
@@ -890,6 +918,8 @@ private:
|
||||
#endif
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
class OmrPrefixManager;
|
||||
|
||||
class OmrPrefix : public Clearable<OmrPrefix>
|
||||
@@ -910,6 +940,8 @@ private:
|
||||
bool mIsDomainPrefix;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
class FavoredOmrPrefix : public OmrPrefix
|
||||
{
|
||||
friend class OmrPrefixManager;
|
||||
@@ -923,6 +955,8 @@ private:
|
||||
bool IsFavoredOver(const NetworkData::OnMeshPrefixConfig &aOmrPrefixConfig) const;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
class OmrPrefixManager : public InstanceLocator
|
||||
{
|
||||
public:
|
||||
@@ -956,6 +990,8 @@ private:
|
||||
bool mDefaultRoute;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
void HandleOnLinkPrefixManagerTimer(void) { mOnLinkPrefixManager.HandleTimer(); }
|
||||
|
||||
class OnLinkPrefixManager : public InstanceLocator
|
||||
@@ -1021,6 +1057,8 @@ private:
|
||||
ExpireTimer mTimer;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
void HandleRioAdvertiserimer(void) { mRioAdvertiser.HandleTimer(); }
|
||||
|
||||
class RioAdvertiser : public InstanceLocator
|
||||
@@ -1077,7 +1115,10 @@ private:
|
||||
bool mUserSetPreference;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
#if OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
|
||||
|
||||
void HandleNat64PrefixManagerTimer(void) { mNat64PrefixManager.HandleTimer(); }
|
||||
|
||||
class Nat64PrefixManager : public InstanceLocator
|
||||
@@ -1121,8 +1162,11 @@ private:
|
||||
RoutePreference mPublishedPreference; // The published prefix preference.
|
||||
Nat64Timer mTimer;
|
||||
};
|
||||
|
||||
#endif // OPENTHREAD_CONFIG_NAT64_BORDER_ROUTING_ENABLE
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
void HandleRoutePublisherTimer(void) { mRoutePublisher.HandleTimer(); }
|
||||
|
||||
class RoutePublisher : public InstanceLocator // Manages the routes that are published in net data
|
||||
@@ -1174,6 +1218,8 @@ private:
|
||||
DelayTimer mTimer;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
struct RaInfo
|
||||
{
|
||||
// Tracks info about emitted RA messages:
|
||||
@@ -1216,6 +1262,8 @@ private:
|
||||
uint16_t mLastHashIndex;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
void HandleRsSenderTimer(void) { mRsSender.HandleTimer(); }
|
||||
|
||||
class RsSender : public InstanceLocator
|
||||
@@ -1252,7 +1300,10 @@ private:
|
||||
TimeMilli mStartTime;
|
||||
};
|
||||
|
||||
//- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
|
||||
#if OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
|
||||
|
||||
void HandlePdPrefixManagerTimer(void) { mPdPrefixManager.HandleTimer(); }
|
||||
|
||||
class PdPrefixManager : public InstanceLocator
|
||||
@@ -1314,6 +1365,9 @@ private:
|
||||
|
||||
#endif // OPENTHREAD_CONFIG_BORDER_ROUTING_DHCP6_PD_ENABLE
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Methods
|
||||
|
||||
void EvaluateState(void);
|
||||
void Start(void);
|
||||
void Stop(void);
|
||||
@@ -1348,6 +1402,9 @@ private:
|
||||
static void LogPrefixInfoOption(const Ip6::Prefix &aPrefix, uint32_t aValidLifetime, uint32_t aPreferredLifetime);
|
||||
static void LogRouteInfoOption(const Ip6::Prefix &aPrefix, uint32_t aLifetime, RoutePreference aPreference);
|
||||
|
||||
//------------------------------------------------------------------------------------------------------------------
|
||||
// Variables
|
||||
|
||||
using RoutingPolicyTimer = TimerMilliIn<RoutingManager, &RoutingManager::EvaluateRoutingPolicy>;
|
||||
using DiscoveredPrefixStaleTimer = TimerMilliIn<RoutingManager, &RoutingManager::HandleDiscoveredPrefixStaleTimer>;
|
||||
|
||||
@@ -1394,7 +1451,8 @@ private:
|
||||
|
||||
#if !OPENTHREAD_CONFIG_BORDER_ROUTING_USE_HEAP_ENABLE
|
||||
|
||||
// Template specializations
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// Template specializations and declarations
|
||||
|
||||
template <>
|
||||
inline RoutingManager::DiscoveredPrefixTable::Entry<RoutingManager::OnLinkPrefix>
|
||||
|
||||
Reference in New Issue
Block a user