Only enable IPv6 forwarding for Router and Leader roles. (#390)

This commit is contained in:
Jonathan Hui
2016-08-16 19:10:09 -07:00
committed by GitHub
parent 1144982a06
commit 5dbfe2af46
4 changed files with 26 additions and 0 deletions
+12
View File
@@ -49,6 +49,7 @@ namespace Ip6 {
static otDEFINE_ALIGNED_VAR(sMplBuf, sizeof(Mpl), uint64_t);
static Mpl *sMpl;
static bool sForwardingEnabled;
static otReceiveIp6DatagramCallback sReceiveIp6DatagramCallback = NULL;
@@ -63,6 +64,12 @@ Message *Ip6::NewMessage(uint16_t reserved)
void Ip6::Init(void)
{
sMpl = new(&sMplBuf) Mpl;
sForwardingEnabled = false;
}
void Ip6::SetForwardingEnabled(bool aEnable)
{
sForwardingEnabled = aEnable;
}
uint16_t Ip6::UpdateChecksum(uint16_t checksum, uint16_t val)
@@ -405,6 +412,11 @@ ThreadError Ip6::HandleDatagram(Message &message, Netif *netif, int8_t interface
}
}
if (!sForwardingEnabled && netif != NULL)
{
forward = false;
}
message.SetOffset(sizeof(header));
// process IPv6 Extension Headers