A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ZIGBEE models

This section documents the API of the Zigbee Specification related models. More...

Classes

struct  ns3::zigbee::ApsdeDataConfirmParams
 Zigbee Specification r22.1.0, Section 2.2.4.1.2 APSDE-DATA.confirm params. More...
 
struct  ns3::zigbee::ApsdeDataIndicationParams
 Zigbee Specification r22.1.0, Section 2.2.4.1.3 APSDE-DATA.indications params. More...
 
struct  ns3::zigbee::ApsdeDataRequestParams
 Zigbee Specification r22.1.0, Section 2.2.4.1.1 APSDE-DATA.request params. More...
 
struct  ns3::zigbee::ApsmeBindConfirmParams
 Zigbee Specification r22.1.0, Sections 2.2.4.3.2 and 2.2.4.3.4 APSME-BIND.confirm and APSME-UNBIND.confirm params. More...
 
struct  ns3::zigbee::ApsmeBindRequestParams
 Zigbee Specification r22.1.0, Sections 2.2.4.3.1 and 2.2.4.3.3 APSME-BIND.request and APSME-UNBIND.request params. More...
 
struct  ns3::zigbee::ApsmeGroupConfirmParams
 Zigbee Specification r22.1.0, Section 2.2.4.5.2 and 2.2.4.5.4 APSME-ADD-GROUP.confirm and APSME-REMOVE-GROUP.confirm params. More...
 
struct  ns3::zigbee::ApsmeGroupRequestParams
 Zigbee Specification r22.1.0, Section 2.2.4.5.1 and 2.2.4.5.3 APSME-ADD-GROUP.request and APSME-REMOVE-GROUP.request params. More...
 
struct  ns3::zigbee::ApsmeRemoveAllGroupsConfirmParams
 Zigbee Specification r22.1.0, Section 2.2.4.5.6 APSME-REMOVE-ALL-GROUPS.request params. More...
 
class  ns3::zigbee::CapabilityInformation
 Represent the the Capability Information Bit fields See zigbe Specification r22.1.0, Table 3-62. More...
 
class  ns3::zigbee::RoutingTableEntry
 Routing table entry Zigbee Specification r22.1.0, Table 3-66. More...
 
class  ns3::zigbee::ZigbeeAps
 Zigbee Specification r22.1.0, Section 2.2.3 Class that implements the Zigbee Specification Application Support Sub-layer (APS). More...
 
class  ns3::zigbee::ZigbeeApsHeader
 Defines the APS header use by data transfer and commands issued from the APS layer. More...
 
class  ns3::zigbee::ZigbeeApsTxOptions
 Helper class used to craft the transmission options bitmap used by the APSDE-DATA.request. More...
 
class  ns3::zigbee::ZigbeeBeaconPayload
 Represents the payload portion of a beacon frame. More...
 
class  ns3::zigbee::ZigbeeGroupTable
 The Zigbee Group Table Zigbee Specification r22.1.0, Section 2.2.8.3 and 3.6.6.1 The group table is a special table that is accessible by both the Zigbee NWK and APS layers. More...
 
class  ns3::ZigbeeHelper
 Setup a Zigbee stack to be used with LrWpanNetDevice. More...
 
class  ns3::zigbee::ZigbeeNwkHeader
 Represent the NWK Header with the Frame Control and Routing fields Zigbee Specification r22.1.0, General NPDU Frame Format (Section 3.3.1) More...
 
class  ns3::zigbee::ZigbeePayloadRouteReplyCommand
 Represent a variable portion of the zigbee payload header that includes the route reply command. More...
 
class  ns3::zigbee::ZigbeePayloadRouteRequestCommand
 Represent a variable portion of the zigbee payload header that includes the route request command. More...
 
class  ns3::zigbee::ZigbeePayloadType
 Represent the static portion of the zigbee payload header that describes the payload command type. More...
 
class  ns3::zigbee::ZigbeeStack
 Zigbee protocol stack to device interface. More...
 

Typedefs

typedef Callback< void, ApsdeDataConfirmParamsns3::zigbee::ApsdeDataConfirmCallback
 This callback is called to confirm a successfully transmission of an ASDU.
 
typedef Callback< void, ApsdeDataIndicationParams, Ptr< Packet > > ns3::zigbee::ApsdeDataIndicationCallback
 This callback is called after a ASDU has successfully received and APS push it to deliver it to the next higher layer (typically the application framework).
 
typedef Callback< void, ApsmeGroupConfirmParamsns3::zigbee::ApsmeAddGroupConfirmCallback
 This callback is called to confirm a successfully addition of a group address and or endPoint into the group table.
 
typedef Callback< void, ApsmeBindConfirmParamsns3::zigbee::ApsmeBindConfirmCallback
 This callback is called to confirm a successfully addition of a destination into the binding table.
 
typedef Callback< void, ApsmeRemoveAllGroupsConfirmParamsns3::zigbee::ApsmeRemoveAllGroupsConfirmCallback
 This callback is called to confirm a successfully removal of an endpoint from all the the groups.
 
typedef Callback< void, ApsmeGroupConfirmParamsns3::zigbee::ApsmeRemoveGroupConfirmCallback
 This callback is called to confirm a successfully removal of a group address and or endPoint from the group table.
 
typedef Callback< void, ApsmeBindConfirmParamsns3::zigbee::ApsmeUnbindConfirmCallback
 This callback is called to confirm a successfully unbind request performed into the binding table.
 

Enumerations

enum  ns3::zigbee::ApsDeliveryMode : uint8_t { ns3::zigbee::APS_UCST = 0x00 , ns3::zigbee::APS_BCST = 0x02 , ns3::zigbee::APS_GROUP_ADDRESSING = 0x03 }
 Values of the Delivery Mode Sub-Field. More...
 
enum class  ns3::zigbee::ApsDstAddressMode : std::uint8_t {
  ns3::zigbee::ApsDstAddressMode::DST_ADDR_AND_DST_ENDPOINT_NOT_PRESENT = 0x00 , ns3::zigbee::ApsDstAddressMode::GROUP_ADDR_DST_ENDPOINT_NOT_PRESENT = 0x01 , ns3::zigbee::ApsDstAddressMode::DST_ADDR16_DST_ENDPOINT_PRESENT = 0x02 , ns3::zigbee::ApsDstAddressMode::DST_ADDR64_DST_ENDPOINT_PRESENT = 0x03 ,
  ns3::zigbee::ApsDstAddressMode::DST_ADDR64_DST_ENDPOINT_NOT_PRESENT = 0x04
}
 APS Destination Address Mode, Zigbee Specification r22.1.0 Table 2-2 APSDE-DATA.request Parameters See Table 2-4 APSDE-DATA.indication Parameters. More...
 
enum  ns3::zigbee::ApsFragmentation : uint8_t { ns3::zigbee::NOT_FRAGMENTED = 0x00 , ns3::zigbee::FIRST_FRAGMENT = 0x01 , ns3::zigbee::OTHER_FRAGMENT = 0x02 }
 Table 2-22 Values of the Fragmentation Sub-Field Zigbee Specification r22.1.0, Table 2-22. More...
 
enum  ns3::zigbee::ApsFrameType : uint8_t { ns3::zigbee::APS_DATA = 0x00 , ns3::zigbee::APS_COMMAND = 0x01 , ns3::zigbee::APS_ACK = 0x02 , ns3::zigbee::APS_INTERPAN_APS = 0x03 }
 Values of the Frame Type Sub-Field. More...
 
enum class  ns3::zigbee::ApsSecurityStatus : std::uint8_t { ns3::zigbee::ApsSecurityStatus::UNSECURED = 0x00 , ns3::zigbee::ApsSecurityStatus::SECURED_NWK_KEY = 0x01 , ns3::zigbee::ApsSecurityStatus::SECURED_LINK_KEY = 0x02 }
 APS Security status See Zigbee Specification r22.1.0, Table 2-4 APSDE-DATA.indication Parameters. More...
 
enum class  ns3::zigbee::ApsSrcAddressMode : std::uint8_t { ns3::zigbee::ApsSrcAddressMode::SRC_ADDR16_SRC_ENDPOINT_PRESENT = 0x02 , ns3::zigbee::ApsSrcAddressMode::SRC_ADDR64_SRC_ENDPOINT_PRESENT = 0x03 , ns3::zigbee::ApsSrcAddressMode::SRC_ADDR64_SRC_ENDPOINT_NOT_PRESENT = 0x04 }
 APS Source Address Mode, Zigbee Specification r22.1.0 See Table 2-4 APSDE-DATA.indication Parameters. More...
 
enum class  ns3::zigbee::ApsStatus : std::uint8_t {
  ns3::zigbee::ApsStatus::SUCCESS = 0x00 , ns3::zigbee::ApsStatus::ASDU_TOO_LONG = 0xa0 , ns3::zigbee::ApsStatus::DEFRAG_DEFERRED = 0xa1 , ns3::zigbee::ApsStatus::DEFRAG_UNSUPPORTED = 0xa2 ,
  ns3::zigbee::ApsStatus::ILLEGAL_REQUEST = 0xa3 , ns3::zigbee::ApsStatus::INVALID_BINDING = 0xa4 , ns3::zigbee::ApsStatus::INVALID_GROUP = 0xa5 , ns3::zigbee::ApsStatus::INVALID_PARAMETER = 0xa6 ,
  ns3::zigbee::ApsStatus::NO_ACK = 0xa7 , ns3::zigbee::ApsStatus::NO_BOUND_DEVICE = 0xa8 , ns3::zigbee::ApsStatus::NO_SHORT_ADDRESS = 0xa9 , ns3::zigbee::ApsStatus::NOT_SUPPORTED = 0xaa ,
  ns3::zigbee::ApsStatus::SECURED_LINK_KEY = 0xab , ns3::zigbee::ApsStatus::SECURED_NWK_KEY = 0xac , ns3::zigbee::ApsStatus::SECURITY_FAIL = 0xad , ns3::zigbee::ApsStatus::TABLE_FULL = 0xae ,
  ns3::zigbee::ApsStatus::UNSECURED = 0xaf , ns3::zigbee::ApsStatus::UNSUPPORTED_ATTRIBUTE = 0xb0
}
 APS Sub-layer Status Values See Zigbee Specification r22.1.0, Table 2-27. More...
 
enum  ns3::zigbee::MacDeviceType { ns3::zigbee::ENDDEVICE = 0 , ns3::zigbee::ROUTER = 1 }
 The device Type Zigbee Specification r22.1.0 (Table 3-62 or Table 3-63) More...
 
enum  ns3::zigbee::NwkDeviceType { ns3::zigbee::ZIGBEE_COORDINATOR = 0x0 , ns3::zigbee::ZIGBEE_ROUTER = 0x01 , ns3::zigbee::ZIGBEE_ENDDEVICE = 0x02 }
 The network layer device type. More...
 
enum  ns3::zigbee::PowerSource { ns3::zigbee::OTHER_POWER_SOURCE = 0 , ns3::zigbee::MAINPOWER = 1 }
 The power source capabilities. More...
 
enum  ns3::zigbee::Relationship {
  ns3::zigbee::NBR_PARENT = 0x0 , ns3::zigbee::NBR_CHILD = 0x01 , ns3::zigbee::NBR_SIBLING = 0x02 , ns3::zigbee::NBR_NONE = 0x03 ,
  ns3::zigbee::NBR_PREV_CHILD = 0x04 , ns3::zigbee::NBR_UNAUTH_CHILD = 0x05
}
 The relationship between the neighbor and the current device. More...
 
enum  ns3::zigbee::RouteStatus {
  ns3::zigbee::ROUTE_ACTIVE = 0x0 , ns3::zigbee::ROUTE_DISCOVERY_UNDERWAY = 0x1 , ns3::zigbee::ROUTE_DISCOVER_FAILED = 0x2 , ns3::zigbee::ROUTE_INACTIVE = 0x3 ,
  ns3::zigbee::ROUTE_VALIDATION_UNDERWAY = 0x4
}
 Route record states. More...
 

Variables

static const double ns3::zigbee::RequestedTimeoutField [15] {0.166667, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384}
 Requested Timeout Field See Zigbee Specification r22.1.0, 3.4.11.3.1.
 

Detailed Description

This section documents the API of the Zigbee Specification related models.

For a generic functional description, please refer to the ns-3 manual.

Typedef Documentation

◆ ApsdeDataConfirmCallback

This callback is called to confirm a successfully transmission of an ASDU.

Definition at line 273 of file zigbee-aps.h.

◆ ApsdeDataIndicationCallback

This callback is called after a ASDU has successfully received and APS push it to deliver it to the next higher layer (typically the application framework).

Definition at line 281 of file zigbee-aps.h.

◆ ApsmeAddGroupConfirmCallback

This callback is called to confirm a successfully addition of a group address and or endPoint into the group table.

Definition at line 305 of file zigbee-aps.h.

◆ ApsmeBindConfirmCallback

This callback is called to confirm a successfully addition of a destination into the binding table.

Definition at line 289 of file zigbee-aps.h.

◆ ApsmeRemoveAllGroupsConfirmCallback

This callback is called to confirm a successfully removal of an endpoint from all the the groups.

Definition at line 321 of file zigbee-aps.h.

◆ ApsmeRemoveGroupConfirmCallback

This callback is called to confirm a successfully removal of a group address and or endPoint from the group table.

Definition at line 313 of file zigbee-aps.h.

◆ ApsmeUnbindConfirmCallback

This callback is called to confirm a successfully unbind request performed into the binding table.

Definition at line 297 of file zigbee-aps.h.

Enumeration Type Documentation

◆ ApsDeliveryMode

Values of the Delivery Mode Sub-Field.

Zigbee Specification r22.1.0, Table 2-21

Enumerator
APS_UCST 
APS_BCST 
APS_GROUP_ADDRESSING 

Definition at line 42 of file zigbee-aps-header.h.

◆ ApsDstAddressMode

enum class ns3::zigbee::ApsDstAddressMode : std::uint8_t
strong

APS Destination Address Mode, Zigbee Specification r22.1.0 Table 2-2 APSDE-DATA.request Parameters See Table 2-4 APSDE-DATA.indication Parameters.

Enumerator
DST_ADDR_AND_DST_ENDPOINT_NOT_PRESENT 

Destination address and destination endpoint not present.

GROUP_ADDR_DST_ENDPOINT_NOT_PRESENT 

Group address or 16-bit destination address present but destination endpoint not present.

DST_ADDR16_DST_ENDPOINT_PRESENT 

16-bit destination address and destination endpoint present.

DST_ADDR64_DST_ENDPOINT_PRESENT 

64-bit destination address and destination endpoint present.

DST_ADDR64_DST_ENDPOINT_NOT_PRESENT 

64-bit address present but destination endpoint not present.

Definition at line 45 of file zigbee-aps.h.

◆ ApsFragmentation

Table 2-22 Values of the Fragmentation Sub-Field Zigbee Specification r22.1.0, Table 2-22.

Enumerator
NOT_FRAGMENTED 
FIRST_FRAGMENT 
OTHER_FRAGMENT 

Definition at line 55 of file zigbee-aps-header.h.

◆ ApsFrameType

enum ns3::zigbee::ApsFrameType : uint8_t

Values of the Frame Type Sub-Field.

Zigbee Specification r22.1.0, Table 2-20

Enumerator
APS_DATA 
APS_COMMAND 
APS_ACK 
APS_INTERPAN_APS 

Definition at line 28 of file zigbee-aps-header.h.

◆ ApsSecurityStatus

enum class ns3::zigbee::ApsSecurityStatus : std::uint8_t
strong

APS Security status See Zigbee Specification r22.1.0, Table 2-4 APSDE-DATA.indication Parameters.

Enumerator
UNSECURED 

Unsecured status.

SECURED_NWK_KEY 

Use NWK secure key.

SECURED_LINK_KEY 

Use link secure key.

Definition at line 81 of file zigbee-aps.h.

◆ ApsSrcAddressMode

enum class ns3::zigbee::ApsSrcAddressMode : std::uint8_t
strong

APS Source Address Mode, Zigbee Specification r22.1.0 See Table 2-4 APSDE-DATA.indication Parameters.

Enumerator
SRC_ADDR16_SRC_ENDPOINT_PRESENT 

16-bit source address and source endpoint present

SRC_ADDR64_SRC_ENDPOINT_PRESENT 

64-bit source address and source endpoint present

SRC_ADDR64_SRC_ENDPOINT_NOT_PRESENT 

64-bit source address present but source endpoint not present

Definition at line 66 of file zigbee-aps.h.

◆ ApsStatus

enum class ns3::zigbee::ApsStatus : std::uint8_t
strong

APS Sub-layer Status Values See Zigbee Specification r22.1.0, Table 2-27.

Enumerator
SUCCESS 

A request has been executed successfully.

ASDU_TOO_LONG 

A received fragmented frame could not be defragmented at the current time.

DEFRAG_DEFERRED 

Defragmentation deferred.

DEFRAG_UNSUPPORTED 

Defragmentation is not supported.

ILLEGAL_REQUEST 

Illegal request.

INVALID_BINDING 

Invalid binding.

INVALID_GROUP 

Invalid group.

INVALID_PARAMETER 

A parameter value was invalid or out of range.

NO_ACK 

No Acknowledgment.

NO_BOUND_DEVICE 

No bound device.

NO_SHORT_ADDRESS 

No short address present.

NOT_SUPPORTED 

Not supported in APS.

SECURED_LINK_KEY 

Secured link key present.

SECURED_NWK_KEY 

Secured network key present.

SECURITY_FAIL 

Security failed.

TABLE_FULL 

Binding table or group table is full.

UNSECURED 

Unsecured.

UNSUPPORTED_ATTRIBUTE 

Unsupported attribute.

Definition at line 94 of file zigbee-aps.h.

◆ MacDeviceType

The device Type Zigbee Specification r22.1.0 (Table 3-62 or Table 3-63)

Enumerator
ENDDEVICE 

End device or router treated as an end device.

ROUTER 

Router device.

Definition at line 27 of file zigbee-nwk-fields.h.

◆ NwkDeviceType

The network layer device type.

Enumerator
ZIGBEE_COORDINATOR 

Zigbee coordinator.

ZIGBEE_ROUTER 

Zigbee router.

ZIGBEE_ENDDEVICE 

Zigbee end device.

Definition at line 63 of file zigbee-nwk-tables.h.

◆ PowerSource

The power source capabilities.

Zigbee Specification r22.1.0 (Table 3-62)

Enumerator
OTHER_POWER_SOURCE 

Other power source.

MAINPOWER 

Mains-powered device.

Definition at line 38 of file zigbee-nwk-fields.h.

◆ Relationship

The relationship between the neighbor and the current device.

Enumerator
NBR_PARENT 

Neighbor is the parent.

NBR_CHILD 

Neighbor is the child.

NBR_SIBLING 

Neighbor is the sibling.

NBR_NONE 

No relationship.

NBR_PREV_CHILD 

Neighbor was a previous child.

NBR_UNAUTH_CHILD 

Neighbor is an unauthenticated child.

Definition at line 49 of file zigbee-nwk-tables.h.

◆ RouteStatus

Route record states.

Enumerator
ROUTE_ACTIVE 

Route active.

ROUTE_DISCOVERY_UNDERWAY 

Route discovery underway.

ROUTE_DISCOVER_FAILED 

Route discovery failed.

ROUTE_INACTIVE 

Route inactive.

ROUTE_VALIDATION_UNDERWAY 

Route discovery validation underway.

Definition at line 36 of file zigbee-nwk-tables.h.

Variable Documentation

◆ RequestedTimeoutField

const double ns3::zigbee::RequestedTimeoutField[15] {0.166667, 2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192, 16384}
static

Requested Timeout Field See Zigbee Specification r22.1.0, 3.4.11.3.1.

List the requested timeout values in minutes

Definition at line 51 of file zigbee-nwk-fields.h.

Referenced by ns3::zigbee::ZigbeeNwk::MlmeAssociateIndication(), ns3::zigbee::ZigbeeNwk::MlmeBeaconNotifyIndication(), and ns3::zigbee::ZigbeeNwk::NlmeDirectJoinRequest().