diff --git a/src/core/meshcop/border_agent.cpp b/src/core/meshcop/border_agent.cpp index 73c6c0d8d..908175167 100644 --- a/src/core/meshcop/border_agent.cpp +++ b/src/core/meshcop/border_agent.cpp @@ -300,7 +300,7 @@ template <> void BorderAgent::HandleTmf(Coap::Message &aMessage, co VerifyOrExit(udpEncapHeader.GetSourcePort() > 0 && udpEncapHeader.GetDestinationPort() > 0, error = kErrorDrop); - VerifyOrExit((message = Get().NewMessage(0)) != nullptr, error = kErrorNoBufs); + VerifyOrExit((message = Get().NewMessage()) != nullptr, error = kErrorNoBufs); SuccessOrExit(error = message->AppendBytesFromMessage(aMessage, offset, length)); messageInfo.SetSockPort(udpEncapHeader.GetSourcePort()); diff --git a/src/core/meshcop/dtls.cpp b/src/core/meshcop/dtls.cpp index 88d63a954..28337a62e 100644 --- a/src/core/meshcop/dtls.cpp +++ b/src/core/meshcop/dtls.cpp @@ -975,7 +975,7 @@ Error Dtls::HandleDtlsSend(const uint8_t *aBuf, uint16_t aLength, Message::SubTy Error error = kErrorNone; ot::Message *message = nullptr; - VerifyOrExit((message = mSocket.NewMessage(0)) != nullptr, error = kErrorNoBufs); + VerifyOrExit((message = mSocket.NewMessage()) != nullptr, error = kErrorNoBufs); message->SetSubType(aMessageSubType); message->SetLinkSecurityEnabled(mLayerTwoSecurity); diff --git a/src/core/net/dhcp6_client.cpp b/src/core/net/dhcp6_client.cpp index ff3f5a366..db671357a 100644 --- a/src/core/net/dhcp6_client.cpp +++ b/src/core/net/dhcp6_client.cpp @@ -263,7 +263,7 @@ void Client::Solicit(uint16_t aRloc16) Message *message; Ip6::MessageInfo messageInfo; - VerifyOrExit((message = mSocket.NewMessage(0)) != nullptr, error = kErrorNoBufs); + VerifyOrExit((message = mSocket.NewMessage()) != nullptr, error = kErrorNoBufs); SuccessOrExit(error = AppendHeader(*message)); SuccessOrExit(error = AppendElapsedTime(*message)); diff --git a/src/core/net/dhcp6_server.cpp b/src/core/net/dhcp6_server.cpp index 431833bcf..826d5fefc 100644 --- a/src/core/net/dhcp6_server.cpp +++ b/src/core/net/dhcp6_server.cpp @@ -339,7 +339,7 @@ Error Server::SendReply(const Ip6::Address &aDst, Ip6::MessageInfo messageInfo; Message *message; - VerifyOrExit((message = mSocket.NewMessage(0)) != nullptr, error = kErrorNoBufs); + VerifyOrExit((message = mSocket.NewMessage()) != nullptr, error = kErrorNoBufs); SuccessOrExit(error = AppendHeader(*message, aTransactionId)); SuccessOrExit(error = AppendServerIdentifier(*message)); SuccessOrExit(error = AppendClientIdentifier(*message, aClientId)); diff --git a/src/core/net/dns_client.cpp b/src/core/net/dns_client.cpp index 922863390..3e14fb3ed 100644 --- a/src/core/net/dns_client.cpp +++ b/src/core/net/dns_client.cpp @@ -1054,7 +1054,7 @@ Error Client::SendQuery(Query &aQuery, QueryInfo &aInfo, bool aUpdateTimer) header.SetQuestionCount(kQuestionCount[aInfo.mQueryType]); - message = mSocket.NewMessage(0); + message = mSocket.NewMessage(); VerifyOrExit(message != nullptr, error = kErrorNoBufs); SuccessOrExit(error = message->Append(header)); @@ -1658,7 +1658,7 @@ void Client::HandleTcpReceiveAvailable(otTcpEndpoint *aEndpoint, SuccessOrExit(mEndpoint.ReceiveByReference(data)); VerifyOrExit(data != nullptr); - message = mSocket.NewMessage(0); + message = mSocket.NewMessage(); VerifyOrExit(message != nullptr); while (aBytesAvailable > totalRead) diff --git a/src/core/net/dnssd_server.cpp b/src/core/net/dnssd_server.cpp index ad5b933b4..8f93096ae 100644 --- a/src/core/net/dnssd_server.cpp +++ b/src/core/net/dnssd_server.cpp @@ -179,7 +179,7 @@ void Server::ProcessQuery(const Header &aRequestHeader, Message &aRequestMessage } #endif - responseMessage = mSocket.NewMessage(0); + responseMessage = mSocket.NewMessage(); VerifyOrExit(responseMessage != nullptr, error = kErrorNoBufs); // Allocate space for DNS header diff --git a/src/core/net/icmp6.cpp b/src/core/net/icmp6.cpp index 5b5e648f3..2f195b0ab 100644 --- a/src/core/net/icmp6.cpp +++ b/src/core/net/icmp6.cpp @@ -54,7 +54,7 @@ Icmp::Icmp(Instance &aInstance) { } -Message *Icmp::NewMessage(uint16_t aReserved) { return Get().NewMessage(sizeof(Header) + aReserved); } +Message *Icmp::NewMessage(void) { return Get().NewMessage(sizeof(Header)); } Error Icmp::RegisterHandler(Handler &aHandler) { return mHandlers.Add(aHandler); } diff --git a/src/core/net/icmp6.hpp b/src/core/net/icmp6.hpp index 2d073c538..b054b5692 100644 --- a/src/core/net/icmp6.hpp +++ b/src/core/net/icmp6.hpp @@ -242,12 +242,10 @@ public: /** * This method returns a new ICMP message with sufficient header space reserved. * - * @param[in] aReserved The number of header bytes to reserve after the ICMP header. - * * @returns A pointer to the message or `nullptr` if no buffers are available. * */ - Message *NewMessage(uint16_t aReserved); + Message *NewMessage(void); /** * This method registers ICMPv6 handler. diff --git a/src/core/net/ip6.cpp b/src/core/net/ip6.cpp index d3f1bb99a..b6693d2af 100644 --- a/src/core/net/ip6.cpp +++ b/src/core/net/ip6.cpp @@ -81,6 +81,10 @@ Ip6::Ip6(Instance &aInstance) #endif } +Message *Ip6::NewMessage(void) { return NewMessage(0); } + +Message *Ip6::NewMessage(uint16_t aReserved) { return NewMessage(aReserved, Message::Settings::GetDefault()); } + Message *Ip6::NewMessage(uint16_t aReserved, const Message::Settings &aSettings) { return Get().Allocate( @@ -594,7 +598,7 @@ Error Ip6::FragmentDatagram(Message &aMessage, uint8_t aIpProto) offset = fragmentCnt * FragmentHeader::BytesToFragmentOffset(maxPayloadFragment); fragmentHeader.SetOffset(offset); - VerifyOrExit((fragment = NewMessage(0)) != nullptr, error = kErrorNoBufs); + VerifyOrExit((fragment = NewMessage()) != nullptr, error = kErrorNoBufs); IgnoreError(fragment->SetPriority(aMessage.GetPriority())); SuccessOrExit(error = fragment->SetLength(aMessage.GetOffset() + sizeof(fragmentHeader) + payloadFragment)); @@ -677,7 +681,7 @@ Error Ip6::HandleFragment(Message &aMessage, MessageOrigin aOrigin, MessageInfo if (message == nullptr) { LogDebg("start reassembly"); - VerifyOrExit((message = NewMessage(0)) != nullptr, error = kErrorNoBufs); + VerifyOrExit((message = NewMessage()) != nullptr, error = kErrorNoBufs); mReassemblyList.Enqueue(*message); message->SetTimestampToNow(); diff --git a/src/core/net/ip6.hpp b/src/core/net/ip6.hpp index 8bfd38082..aafb09ce8 100644 --- a/src/core/net/ip6.hpp +++ b/src/core/net/ip6.hpp @@ -135,6 +135,26 @@ public: */ explicit Ip6(Instance &aInstance); + /** + * This method allocates a new message buffer from the buffer pool with default settings (link security + * enabled and `kPriorityMedium`). + * + * @returns A pointer to the message or `nullptr` if insufficient message buffers are available. + * + */ + Message *NewMessage(void); + + /** + * This method allocates a new message buffer from the buffer pool with default settings (link security + * enabled and `kPriorityMedium`). + * + * @param[in] aReserved The number of header bytes to reserve following the IPv6 header. + * + * @returns A pointer to the message or `nullptr` if insufficient message buffers are available. + * + */ + Message *NewMessage(uint16_t aReserved); + /** * This method allocates a new message buffer from the buffer pool. * @@ -144,7 +164,7 @@ public: * @returns A pointer to the message or `nullptr` if insufficient message buffers are available. * */ - Message *NewMessage(uint16_t aReserved, const Message::Settings &aSettings = Message::Settings::GetDefault()); + Message *NewMessage(uint16_t aReserved, const Message::Settings &aSettings); /** * This method allocates a new message buffer from the buffer pool and writes the IPv6 datagram to the message. diff --git a/src/core/net/srp_client.cpp b/src/core/net/srp_client.cpp index 4a6bee3ab..d9647319d 100644 --- a/src/core/net/srp_client.cpp +++ b/src/core/net/srp_client.cpp @@ -744,7 +744,7 @@ void Client::SendUpdate(void) }; Error error = kErrorNone; - Message *message = mSocket.NewMessage(0); + Message *message = mSocket.NewMessage(); uint32_t length; VerifyOrExit(message != nullptr, error = kErrorNoBufs); diff --git a/src/core/net/srp_server.cpp b/src/core/net/srp_server.cpp index 224d77628..7125238fa 100644 --- a/src/core/net/srp_server.cpp +++ b/src/core/net/srp_server.cpp @@ -1202,7 +1202,7 @@ Error Server::VerifySignature(const Dns::Ecdsa256KeyRecord &aKeyRecord, // The uncompressed (canonical) form of the signer name should be used for signature // verification. See https://tools.ietf.org/html/rfc2931#section-3.1 for details. - signerNameMessage = Get().NewMessage(0); + signerNameMessage = Get().NewMessage(); VerifyOrExit(signerNameMessage != nullptr, error = kErrorNoBufs); SuccessOrExit(error = Dns::Name::AppendName(aSignerName, *signerNameMessage)); sha256.Update(*signerNameMessage, signerNameMessage->GetOffset(), signerNameMessage->GetLength()); @@ -1399,7 +1399,7 @@ void Server::SendResponse(const Dns::UpdateHeader &aHeader, Message *response = nullptr; Dns::UpdateHeader header; - response = GetSocket().NewMessage(0); + response = GetSocket().NewMessage(); VerifyOrExit(response != nullptr, error = kErrorNoBufs); header.SetMessageId(aHeader.GetMessageId()); @@ -1442,7 +1442,7 @@ void Server::SendResponse(const Dns::UpdateHeader &aHeader, Dns::LeaseOption leaseOption; uint16_t optionSize; - response = GetSocket().NewMessage(0); + response = GetSocket().NewMessage(); VerifyOrExit(response != nullptr, error = kErrorNoBufs); header.SetMessageId(aHeader.GetMessageId()); diff --git a/src/core/net/udp6.cpp b/src/core/net/udp6.cpp index 9e2adaaae..3ddda61cd 100644 --- a/src/core/net/udp6.cpp +++ b/src/core/net/udp6.cpp @@ -77,6 +77,10 @@ Udp::Socket::Socket(Instance &aInstance) Clear(); } +Message *Udp::Socket::NewMessage(void) { return NewMessage(0); } + +Message *Udp::Socket::NewMessage(uint16_t aReserved) { return NewMessage(aReserved, Message::Settings::GetDefault()); } + Message *Udp::Socket::NewMessage(uint16_t aReserved, const Message::Settings &aSettings) { return Get().NewMessage(aReserved, aSettings); @@ -414,6 +418,10 @@ uint16_t Udp::GetEphemeralPort(void) return mEphemeralPort; } +Message *Udp::NewMessage(void) { return NewMessage(0); } + +Message *Udp::NewMessage(uint16_t aReserved) { return NewMessage(aReserved, Message::Settings::GetDefault()); } + Message *Udp::NewMessage(uint16_t aReserved, const Message::Settings &aSettings) { return Get().NewMessage(sizeof(Header) + aReserved, aSettings); diff --git a/src/core/net/udp6.hpp b/src/core/net/udp6.hpp index 911a026a5..6648f0072 100644 --- a/src/core/net/udp6.hpp +++ b/src/core/net/udp6.hpp @@ -161,6 +161,24 @@ public: */ explicit Socket(Instance &aInstance); + /** + * This method returns a new UDP message with default settings (link security enabled and `kPriorityNormal`) + * + * @returns A pointer to the message or `nullptr` if no buffers are available. + * + */ + Message *NewMessage(void); + + /** + * This method returns a new UDP message with default settings (link security enabled and `kPriorityNormal`) + * + * @param[in] aReserved The number of header bytes to reserve after the UDP header. + * + * @returns A pointer to the message or `nullptr` if no buffers are available. + * + */ + Message *NewMessage(uint16_t aReserved); + /** * This method returns a new UDP message with sufficient header space reserved. * @@ -170,7 +188,7 @@ public: * @returns A pointer to the message or `nullptr` if no buffers are available. * */ - Message *NewMessage(uint16_t aReserved, const Message::Settings &aSettings = Message::Settings::GetDefault()); + Message *NewMessage(uint16_t aReserved, const Message::Settings &aSettings); /** * This method opens the UDP socket. @@ -533,6 +551,24 @@ public: */ uint16_t GetEphemeralPort(void); + /** + * This method returns a new UDP message with default settings (link security enabled and `kPriorityNormal`) + * + * @returns A pointer to the message or `nullptr` if no buffers are available. + * + */ + Message *NewMessage(void); + + /** + * This method returns a new UDP message with default settings (link security enabled and `kPriorityNormal`) + * + * @param[in] aReserved The number of header bytes to reserve after the UDP header. + * + * @returns A pointer to the message or `nullptr` if no buffers are available. + * + */ + Message *NewMessage(uint16_t aReserved); + /** * This method returns a new UDP message with sufficient header space reserved. * @@ -542,7 +578,7 @@ public: * @returns A pointer to the message or `nullptr` if no buffers are available. * */ - Message *NewMessage(uint16_t aReserved, const Message::Settings &aSettings = Message::Settings::GetDefault()); + Message *NewMessage(uint16_t aReserved, const Message::Settings &aSettings); /** * This method sends an IPv6 datagram. diff --git a/src/core/utils/ping_sender.cpp b/src/core/utils/ping_sender.cpp index 158a75447..d1565ef78 100644 --- a/src/core/utils/ping_sender.cpp +++ b/src/core/utils/ping_sender.cpp @@ -135,7 +135,7 @@ void PingSender::SendPing(void) messageInfo.mHopLimit = mConfig.mHopLimit; messageInfo.mAllowZeroHopLimit = mConfig.mAllowZeroHopLimit; - message = Get().NewMessage(0); + message = Get().NewMessage(); VerifyOrExit(message != nullptr); SuccessOrExit(message->Append(HostSwap32(now.GetValue())));