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
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
Lifecycle
from
examples
All items filtered out
All items filtered out