ESP-IDF
ot::Ip6::Nd::RouterAdvert
is only used within ESP-IDF.
Symbol previews are coming soon...
Symbols
loading...
Files
loading...
Summary
Syntax
Examples
References
Call Tree
Data Use
Class Tree
Override Tree
Implementations
Instances
Lifecycle
SourceVu
ESP-IDF Framework and Examples
ESP-IDF
ot::Ip6::Nd::RouterAdvert
ot::Ip6::Nd::RouterAdvert class
Defines Router Advertisement components.
Syntax
Show:
Summary
Declaration
from
nd6.hpp:554
class
RouterAdvert
{
public
:
OT_TOOL_PACKED_BEGIN
class
Header
:
public
Equatable
<
Header
>
,
public
Clearable
<
Header
>
{
friend
class
Clearable
<
Header
>
;
public
:
Header
(
void
)
{
SetToDefault
(
)
;
}
bool
IsValid
(
void
)
const
{
return
GetType
(
)
==
Icmp
::
Header
::
kTypeRouterAdvert
;
}
void
SetToDefault
(
void
)
;
void
SetChecksum
(
uint16_t
aChecksum
)
{
mChecksum
=
BigEndian
::
HostSwap16
(
aChecksum
)
;
}
void
SetRouterLifetime
(
uint16_t
aRouterLifetime
)
{
mRouterLifetime
=
BigEndian
::
HostSwap16
(
aRouterLifetime
)
;
}
uint16_t
GetRouterLifetime
(
void
)
const
{
return
BigEndian
::
HostSwap16
(
mRouterLifetime
)
;
}
void
SetDefaultRouterPreference
(
RoutePreference
aPreference
)
;
RoutePreference
GetDefaultRouterPreference
(
void
)
const
;
bool
IsManagedAddressConfigFlagSet
(
void
)
const
{
return
(
mFlags
&
kManagedAddressConfigFlag
)
!=
0
;
}
void
SetManagedAddressConfigFlag
(
void
)
{
mFlags
|=
kManagedAddressConfigFlag
;
}
bool
IsOtherConfigFlagSet
(
void
)
const
{
return
(
mFlags
&
kOtherConfigFlag
)
!=
0
;
}
void
SetOtherConfigFlag
(
void
)
{
mFlags
|=
kOtherConfigFlag
;
}
bool
IsSnacRouterFlagSet
(
void
)
const
{
return
(
mFlags
&
kSnacRouterFlag
)
!=
0
;
}
void
SetSnacRouterFlag
(
void
)
{
mFlags
|=
kSnacRouterFlag
;
}
Icmp
::
Header
::
Type
GetType
(
void
)
const
{
return
static_cast
<
Icmp
::
Header
::
Type
>
(
mType
)
;
}
private
:
static
constexpr
uint8_t
kManagedAddressConfigFlag
=
1
<
<
7
;
static
constexpr
uint8_t
kOtherConfigFlag
=
1
<
<
6
;
static
constexpr
uint8_t
kSnacRouterFlag
=
1
<
<
1
;
static
constexpr
uint8_t
kPreferenceOffset
=
3
;
static
constexpr
uint8_t
kPreferenceMask
=
3
<
<
kPreferenceOffset
;
uint8_t
mType
;
uint8_t
mCode
;
uint16_t
mChecksum
;
uint8_t
mCurHopLimit
;
uint8_t
mFlags
;
uint16_t
mRouterLifetime
;
uint32_t
mReachableTime
;
uint32_t
mRetransTimer
;
}
OT_TOOL_PACKED_END
;
static_assert
(
sizeof
(
Header
)
==
16
,
"Invalid RA `Header`"
)
;
class
RxMessage
{
public
:
explicit
RxMessage
(
const
Icmp6Packet
&
aPacket
)
:
mData
(
aPacket
)
{
}
const
Icmp6Packet
&
GetAsPacket
(
void
)
const
{
return
mData
;
}
bool
IsValid
(
void
)
const
{
return
(
mData
.
GetBytes
(
)
!=
nullptr
)
&&
(
mData
.
GetLength
(
)
>=
sizeof
(
Header
)
)
&&
(
GetHeader
(
)
.
GetType
(
)
==
Icmp
::
Header
::
kTypeRouterAdvert
)
;
}
const
Header
&
GetHeader
(
void
)
const
{
return
*
reinterpret_cast
<
const
Header
*
>
(
mData
.
GetBytes
(
)
)
;
}
bool
ContainsAnyOptions
(
void
)
const
{
return
(
mData
.
GetLength
(
)
>
sizeof
(
Header
)
)
;
}
const
uint8_t
*
GetOptionStart
(
void
)
const
{
return
(
mData
.
GetBytes
(
)
+
sizeof
(
Header
)
)
;
}
uint16_t
GetOptionLength
(
void
)
const
{
return
ContainsAnyOptions
(
)
?
mData
.
GetLength
(
)
-
sizeof
(
Header
)
:
0
;
}
Option
::
Iterator
begin
(
void
)
const
{
return
Option
::
Iterator
(
GetOptionStart
(
)
,
GetDataEnd
(
)
)
;
}
Option
::
Iterator
end
(
void
)
const
{
return
Option
::
Iterator
(
)
;
}
private
:
const
uint8_t
*
GetDataEnd
(
void
)
const
{
return
mData
.
GetBytes
(
)
+
mData
.
GetLength
(
)
;
}
Data
<
kWithUint16Length
>
mData
;
}
;
class
TxMessage
:
public
ot
::
Ip6
::
Nd
::
TxMessage
{
public
:
Error
AppendPrefixInfoOption
(
const
Prefix
&
aPrefix
,
uint32_t
aValidLifetime
,
uint32_t
aPreferredLifetime
)
;
Error
AppendRouteInfoOption
(
const
Prefix
&
aPrefix
,
uint32_t
aRouteLifetime
,
RoutePreference
aPreference
)
;
bool
ContainsAnyOptions
(
void
)
const
{
return
(
mArray
.
GetLength
(
)
>
sizeof
(
Header
)
)
;
}
}
;
RouterAdvert
(
void
)
=
delete
;
}
;
Examples
References
from
examples
Code
Location
Scope
Referrer
class
RouterAdvert
nd6.hpp:554
using
RouterAdvert
=
Ip6
::
Nd
::
RouterAdvert
;
routing_manager.hpp:649
void
RouterAdvert
::
Header
::
SetToDefault
(
void
)
nd6.cpp:188
ot::Ip6::Nd::RouterAdvert::Header::SetToDefault()
RoutePreference
RouterAdvert
::
Header
::
GetDefaultRouterPreference
(
void
)
const
nd6.cpp:199
ot::Ip6::Nd::RouterAdvert::Header::GetDefaultRouterPreference() const
void
RouterAdvert
::
Header
::
SetDefaultRouterPreference
(
RoutePreference
aPreference
)
nd6.cpp:204
ot::Ip6::Nd::RouterAdvert::Header::SetDefaultRouterPreference()
Error
RouterAdvert
::
TxMessage
::
AppendPrefixInfoOption
(
const
Prefix
&
aPrefix
,
nd6.cpp:277
ot::Ip6::Nd::RouterAdvert::TxMessage::AppendPrefixInfoOption()
Error
RouterAdvert
::
TxMessage
::
AppendRouteInfoOption
(
const
Prefix
&
aPrefix
,
nd6.cpp:298
ot::Ip6::Nd::RouterAdvert::TxMessage::AppendRouteInfoOption()
friend
class
RouterAdvert
;
nd6.hpp:76
RouterAdvert
::
TxMessage
raMsg
;
routing_manager.cpp:573
ot::BorderRouter::RoutingManager::SendRouterAdvertisement()
RouterAdvert
::
Header
header
;
routing_manager.cpp:574
ot::BorderRouter::RoutingManager::SendRouterAdvertisement()
RouterAdvert
::
RxMessage
raMsg
(
aPacket
)
;
routing_manager.cpp:732
ot::BorderRouter::RoutingManager::HandleRouterAdvertisement()
void
RoutingManager
::
LogRaHeader
(
const
RouterAdvert
::
Header
&
aRaHeader
)
routing_manager.cpp:867
ot::BorderRouter::RoutingManager::LogRaHeader()
void
RoutingManager
::
RoutePrefix
::
SetFrom
(
const
RouterAdvert
::
Header
&
aRaHeader
)
routing_manager.cpp:1026
ot::BorderRouter::RoutingManager::RoutePrefix::SetFrom()
void
RoutingManager
::
RxRaTracker
::
ProcessRouterAdvertMessage
(
const
RouterAdvert
::
RxMessage
&
aRaMessage
,
routing_manager.cpp:1160
ot::BorderRouter::RoutingManager::RxRaTracker::ProcessRouterAdvertMessage()
void
RoutingManager
::
RxRaTracker
::
ProcessRaHeader
(
const
RouterAdvert
::
Header
&
aRaHeader
,
routing_manager.cpp:1225
ot::BorderRouter::RoutingManager::RxRaTracker::ProcessRaHeader()
RouterAdvert
::
Header
oldHeader
=
mLocalRaHeader
;
routing_manager.cpp:1244
ot::BorderRouter::RoutingManager::RxRaTracker::ProcessRaHeader()
void
RoutingManager
::
RxRaTracker
::
SetHeaderFlagsOn
(
RouterAdvert
::
Header
&
aHeader
)
const
routing_manager.cpp:1837
ot::BorderRouter::RoutingManager::RxRaTracker::SetHeaderFlagsOn() const
Error
RoutingManager
::
OnLinkPrefixManager
::
AppendAsPiosTo
(
RouterAdvert
::
TxMessage
&
aRaMessage
)
routing_manager.cpp:2784
ot::BorderRouter::RoutingManager::OnLinkPrefixManager::AppendAsPiosTo()
Error
RoutingManager
::
OnLinkPrefixManager
::
AppendCurPrefix
(
RouterAdvert
::
TxMessage
&
aRaMessage
)
routing_manager.cpp:2795
ot::BorderRouter::RoutingManager::OnLinkPrefixManager::AppendCurPrefix()
Error
RoutingManager
::
OnLinkPrefixManager
::
AppendOldPrefixes
(
RouterAdvert
::
TxMessage
&
aRaMessage
)
routing_manager.cpp:2834
ot::BorderRouter::RoutingManager::OnLinkPrefixManager::AppendOldPrefixes()
Error
RoutingManager
::
RioAdvertiser
::
InvalidatPrevRios
(
RouterAdvert
::
TxMessage
&
aRaMessage
)
routing_manager.cpp:3087
ot::BorderRouter::RoutingManager::RioAdvertiser::InvalidatPrevRios()
Error
RoutingManager
::
RioAdvertiser
::
AppendRios
(
RouterAdvert
::
TxMessage
&
aRaMessage
)
routing_manager.cpp:3109
ot::BorderRouter::RoutingManager::RioAdvertiser::AppendRios()
RouterAdvert
::
TxMessage
&
aRaMessage
)
routing_manager.cpp:3243
ot::BorderRouter::RoutingManager::RioAdvertiser::AppendRio()
bool
RoutingManager
::
TxRaInfo
::
IsRaFromManager
(
const
RouterAdvert
::
RxMessage
&
aRaMessage
)
const
routing_manager.cpp:3749
ot::BorderRouter::RoutingManager::TxRaInfo::IsRaFromManager() const
void
RoutingManager
::
TxRaInfo
::
CalculateHash
(
const
RouterAdvert
::
RxMessage
&
aRaMessage
,
Hash
&
aHash
)
routing_manager.cpp:3784
ot::BorderRouter::RoutingManager::TxRaInfo::CalculateHash()
RouterAdvert
::
Header
header
;
routing_manager.cpp:3786
ot::BorderRouter::RoutingManager::TxRaInfo::CalculateHash()
using
RouterAdvert
=
Ip6
::
Nd
::
RouterAdvert
;
routing_manager.hpp:649
ot::BorderRouter::RoutingManager
ot::BorderRouter::RoutingManager::RouterAdvert
void
SetFrom
(
const
RouterAdvert
::
Header
&
aRaHeader
)
;
routing_manager.hpp:750
void
ProcessRouterAdvertMessage
(
const
RouterAdvert
::
RxMessage
&
aRaMessage
,
routing_manager.hpp:834
void
SetHeaderFlagsOn
(
RouterAdvert
::
Header
&
aHeader
)
const
;
routing_manager.hpp:845
const
RouterAdvert
::
Header
&
GetLocalRaHeaderToMirror
(
void
)
const
{
return
mLocalRaHeader
;
}
routing_manager.hpp:847
ot::BorderRouter::RoutingManager::RxRaTracker::GetLocalRaHeaderToMirror() const
void
ProcessRaHeader
(
const
RouterAdvert
::
Header
&
aRaHeader
,
Router
&
aRouter
,
RouterAdvOrigin
aRaOrigin
)
;
routing_manager.hpp:1039
RouterAdvert
::
Header
mLocalRaHeader
;
routing_manager.hpp:1064
Error
AppendAsPiosTo
(
RouterAdvert
::
TxMessage
&
aRaMessage
)
;
routing_manager.hpp:1167
Error
AppendCurPrefix
(
RouterAdvert
::
TxMessage
&
aRaMessage
)
;
routing_manager.hpp:1199
Error
AppendOldPrefixes
(
RouterAdvert
::
TxMessage
&
aRaMessage
)
;
routing_manager.hpp:1200
Error
AppendRios
(
RouterAdvert
::
TxMessage
&
aRaMessage
)
;
routing_manager.hpp:1234
Error
InvalidatPrevRios
(
RouterAdvert
::
TxMessage
&
aRaMessage
)
;
routing_manager.hpp:1235
RouterAdvert
::
TxMessage
&
aRaMessage
)
;
routing_manager.hpp:1267
bool
IsRaFromManager
(
const
RouterAdvert
::
RxMessage
&
aRaMessage
)
const
;
routing_manager.hpp:1403
static
void
CalculateHash
(
const
RouterAdvert
::
RxMessage
&
aRaMessage
,
Hash
&
aHash
)
;
routing_manager.hpp:1404
static
void
LogRaHeader
(
const
RouterAdvert
::
Header
&
aRaHeader
)
;
routing_manager.hpp:1552
Call Tree
from
examples
All items filtered out
All items filtered out
Data Use
from
examples
All items filtered out
All items filtered out
Class Tree
from
examples
All items filtered out
All items filtered out
Override Tree
from
examples
All items filtered out
All items filtered out
Implementations
from
examples
All items filtered out
All items filtered out
Instances
from
examples
Instance
Scope
Location
Project
ot::BorderRouter::RoutingManager::RouterAdvert
ot::BorderRouter::RoutingManager
routing_manager.hpp:649
Lifecycle
from
examples
All items filtered out
All items filtered out