nl::Weave::Profiles::NetworkProvisioning

This namespace includes all interfaces within Weave for the Weave Network Provisioning profile, the first of the three Weave provisioning profiles.

Summary

The interfaces define status codes, message types, data element tags, other constants, a server object, and a delegate object.

The Nest Weave Network Provisioning Profile is focused on providing the data to get the network interfaces, such as 802.15.4/Thread and 802.11/Wi-Fi, for a Weave device provisioned such that the device may participate in those networks.

Enumerations

@212{
  kStatusCode_UnknownNetwork = 1,
  kStatusCode_TooManyNetworks = 2,
  kStatusCode_InvalidNetworkConfiguration = 3,
  kStatusCode_UnsupportedNetworkType = 4,
  kStatusCode_UnsupportedWiFiMode = 5,
  kStatusCode_UnsupportedWiFiRole = 6,
  kStatusCode_UnsupportedWiFiSecurityType = 7,
  kStatusCode_InvalidState = 8,
  kStatusCode_TestNetworkFailed = 9,
  kStatusCode_NetworkConnectFailed = 10,
  kStatusCode_NoRouterAvailable = 11,
  kStatusCode_UnsupportedRegulatoryDomain = 12,
  kStatusCode_UnsupportedOperatingLocation = 13
}
enum
Network Provisioning Status Codes.
@213 enum
Network Provisioning Message Types.
@214{
  kTag_Networks = 1,
  kTag_EnabledNetworks = 2,
  kTag_RendezvousMode = 3,
  kTag_NetworkInformation = 32,
  kTag_NetworkId = 33,
  kTag_NetworkType = 34,
  kTag_WirelessSignalStrength = 35,
  kTag_WiFiSSID = 64,
  kTag_WiFiMode = 65,
  kTag_WiFiRole = 66,
  kTag_WiFiSecurityType = 67,
  kTag_WiFiPreSharedKey = 68,
  kTag_ThreadExtendedPANId = 80,
  kTag_ThreadNetworkName = 81,
  kTag_ThreadNetworkKey = 82,
  kTag_ThreadMeshPrefix = 83,
  kTag_ThreadChannel = 84,
  kTag_ThreadPANId = 85,
  kTag_ThreadPSKc = 86,
  kTag_WirelessRegConfig_RegulatoryDomain = 1,
  kTag_WirelessRegConfig_OperatingLocation = 2,
  kTag_WirelessRegConfig_SupportedRegulatoryDomains = 3
}
enum
@215 enum
Thread PAN Id.
@216 enum
Thread Channel.
GetNetworkFlags enum
Get Network Flags.
NetworkType enum
Network Types.
RendezvousModeFlags enum
Rendezvous Mode Flags.
WiFiMode enum
WiFi Operating Modes.
WiFiRole enum
Device WiFi Role.
WiFiSecurityType enum
WiFi Security Modes.
WirelessOperatingLocation{
  kWirelessOperatingLocation_NotSpecified = 0x00,
  kWirelessOperatingLocation_Unknown = 0x01,
  kWirelessOperatingLocation_Indoors = 0x02,
  kWirelessOperatingLocation_Outdoors = 0x03
}
enum
Device operating location, as relevant to wireless regulatory rules.

Functions

ReplaceValue(char *& dest, const char *src)
ReplaceValue(uint8_t *& dest, uint32_t & destLen, const uint8_t *src, uint32_t srcLen)

Classes

nl::Weave::Profiles::NetworkProvisioning::NetworkInfo

A utility class for serializing and deserializing payloads communicated via NetworkProvisioning profile: it encapsulates information pertinent to the detecting and configuring networks.

nl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningDelegate

Delegate class for implementing Network Provisioning operations.

nl::Weave::Profiles::NetworkProvisioning::NetworkProvisioningServer

Server class for implementing the Network Provisioning profile.

nl::Weave::Profiles::NetworkProvisioning::WirelessRegConfig

Container for wireless regulatory configuration information.

Structs

nl::Weave::Profiles::NetworkProvisioning::WirelessRegDomain

2-character code identifying a wireless regulatory domain.

Enumerations

@212

 @212

Network Provisioning Status Codes.

Properties
kStatusCode_InvalidNetworkConfiguration

The specified network configuration is invalid.

kStatusCode_InvalidState

The network provisioning operation could not be performed in the current state.

kStatusCode_NetworkConnectFailed

An attempt to connect to the specified network failed.

kStatusCode_NoRouterAvailable

An appropriate network router was not found.

kStatusCode_TestNetworkFailed

The connectivity test of the specified network failed.

kStatusCode_TooManyNetworks

The maximum number of provisioned networks has been reached.

kStatusCode_UnknownNetwork

A provisioned network with the specified network ID was not found.

kStatusCode_UnsupportedNetworkType

The specified network type is unknown or unsupported.

kStatusCode_UnsupportedOperatingLocation

The specified wireless operating location is unsupported.

kStatusCode_UnsupportedRegulatoryDomain

The specified wireless regulatory domain is unsupported.

kStatusCode_UnsupportedWiFiMode

The specified WiFi mode is unsupported.

kStatusCode_UnsupportedWiFiRole

The specified WiFi role is unsupported.

kStatusCode_UnsupportedWiFiSecurityType

The specified WiFi security type is unsupported.

@213

 @213

Network Provisioning Message Types.

@214

 @214

Network Provisioning Data Element Tags.

Properties
kTag_EnabledNetworks

[ array ] An array of NetworkIds identifying the networks currently enabled on the device.

kTag_NetworkId

[ uint, 32-bit max ] An integer uniquely identifying a provisioned network.

kTag_NetworkInformation

[ struct ] A structure containing information for a network.

kTag_NetworkType

[ uint, 8-bit max ] An unsigned integer value identifying the type of a network.

kTag_Networks

[ array ] An array of NetworkConfiguration structures.

kTag_RendezvousMode

[ uint ] A bit field indicating the currently active rendezvous mode.

kTag_ThreadChannel

[ uint, 8-bit max ] Thread channel number (optional).

kTag_ThreadExtendedPANId

[ byte string ] The Thread extended PAN ID.

kTag_ThreadMeshPrefix

[ bytes string, exactly 8 bytes ] Thread mesh IPv6 /64 prefix (optional).

kTag_ThreadNetworkKey

[ bytes string ] The Thread master network key.

kTag_ThreadNetworkName

[ UTF-8 string ] A UTF-8 string containing the name of the Thread network.

kTag_ThreadPANId

[ uint, 16-bit max ] Thread PAN ID (optional).

kTag_ThreadPSKc

[ uint, 16-bit max ] Thread PSKc (optional).

kTag_WiFiMode

[ uint, 8-bit max ] An integer identify the mode of operation of the WiFi network.

kTag_WiFiPreSharedKey

[ byte string ] A byte string containing the WiFi password/pre-shared key.

kTag_WiFiRole

[ uint, 8-bit max ] An integer identify the role the device plays in the WiFi network.

kTag_WiFiSSID

[ UTF-8 string ] A string containing a WiFi SSID.

kTag_WiFiSecurityType

[ uint, 8-bit max ] An integer value identifying the type of security used by a WiFi network.

kTag_WirelessRegConfig_OperatingLocation

[ uint enum, 8-bit max ] Operating location relevant to wireless regulatory rules.

kTag_WirelessRegConfig_RegulatoryDomain

[ UTF-8 string, len 2 ] Wireless regulatory domain.

kTag_WirelessRegConfig_SupportedRegulatoryDomains

[ array of string len 2 ] List of support regulatory domains.

kTag_WirelessSignalStrength

[ int, 16-bit max ] An signed integer value giving the signal strength of a wireless network in dBm.

@215

 @215

Thread PAN Id.

@216

 @216

Thread Channel.

GetNetworkFlags

 GetNetworkFlags

Get Network Flags.

NetworkType

 NetworkType

Network Types.

RendezvousModeFlags

 RendezvousModeFlags

Rendezvous Mode Flags.

WiFiMode

 WiFiMode

WiFi Operating Modes.

WiFiRole

 WiFiRole

Device WiFi Role.

WiFiSecurityType

 WiFiSecurityType

WiFi Security Modes.

WirelessOperatingLocation

 WirelessOperatingLocation

Device operating location, as relevant to wireless regulatory rules.

Properties
kWirelessOperatingLocation_Indoors

Operating indoors.

Signifies that the device's expected operating location is indoors.

kWirelessOperatingLocation_NotSpecified

Reserved value.

May not be sent over-the-wire.

kWirelessOperatingLocation_Outdoors

Operating outdoors.

Signifies that the device's expected operating location is outdoors.

kWirelessOperatingLocation_Unknown

Operating location unknown.

Signifies that the device's expected operating location is not known, or may change over time.

Functions

ReplaceValue

WEAVE_ERROR ReplaceValue(
  char *& dest,
  const char *src
)

ReplaceValue

WEAVE_ERROR ReplaceValue(
  uint8_t *& dest,
  uint32_t & destLen,
  const uint8_t *src,
  uint32_t srcLen
)