mirror of
https://github.com/espressif/openthread.git
synced 2026-08-23 10:49:51 +00:00
[ip6] allow hop limit 0 (#3077)
This commit is contained in:
@@ -138,7 +138,7 @@ otError Ip6::AddTunneledMplOption(Message &aMessage, Header &aHeader, MessageInf
|
||||
messageInfo.GetPeerAddr().mFields.m16[7] = HostSwap16(0x00fc);
|
||||
|
||||
tunnelHeader.Init();
|
||||
tunnelHeader.SetHopLimit(static_cast<uint8_t>(kDefaultHopLimit));
|
||||
tunnelHeader.SetHopLimit(kDefaultHopLimit);
|
||||
tunnelHeader.SetPayloadLength(aHeader.GetPayloadLength() + sizeof(tunnelHeader));
|
||||
tunnelHeader.SetDestination(messageInfo.GetPeerAddr());
|
||||
tunnelHeader.SetNextHeader(kProtoIp6);
|
||||
@@ -361,7 +361,7 @@ otError Ip6::SendDatagram(Message &aMessage, MessageInfo &aMessageInfo, IpProto
|
||||
header.Init();
|
||||
header.SetPayloadLength(payloadLength);
|
||||
header.SetNextHeader(aIpProto);
|
||||
header.SetHopLimit(aMessageInfo.mHopLimit ? aMessageInfo.mHopLimit : static_cast<uint8_t>(kDefaultHopLimit));
|
||||
header.SetHopLimit(aMessageInfo.mHopLimit);
|
||||
|
||||
if (aMessageInfo.GetSockAddr().IsUnspecified() || aMessageInfo.GetSockAddr().IsMulticast())
|
||||
{
|
||||
|
||||
@@ -103,8 +103,8 @@ class Ip6 : public InstanceLocator
|
||||
public:
|
||||
enum
|
||||
{
|
||||
kDefaultHopLimit = 64,
|
||||
kMaxDatagramLength = 1280,
|
||||
kDefaultHopLimit = OPENTHREAD_CONFIG_IPV6_DEFAULT_HOP_LIMIT,
|
||||
kMaxDatagramLength = OPENTHREAD_CONFIG_IPV6_DEFAULT_MAX_DATAGRAM,
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
+11
-1
@@ -59,7 +59,11 @@ public:
|
||||
* This constructor initializes the object.
|
||||
*
|
||||
*/
|
||||
MessageInfo(void) { memset(this, 0, sizeof(*this)); }
|
||||
MessageInfo(void)
|
||||
{
|
||||
memset(this, 0, sizeof(*this));
|
||||
mHopLimit = kDefaultHopLimit;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method returns a reference to the local socket address.
|
||||
@@ -180,6 +184,12 @@ public:
|
||||
*
|
||||
*/
|
||||
void SetLinkInfo(const void *aLinkInfo) { mLinkInfo = aLinkInfo; }
|
||||
|
||||
private:
|
||||
enum
|
||||
{
|
||||
kDefaultHopLimit = OPENTHREAD_CONFIG_IPV6_DEFAULT_HOP_LIMIT,
|
||||
};
|
||||
};
|
||||
|
||||
/**
|
||||
|
||||
@@ -1830,4 +1830,24 @@
|
||||
#ifndef OPENTHREAD_CONFIG_DEFAULT_SED_DATAGRAM_COUNT
|
||||
#define OPENTHREAD_CONFIG_DEFAULT_SED_DATAGRAM_COUNT 1
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @def OPENTHREAD_CONFIG_IPV6_DEFAULT_HOP_LIMIT
|
||||
*
|
||||
* This setting configures the default hop limit of IPv6.
|
||||
*
|
||||
*/
|
||||
#ifndef OPENTHREAD_CONFIG_IPV6_DEFAULT_HOP_LIMIT
|
||||
#define OPENTHREAD_CONFIG_IPV6_DEFAULT_HOP_LIMIT 64
|
||||
#endif
|
||||
|
||||
/**
|
||||
* @def OPENTHREAD_CONFIG_IPV6_DEFAULT_MAX_DATAGRAM
|
||||
*
|
||||
* This setting configures the max datagram length of IPv6.
|
||||
*
|
||||
*/
|
||||
#ifndef OPENTHREAD_CONFIG_IPV6_DEFAULT_MAX_DATAGRAM
|
||||
#define OPENTHREAD_CONFIG_IPV6_DEFAULT_MAX_DATAGRAM 1280
|
||||
#endif
|
||||
#endif // OPENTHREAD_CORE_DEFAULT_CONFIG_H_
|
||||
|
||||
Reference in New Issue
Block a user