mirror of
https://github.com/espressif/openthread.git
synced 2026-08-24 03:09:52 +00:00
[tcp] make IPv6 header available to TCP segment processing routine (#6790)
This commit is contained in:
@@ -937,15 +937,20 @@ exit:
|
||||
return error;
|
||||
}
|
||||
|
||||
Error Ip6::HandlePayload(Message & aMessage,
|
||||
Error Ip6::HandlePayload(Header & aIp6Header,
|
||||
Message & aMessage,
|
||||
MessageInfo & aMessageInfo,
|
||||
uint8_t aIpProto,
|
||||
Message::Ownership aMessageOwnership)
|
||||
{
|
||||
#if !OPENTHREAD_CONFIG_TCP_ENABLE
|
||||
OT_UNUSED_VARIABLE(aIp6Header);
|
||||
#endif
|
||||
|
||||
Error error = kErrorNone;
|
||||
Message *message = (aMessageOwnership == Message::kTakeCustody) ? &aMessage : nullptr;
|
||||
|
||||
VerifyOrExit(aIpProto == kProtoUdp || aIpProto == kProtoIcmp6);
|
||||
VerifyOrExit(aIpProto == kProtoTcp || aIpProto == kProtoUdp || aIpProto == kProtoIcmp6);
|
||||
|
||||
if (aMessageOwnership == Message::kCopyToUse)
|
||||
{
|
||||
@@ -956,7 +961,7 @@ Error Ip6::HandlePayload(Message & aMessage,
|
||||
{
|
||||
#if OPENTHREAD_CONFIG_TCP_ENABLE
|
||||
case kProtoTcp:
|
||||
error = mTcp.ProcessReceivedSegment(*message, aMessageInfo);
|
||||
error = mTcp.HandleMessage(aIp6Header, *message, aMessageInfo);
|
||||
if (error == kErrorDrop)
|
||||
{
|
||||
otLogNoteIp6("Error TCP Checksum");
|
||||
@@ -1233,7 +1238,7 @@ start:
|
||||
forwardHost = false;
|
||||
}
|
||||
|
||||
error = HandlePayload(aMessage, messageInfo, nextHeader,
|
||||
error = HandlePayload(header, aMessage, messageInfo, nextHeader,
|
||||
(forwardThread || forwardHost ? Message::kCopyToUse : Message::kTakeCustody));
|
||||
shouldFreeMessage = forwardThread || forwardHost;
|
||||
}
|
||||
|
||||
@@ -348,7 +348,8 @@ private:
|
||||
Error InsertMplOption(Message &aMessage, Header &aHeader, MessageInfo &aMessageInfo);
|
||||
Error RemoveMplOption(Message &aMessage);
|
||||
Error HandleOptions(Message &aMessage, Header &aHeader, bool aIsOutbound, bool &aReceive);
|
||||
Error HandlePayload(Message & aMessage,
|
||||
Error HandlePayload(Header & aIp6Header,
|
||||
Message & aMessage,
|
||||
MessageInfo & aMessageInfo,
|
||||
uint8_t aIpProto,
|
||||
Message::Ownership aMessageOwnership);
|
||||
|
||||
@@ -169,8 +169,9 @@ Error Tcp::Listener::Deinitialize(void)
|
||||
return kErrorNotImplemented;
|
||||
}
|
||||
|
||||
Error Tcp::ProcessReceivedSegment(Message &aMessage, MessageInfo &aMessageInfo)
|
||||
Error Tcp::HandleMessage(ot::Ip6::Header &aIp6Header, Message &aMessage, MessageInfo &aMessageInfo)
|
||||
{
|
||||
OT_UNUSED_VARIABLE(aIp6Header);
|
||||
OT_UNUSED_VARIABLE(aMessage);
|
||||
OT_UNUSED_VARIABLE(aMessageInfo);
|
||||
|
||||
|
||||
@@ -516,6 +516,7 @@ public:
|
||||
/**
|
||||
* Processes a received TCP segment.
|
||||
*
|
||||
* @param[in] aIp6Header A reference to a structure containing the segment's IPv6 header.
|
||||
* @param[in] aMessage A reference to the message containing the TCP segment.
|
||||
* @param[in] aMessageInfo A reference to the message info associated with @p aMessage.
|
||||
*
|
||||
@@ -523,7 +524,7 @@ public:
|
||||
* @retval kErrorDrop Dropped the TCP segment due to an invalid checksum.
|
||||
*
|
||||
*/
|
||||
Error ProcessReceivedSegment(Message &aMessage, MessageInfo &aMessageInfo);
|
||||
Error HandleMessage(ot::Ip6::Header &aIp6Header, Message &aMessage, MessageInfo &aMessageInfo);
|
||||
};
|
||||
|
||||
} // namespace Ip6
|
||||
|
||||
Reference in New Issue
Block a user