Namespaces

Enumerations

enum WeaveVendorId
Name Value
kWeaveVendor_Common 0x0000
kWeaveVendor_NestLabs 0x235A
kWeaveVendor_Yale 0xE727
kWeaveVendor_Google 0xE100
kWeaveVendor_NotSpecified 0xFFFF

Weave Vendor Identifiers (16 bits max)

Defined at line 38 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveVendorIdentifiers.hpp

enum WeaveExchangeVersion
Name Value
kWeaveExchangeVersion_V1 1

The Weave Exchange header version.

Defined at line 95 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveExchangeMgr.h

enum WeaveExchangeFlags
Name Value Comments
kWeaveExchangeFlag_Initiator 0x1

Set when current message is sent by the initiator of an exchange

kWeaveExchangeFlag_AckId 0x2

Set when current message is an acknowledgment for a previously received message

kWeaveExchangeFlag_NeedsAck 0x4

Set when current message is requesting an acknowledgment from the recipient.

The Weave Exchange header flag bits.

Defined at line 104 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveExchangeMgr.h

enum WeaveMessageFlags
Name Value Comments
kWeaveMessageFlag_ReuseMessageId 0x00000010

Indicates that the existing message identifier must be reused.

kWeaveMessageFlag_ReuseSourceId 0x00000020

Indicates that the existing source node identifier must be reused.

kWeaveMessageFlag_DelaySend 0x00000040

Indicates that the sending of the message needs to be delayed.

kWeaveMessageFlag_RetainBuffer 0x00000080

Indicates that the message buffer should not be freed after sending.

kWeaveMessageFlag_MessageEncoded 0x00001000

Indicates that the Weave message is already encoded.

kWeaveMessageFlag_DefaultMulticastSourceAddress 0x00002000

Indicates that default IPv6 source address selection should be used when
sending IPv6 multicast messages.

kWeaveMessageFlag_PeerRequestedAck 0x00004000

Indicates that the sender of the message requested an acknowledgment.

kWeaveMessageFlag_DuplicateMessage 0x00008000

Indicates that the message is a duplicate of a previously received message.

kWeaveMessageFlag_PeerGroupMsgIdNotSynchronized 0x00010000

Indicates that the peer's group key message counter is not synchronized.

kWeaveMessageFlag_FromInitiator 0x00020000

Indicates that the source of the message is the initiator of the
Weave exchange.

kWeaveMessageFlag_ViaEphemeralUDPPort 0x00040000

Indicates that message is being sent/received via the local ephemeral UDP port.

kWeaveMessageFlag_MulticastFromLinkLocal kWeaveMessageFlag_DefaultMulticastSourceAddress --
kWeaveMessageFlag_DestNodeId kWeaveHeaderFlag_DestNodeId

NOTE: The bit positions of the following flags correspond to flag fields in an encoded
Weave message header.

kWeaveMessageFlag_SourceNodeId kWeaveHeaderFlag_SourceNodeId --
kWeaveMessageFlag_TunneledData kWeaveHeaderFlag_TunneledData --
kWeaveMessageFlag_MsgCounterSyncReq kWeaveHeaderFlag_MsgCounterSyncReq --

Flags associated with a inbound or outbound Weave message.

The values defined here are for use within the WeaveMessageInfo.Flags field.

Defined at line 128 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveMessageLayer.h

enum WeaveEncryptionType
Name Value Comments
kWeaveEncryptionType_None 0

Message not encrypted.

kWeaveEncryptionType_AES128CTRSHA1 1

Message encrypted using AES-128-CTR
encryption with HMAC-SHA-1 message integrity.

The encryption types for the Weave message.

Defined at line 167 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveMessageLayer.h

enum WeaveMessageVersion
Name Value Comments
kWeaveMessageVersion_Unspecified 0

Unspecified message version.

kWeaveMessageVersion_V1 1

Message header format version V1.

kWeaveMessageVersion_V2 2

Message header format version V2.

The version of the Weave Message format.

Defined at line 184 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveMessageLayer.h

enum WeaveSubnetId
Name Value Comments
kWeaveSubnetId_NotSpecified 0

Reserved as an unspecified or null value.

kWeaveSubnetId_PrimaryWiFi 1

The WiFi radio interface subnet number.

kWeaveSubnetId_ThreadAlarm 2

The Thread alarm radio interface subnet number.

kWeaveSubnetId_WiFiAP 3

The Local Wi-Fi AP interface subnet number.

kWeaveSubnetId_MobileDevice 4

The subnet identifier for all Mobile devices.

kWeaveSubnetId_Service 5

The subnet identifier for the Nest Service endpoints.

kWeaveSubnetId_ThreadMesh 6

The Thread mesh radio interface subnet identifier.

Weave has some reserved subnet numbers for distinguished network interfaces

on typical devices. These numbers are assigned here to symbolic constants.

These subnet numbers are used by Weave to configure IPv6 ULA addresses on

appropriate interfaces.

Defined at line 1080 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveMessageLayer.h

Records

Functions

  • bool FormatWeaveError (char * buf, uint16_t bufSize, int32_t err)
  • bool IsPASEAuthMode (WeaveAuthMode authMode)

    True if the authentication mode is based on the Weave PASE protocol.

    Defined at line 203 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • bool IsCASEAuthMode (WeaveAuthMode authMode)

    True if the authentication mode is based on the Weave CASE protocol.

    Defined at line 206 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • bool IsTAKEAuthMode (WeaveAuthMode authMode)

    True if the authentication mode is based on the Weave TAKE protocol.

    Defined at line 209 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • bool IsPasswordAuthMode (WeaveAuthMode authMode)

    True if the authentication mode is based possession of a shared password.

    Defined at line 212 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • bool IsCertAuthMode (WeaveAuthMode authMode)

    True if the authentication mode is based on possession of a private key associated with a certificate.

    Defined at line 215 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • bool IsGroupKeyAuthMode (WeaveAuthMode authMode)

    True if the authentication mode is based on possession of a shared group key.

    Defined at line 218 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • uint8_t PasswordSourceFromAuthMode (WeaveAuthMode authMode)

    Returns the password source for the given authentication mode.

    Defined at line 224 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • uint8_t CertTypeFromAuthMode (WeaveAuthMode authMode)

    Returns the password source for the given authentication mode.

    Defined at line 230 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • uint8_t AppGroupMasterKeyIdFromAuthMode (WeaveAuthMode authMode)

    Returns the application group master key ID associated with the authentication mode.

    Defined at line 236 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • WeaveAuthMode PASEAuthMode (uint8_t pwSource)

    Returns a corresponding PASE authentication mode for a given password source.

    Defined at line 239 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • WeaveAuthMode CASEAuthMode (uint8_t certType)

    Returns a corresponding CASE authentication mode for a given certificate type.

    Defined at line 242 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • WEAVE_ERROR GenerateWeaveNodeId (uint64_t & nodeId)
  • template <typename _T>
    const _T & min (const _T & a, const _T & b)

    Generic min() and max() functions

    Defined at line 124 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Support/CodeUtils.h

  • template <typename _T>
    const _T & max (const _T & a, const _T & b)

    Defined at line 134 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Support/CodeUtils.h

  • WeaveAuthMode GroupKeyAuthMode (uint32_t keyId)

    Returns a corresponding group key authentication mode for a given key ID.

    Defined at line 248 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveFabricState.h

  • uint64_t WeaveFabricIdToIPv6GlobalId (uint64_t fabricId)

    Convert a Weave fabric identifier to an IPv6 ULA global identifier.

    The ULA global identifier for a fabric address is the lower 40 bits of the fabric's

    64-bit fabric ID.

    Parameters

    fabricId [in] The Weave fabric identifier.

    Returns

    the mapped IPv6 global identifier.

    Defined at line 1019 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveMessageLayer.h

  • uint64_t IPv6InterfaceIdToWeaveNodeId (uint64_t interfaceId)

    Convert an IPv6 address interface identifier to a Weave node identifier.

    As a convenience to testing, node identifiers less or equal than #kMaxAlwaysLocalWeaveNodeId

    (65535) are considered 'local', and have their universal/local bit is set to zero.

    This simplifies the string representation of the corresponding IPv6 addresses.

    For example a ULA for node identifier

    would be

    Parameters

    interfaceId [in] The 64 bit interface identifier.

    Returns

    the mapped 64 bit Weave node identifier.

    Defined at line 1041 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveMessageLayer.h

  • uint64_t WeaveNodeIdToIPv6InterfaceId (uint64_t nodeId)

    Convert a Weave node identifier to an IPv6 address interface identifier.

    Weave node identifiers are Universal/Local EUI-64s, which per RFC-3513 are converted to

    interface identifiers by inverting the universal/local bit (bit 57 counting the LSB as 0).

    As a convenience to testing, node identifiers less or equal than #kMaxAlwaysLocalWeaveNodeId

    (65535) are considered 'local', and have their universal/local bit is set to zero.

    This simplifies the string representation of the corresponding IPv6 addresses.

    For example a ULA for node identifier

    would be

    Parameters

    nodeId [in] The 64-bit Weave node identifier.

    Returns

    the IPv6 interface identifier.

    Defined at line 1069 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveMessageLayer.h

  • void WeaveNodeAddrToStr (char * buf, uint32_t bufSize, uint64_t nodeId, const IPAddress * addr, uint16_t port, WeaveConnection * con)

    DEPRECATED -- Use WeaveMessageLayer::GetPeerDescription() instead.

    Defined at line 1097 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveMessageLayer.h

  • void WeaveMessageSourceToStr (char * buf, uint32_t bufSize, const WeaveMessageInfo * msgInfo)

    DEPRECATED -- Use WeaveMessageLayer::GetPeerDescription() instead.

    Defined at line 1105 of file x64-shared/gen/third_party/openweave-core/src/include/Weave/Core/WeaveMessageLayer.h

Variables

WeaveExchangeManager ExchangeMgr
WeaveFabricState FabricState
WeaveMessageLayer MessageLayer
WeaveSecurityManager SecurityMgr
const uint8_t[4] kWeaveMsgEncAppKeyDiversifier