Zigbee Specification r22.1.0, Section 2.2.3 Class that implements the Zigbee Specification Application Support Sub-layer (APS). More...
#include "zigbee-aps.h"
Public Member Functions | |
ZigbeeAps () | |
Default constructor. | |
~ZigbeeAps () override | |
void | ApsdeDataRequest (ApsdeDataRequestParams params, Ptr< Packet > asdu) |
Zigbee Specification r22.1.0, Section 2.2.4.1.1 APSDE-DATA.request Request the transmission of data to one or more entities. | |
void | ApsmeAddGroupRequest (ApsmeGroupRequestParams params) |
Zigbee Specification r22.1.0, Section 2.2.4.5.1 APSME-ADD-GROUP.request Request that group membership for a particular group be added for a particular endpoint. | |
void | ApsmeBindRequest (ApsmeBindRequestParams params) |
Zigbee Specification r22.1.0, Section 2.2.4.3.1 APSME-BIND.request Bind a source entry to one or more destination entries in the binding table. | |
void | ApsmeRemoveAllGroupsRequest (uint8_t endPoint) |
Zigbee Specification r22.1.0, Section 2.2.4.5.5 APSME-REMOVE-ALL-GROUPS.request Remove membership in all groups from an endpoint, so that no group-addressed frames will be delivered to that endpoint. | |
void | ApsmeRemoveGroupRequest (ApsmeGroupRequestParams params) |
Zigbee Specification r22.1.0, Section 2.2.4.5.3 APSME-REMOVE-GROUP.request Request that group membership for a particular group be removed for a particular endpoint. | |
void | ApsmeUnbindRequest (ApsmeBindRequestParams params) |
Zigbee Specification r22.1.0, Section 2.2.4.3.3 APSME-BIND.request Unbind a destination entry from a source entry in the binding table. | |
Ptr< ZigbeeNwk > | GetNwk () const |
Get the underlying NWK used by the current Zigbee APS. | |
void | NldeDataConfirm (NldeDataConfirmParams params) |
Zigbee Specification r22.1.0, Section 3.2.1.2 NLDE-DATA.confirm Used to report to the APS the transmission of data from the NWK. | |
void | NldeDataIndication (NldeDataIndicationParams params, Ptr< Packet > nsdu) |
Zigbee Specification r22.1.0, Section 3.2.1.3 NLDE-DATA.indication Used to report to the APS the reception of data from the NWK. | |
void | ReceiveData (const ZigbeeApsHeader &apsHeader, const NldeDataIndicationParams ¶ms, Ptr< Packet > nsdu) |
Zigbee Specification r22.1.0, Section 2.2.8.4.2 Reception and Rejection of data from the NWK. | |
void | SetApsdeDataConfirmCallback (ApsdeDataConfirmCallback c) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework). | |
void | SetApsdeDataIndicationCallback (ApsdeDataIndicationCallback c) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework). | |
void | SetApsmeAddGroupConfirmCallback (ApsmeAddGroupConfirmCallback c) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework). | |
void | SetApsmeBindConfirmCallback (ApsmeBindConfirmCallback c) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework). | |
void | SetApsmeRemoveAllGroupsConfirmCallback (ApsmeRemoveAllGroupsConfirmCallback c) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework). | |
void | SetApsmeRemoveGroupConfirmCallback (ApsmeRemoveGroupConfirmCallback c) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework). | |
void | SetApsmeUnbindConfirmCallback (ApsmeUnbindConfirmCallback c) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework). | |
void | SetGroupTable (Ptr< ZigbeeGroupTable > groupTable) |
Get the group table used by this Zigbee APS. | |
void | SetNwk (Ptr< ZigbeeNwk > nwk) |
Set the underlying NWK to use in this Zigbee APS. | |
![]() | |
Object () | |
Constructor. | |
~Object () override | |
Destructor. | |
void | AggregateObject (Ptr< Object > other) |
Aggregate two Objects together. | |
void | Dispose () |
Dispose of this Object. | |
AggregateIterator | GetAggregateIterator () const |
Get an iterator to the Objects aggregated to this one. | |
TypeId | GetInstanceTypeId () const final |
Get the most derived TypeId for this Object. | |
template<typename T> | |
Ptr< T > | GetObject () const |
Get a pointer to the requested aggregated Object. | |
template<> | |
Ptr< Object > | GetObject () const |
Specialization of () for objects of type ns3::Object. | |
template<typename T> | |
Ptr< T > | GetObject (TypeId tid) const |
Get a pointer to the requested aggregated Object by TypeId. | |
template<> | |
Ptr< Object > | GetObject (TypeId tid) const |
Specialization of (TypeId tid) for objects of type ns3::Object. | |
void | Initialize () |
Invoke DoInitialize on all Objects aggregated to this one. | |
bool | IsInitialized () const |
Check if the object has been initialized. | |
void | UnidirectionalAggregateObject (Ptr< Object > other) |
Aggregate an Object to another Object. | |
![]() | |
SimpleRefCount () | |
Default constructor. | |
SimpleRefCount (const SimpleRefCount &o) | |
Copy constructor. | |
uint32_t | GetReferenceCount () const |
Get the reference count of the object. | |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
Assignment operator. | |
void | Ref () const |
Increment the reference count. | |
void | Unref () const |
Decrement the reference count. | |
![]() | |
virtual | ~ObjectBase () |
Virtual destructor. | |
void | GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const |
Get the value of an attribute, raising fatal errors if unsuccessful. | |
bool | GetAttributeFailSafe (std::string name, AttributeValue &value) const |
Get the value of an attribute without raising errors. | |
void | SetAttribute (std::string name, const AttributeValue &value) |
Set a single attribute, raising fatal errors if unsuccessful. | |
bool | SetAttributeFailSafe (std::string name, const AttributeValue &value) |
Set a single attribute without raising errors. | |
bool | TraceConnect (std::string name, std::string context, const CallbackBase &cb) |
Connect a TraceSource to a Callback with a context. | |
bool | TraceConnectWithoutContext (std::string name, const CallbackBase &cb) |
Connect a TraceSource to a Callback without a context. | |
bool | TraceDisconnect (std::string name, std::string context, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected with a context. | |
bool | TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb) |
Disconnect from a TraceSource a Callback previously connected without a context. | |
Static Public Member Functions | |
static TypeId | GetTypeId () |
Get the type ID. | |
![]() | |
static TypeId | GetTypeId () |
Register this type. | |
![]() | |
static TypeId | GetTypeId () |
Get the type ID. | |
Protected Member Functions | |
void | DoDispose () override |
Destructor implementation. | |
void | DoInitialize () override |
Initialize() implementation. | |
void | NotifyConstructionCompleted () override |
Notifier called once the ObjectBase is fully constructed. | |
![]() | |
Object (const Object &o) | |
Copy an Object. | |
virtual void | NotifyNewAggregate () |
Notify all Objects aggregated to this one of a new Object being aggregated. | |
![]() | |
void | ConstructSelf (const AttributeConstructionList &attributes) |
Complete construction of ObjectBase; invoked by derived classes. | |
Private Member Functions | |
void | SendDataGroup (ApsdeDataRequestParams params, Ptr< Packet > asdu) |
Send a Groupcast to a group address destination. | |
void | SendDataUcstBcst (ApsdeDataRequestParams params, Ptr< Packet > asdu) |
Send a regular UCST or BCST data transmission to a known 16-bit address destination. | |
void | SendDataWithBindingTable (ApsdeDataRequestParams params, Ptr< Packet > asdu) |
Send a Groupcast or IEEE address destination from a list of destination in the binding table. | |
Private Attributes | |
BindingTable | m_apsBindingTable |
The binding table used by this Zigbee APS. | |
SequenceNumber8 | m_apsCounter |
The sequence number used in packet Tx with APS headers. | |
ApsdeDataConfirmCallback | m_apsdeDataConfirmCallback |
This callback is used to to notify the results of a data transmission request to the Application framework (AF) making the request. | |
ApsdeDataIndicationCallback | m_apsdeDataIndicationCallback |
This callback is used to to notify the reception of data to the Application framework (AF). | |
Ptr< ZigbeeGroupTable > | m_apsGroupTable |
The group table used by this Zigbee APS. | |
ApsmeAddGroupConfirmCallback | m_apsmeAddGroupConfirmCallback |
This callback is used to to notify the result of endpoint addition request in the APS to the Application framework (AF). | |
ApsmeBindConfirmCallback | m_apsmeBindConfirmCallback |
This callback is used to to notify the result of a binding request in the APS to the Application framework (AF). | |
ApsmeRemoveAllGroupsConfirmCallback | m_apsmeRemoveAllGroupsConfirmCallback |
This callback is used to to notify the result of a endpoint removal request in the APS to the Application framework (AF). | |
ApsmeRemoveGroupConfirmCallback | m_apsmeRemoveGroupConfirmCallback |
This callback is used to to notify the result of a endpoint removal request in the APS to the Application framework (AF). | |
ApsmeUnbindConfirmCallback | m_apsmeUnbindConfirmCallback |
This callback is used to to notify the result of a unbinding request in the APS to the Application framework (AF). | |
uint8_t | m_apsNonMemberRadius |
The APS non-member radius, used to limit the number of hops for non-member multicast group devices when using NWK layer multicast. | |
Ptr< ZigbeeNwk > | m_nwk |
The underlying Zigbee NWK connected to this Zigbee APS. | |
Additional Inherited Members | |
![]() | |
static TypeId | GetObjectIid () |
Ensure the TypeId for ObjectBase gets fully configured to anchor the inheritance tree properly. | |
Zigbee Specification r22.1.0, Section 2.2.3 Class that implements the Zigbee Specification Application Support Sub-layer (APS).
Introspection did not find any typical Config paths.
No TraceSources are defined for this type.
Group: Zigbee
Size of this type is 176 bytes (on a 64-bit architecture).
Definition at line 329 of file zigbee-aps.h.
ns3::zigbee::ZigbeeAps::ZigbeeAps | ( | ) |
Default constructor.
Definition at line 41 of file zigbee-aps.cc.
References NS_LOG_FUNCTION.
Referenced by GetTypeId().
|
override |
Definition at line 52 of file zigbee-aps.cc.
References NS_LOG_FUNCTION.
void ns3::zigbee::ZigbeeAps::ApsdeDataRequest | ( | ApsdeDataRequestParams | params, |
Ptr< Packet > | asdu ) |
Zigbee Specification r22.1.0, Section 2.2.4.1.1 APSDE-DATA.request Request the transmission of data to one or more entities.
params | The APSDE data request params |
asdu | The packet to transmit |
Definition at line 93 of file zigbee-aps.cc.
References ns3::zigbee::DST_ADDR16_DST_ENDPOINT_PRESENT, ns3::zigbee::DST_ADDR64_DST_ENDPOINT_PRESENT, ns3::zigbee::DST_ADDR_AND_DST_ENDPOINT_NOT_PRESENT, ns3::zigbee::GROUP_ADDR_DST_ENDPOINT_NOT_PRESENT, ns3::zigbee::ZigbeeApsTxOptions::IsAckRequired(), ns3::zigbee::ZigbeeApsTxOptions::IsSecurityEnabled(), m_apsdeDataConfirmCallback, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddr16, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddr64, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddrMode, ns3::zigbee::ApsdeDataConfirmParams::m_dstEndPoint, ns3::zigbee::ApsdeDataConfirmParams::m_srcEndPoint, ns3::zigbee::ApsdeDataConfirmParams::m_status, ns3::zigbee::ApsdeDataConfirmParams::m_txTime, ns3::zigbee::NO_SHORT_ADDRESS, ns3::Simulator::Now(), NS_ABORT_MSG, NS_LOG_FUNCTION, NS_LOG_WARN, ns3::zigbee::SECURITY_FAIL, SendDataGroup(), and SendDataUcstBcst().
Referenced by SendDataGcst(), SendDataUcst(), and ZigbeeApsDataTestCase::SendDataUcstDst().
void ns3::zigbee::ZigbeeAps::ApsmeAddGroupRequest | ( | ApsmeGroupRequestParams | params | ) |
Zigbee Specification r22.1.0, Section 2.2.4.5.1 APSME-ADD-GROUP.request Request that group membership for a particular group be added for a particular endpoint.
params | The APSME add group request params |
Definition at line 439 of file zigbee-aps.cc.
References m_apsGroupTable, m_apsmeAddGroupConfirmCallback, ns3::zigbee::ApsmeGroupConfirmParams::m_endPoint, ns3::zigbee::ApsmeGroupConfirmParams::m_groupAddress, ns3::zigbee::ApsmeGroupConfirmParams::m_status, NS_LOG_FUNCTION, ns3::zigbee::SUCCESS, and ns3::zigbee::TABLE_FULL.
void ns3::zigbee::ZigbeeAps::ApsmeBindRequest | ( | ApsmeBindRequestParams | params | ) |
Zigbee Specification r22.1.0, Section 2.2.4.3.1 APSME-BIND.request Bind a source entry to one or more destination entries in the binding table.
params | The APSDE bind request params |
Definition at line 369 of file zigbee-aps.cc.
References ns3::zigbee::BOUND, ns3::zigbee::DST_ADDR64_DST_ENDPOINT_PRESENT, ns3::zigbee::ENTRY_EXISTS, ns3::zigbee::GROUP_ADDR_DST_ENDPOINT_NOT_PRESENT, ns3::zigbee::ILLEGAL_REQUEST, ns3::zigbee::INVALID_BINDING, m_apsBindingTable, m_apsmeBindConfirmCallback, ns3::zigbee::ApsmeBindConfirmParams::m_clusterId, ns3::zigbee::ApsmeBindConfirmParams::m_dstAddr16, ns3::zigbee::ApsmeBindConfirmParams::m_dstAddr64, ns3::zigbee::ApsmeBindConfirmParams::m_dstAddrMode, ns3::zigbee::ApsmeBindConfirmParams::m_dstEndPoint, ns3::zigbee::ApsmeBindConfirmParams::m_srcAddr, ns3::zigbee::ApsmeBindConfirmParams::m_srcEndPoint, ns3::zigbee::ApsmeBindConfirmParams::m_status, NS_LOG_ERROR, ns3::zigbee::DstBindingEntry::SetDstAddr16(), ns3::zigbee::DstBindingEntry::SetDstAddrMode(), ns3::zigbee::DstBindingEntry::SetDstEndPoint(), ns3::zigbee::SUCCESS, and ns3::zigbee::TABLE_FULL.
void ns3::zigbee::ZigbeeAps::ApsmeRemoveAllGroupsRequest | ( | uint8_t | endPoint | ) |
Zigbee Specification r22.1.0, Section 2.2.4.5.5 APSME-REMOVE-ALL-GROUPS.request Remove membership in all groups from an endpoint, so that no group-addressed frames will be delivered to that endpoint.
endPoint | The endpoint from which all groups are being removed. |
Definition at line 481 of file zigbee-aps.cc.
References ns3::zigbee::INVALID_PARAMETER, m_apsGroupTable, m_apsmeRemoveAllGroupsConfirmCallback, ns3::zigbee::ApsmeRemoveAllGroupsConfirmParams::m_endPoint, ns3::zigbee::ApsmeRemoveAllGroupsConfirmParams::m_status, NS_LOG_FUNCTION, and ns3::zigbee::SUCCESS.
void ns3::zigbee::ZigbeeAps::ApsmeRemoveGroupRequest | ( | ApsmeGroupRequestParams | params | ) |
Zigbee Specification r22.1.0, Section 2.2.4.5.3 APSME-REMOVE-GROUP.request Request that group membership for a particular group be removed for a particular endpoint.
params | The APSME remove group request params |
Definition at line 460 of file zigbee-aps.cc.
References ns3::zigbee::INVALID_GROUP, m_apsGroupTable, m_apsmeRemoveGroupConfirmCallback, ns3::zigbee::ApsmeGroupConfirmParams::m_endPoint, ns3::zigbee::ApsmeGroupConfirmParams::m_groupAddress, ns3::zigbee::ApsmeGroupConfirmParams::m_status, NS_LOG_FUNCTION, and ns3::zigbee::SUCCESS.
void ns3::zigbee::ZigbeeAps::ApsmeUnbindRequest | ( | ApsmeBindRequestParams | params | ) |
Zigbee Specification r22.1.0, Section 2.2.4.3.3 APSME-BIND.request Unbind a destination entry from a source entry in the binding table.
params | The APSDE bind request params |
Definition at line 434 of file zigbee-aps.cc.
|
overrideprotectedvirtual |
Destructor implementation.
This method is called by Dispose() or by the Object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.
It is safe to call GetObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 65 of file zigbee-aps.cc.
References ns3::Object::DoDispose(), m_apsdeDataConfirmCallback, m_nwk, and ns3::MakeNullCallback().
|
overrideprotectedvirtual |
Initialize() implementation.
This method is called only once by Initialize(). If the user calls Initialize() multiple times, DoInitialize() is called only the first time.
Subclasses are expected to override this method and chain up to their parent's implementation once they are done. It is safe to call GetObject() and AggregateObject() from within this method.
Reimplemented from ns3::Object.
Definition at line 58 of file zigbee-aps.cc.
References ns3::Object::DoInitialize(), and NS_LOG_FUNCTION.
Get the underlying NWK used by the current Zigbee APS.
Definition at line 87 of file zigbee-aps.cc.
References m_nwk.
|
static |
Get the type ID.
Definition at line 26 of file zigbee-aps.cc.
References ns3::Object::Object(), ZigbeeAps(), m_apsNonMemberRadius, ns3::MakeUintegerAccessor(), ns3::MakeUintegerChecker(), and ns3::TypeId::SetParent().
void ns3::zigbee::ZigbeeAps::NldeDataConfirm | ( | NldeDataConfirmParams | params | ) |
Zigbee Specification r22.1.0, Section 3.2.1.2 NLDE-DATA.confirm Used to report to the APS the transmission of data from the NWK.
params | The NLDE data confirm params |
Definition at line 501 of file zigbee-aps.cc.
Referenced by ns3::zigbee::ZigbeeStack::DoInitialize().
void ns3::zigbee::ZigbeeAps::NldeDataIndication | ( | NldeDataIndicationParams | params, |
Ptr< Packet > | nsdu ) |
Zigbee Specification r22.1.0, Section 3.2.1.3 NLDE-DATA.indication Used to report to the APS the reception of data from the NWK.
params | The NLDE data indication params |
nsdu | The packet received |
Definition at line 507 of file zigbee-aps.cc.
References ns3::zigbee::APS_ACK, ns3::zigbee::APS_COMMAND, ns3::zigbee::APS_DATA, ns3::zigbee::APS_INTERPAN_APS, ns3::zigbee::DEFRAG_UNSUPPORTED, ns3::zigbee::ZigbeeApsHeader::GetFrameType(), ns3::zigbee::ZigbeeApsHeader::IsExtHeaderPresent(), m_apsdeDataIndicationCallback, ns3::zigbee::ApsdeDataIndicationParams::m_status, NS_LOG_ERROR, NS_LOG_FUNCTION, NS_LOG_WARN, and ReceiveData().
Referenced by ns3::zigbee::ZigbeeStack::DoInitialize().
|
overrideprotectedvirtual |
Notifier called once the ObjectBase is fully constructed.
This method is invoked once all member attributes have been initialized. Subclasses can override this method to be notified of this event but if they do this, they must chain up to their parent's NotifyConstructionCompleted method.
Reimplemented from ns3::ObjectBase.
Definition at line 47 of file zigbee-aps.cc.
References NS_LOG_FUNCTION.
void ns3::zigbee::ZigbeeAps::ReceiveData | ( | const ZigbeeApsHeader & | apsHeader, |
const NldeDataIndicationParams & | params, | ||
Ptr< Packet > | nsdu ) |
Zigbee Specification r22.1.0, Section 2.2.8.4.2 Reception and Rejection of data from the NWK.
apsHeader | The APS header of the received packet |
params | The NLDE data indication params |
nsdu | The packet received |
Definition at line 568 of file zigbee-aps.cc.
References ns3::zigbee::APS_BCST, ns3::zigbee::APS_GROUP_ADDRESSING, ns3::zigbee::APS_UCST, ns3::zigbee::ApsdeDataIndicationParams::asduLength, ns3::zigbee::DST_ADDR16_DST_ENDPOINT_PRESENT, ns3::zigbee::ZigbeeApsHeader::GetClusterId(), ns3::zigbee::ZigbeeApsHeader::GetDeliveryMode(), ns3::zigbee::ZigbeeApsHeader::GetDstEndpoint(), ns3::zigbee::ZigbeeApsHeader::GetGroupAddress(), ns3::zigbee::ZigbeeApsHeader::GetProfileId(), ns3::zigbee::ZigbeeApsHeader::GetSrcEndpoint(), ns3::zigbee::GROUP_ADDR_DST_ENDPOINT_NOT_PRESENT, m_apsdeDataIndicationCallback, m_apsGroupTable, ns3::zigbee::ApsdeDataIndicationParams::m_clusterId, ns3::zigbee::ApsdeDataIndicationParams::m_dstAddr16, ns3::zigbee::ApsdeDataIndicationParams::m_dstAddrMode, ns3::zigbee::ApsdeDataIndicationParams::m_dstEndPoint, ns3::zigbee::ApsdeDataIndicationParams::m_linkQuality, m_nwk, ns3::zigbee::ApsdeDataIndicationParams::m_profileId, ns3::zigbee::ApsdeDataIndicationParams::m_rxTime, ns3::zigbee::ApsdeDataIndicationParams::m_securityStatus, ns3::zigbee::ApsdeDataIndicationParams::m_srcAddress16, ns3::zigbee::ApsdeDataIndicationParams::m_srcAddrMode, ns3::zigbee::ApsdeDataIndicationParams::m_srcEndpoint, ns3::zigbee::ApsdeDataIndicationParams::m_status, ns3::zigbee::MCST, ns3::Simulator::Now(), NS_LOG_FUNCTION, ns3::zigbee::SRC_ADDR16_SRC_ENDPOINT_PRESENT, ns3::zigbee::SUCCESS, and ns3::zigbee::UNSECURED.
Referenced by NldeDataIndication().
|
private |
Send a Groupcast to a group address destination.
params | The APSDE data request params |
asdu | The packet to transmit |
Definition at line 320 of file zigbee-aps.cc.
References ns3::zigbee::APS_DATA, ns3::zigbee::APS_GROUP_ADDRESSING, ns3::zigbee::ENABLE_ROUTE_DISCOVERY, ns3::zigbee::INVALID_GROUP, ns3::zigbee::ZigbeeApsTxOptions::IsSecurityEnabled(), m_apsdeDataConfirmCallback, m_apsNonMemberRadius, ns3::zigbee::NldeDataRequestParams::m_discoverRoute, ns3::zigbee::NldeDataRequestParams::m_dstAddr, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddr16, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddr64, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddrMode, ns3::zigbee::NldeDataRequestParams::m_dstAddrMode, ns3::zigbee::ApsdeDataConfirmParams::m_dstEndPoint, ns3::zigbee::NldeDataRequestParams::m_nonMemberRadius, m_nwk, ns3::zigbee::NldeDataRequestParams::m_radius, ns3::zigbee::NldeDataRequestParams::m_securityEnable, ns3::zigbee::ApsdeDataConfirmParams::m_srcEndPoint, ns3::zigbee::ApsdeDataConfirmParams::m_status, ns3::zigbee::ApsdeDataConfirmParams::m_txTime, ns3::zigbee::MCST, ns3::zigbee::ZigbeeNwk::NldeDataRequest(), ns3::Simulator::Now(), NS_LOG_FUNCTION, ns3::Simulator::ScheduleNow(), ns3::zigbee::ZigbeeApsHeader::SetClusterId(), ns3::zigbee::ZigbeeApsHeader::SetDeliveryMode(), ns3::zigbee::ZigbeeApsHeader::SetExtHeaderPresent(), ns3::zigbee::ZigbeeApsHeader::SetFrameType(), ns3::zigbee::ZigbeeApsHeader::SetGroupAddress(), ns3::zigbee::ZigbeeApsHeader::SetProfileId(), and ns3::zigbee::ZigbeeApsHeader::SetSrcEndpoint().
Referenced by ApsdeDataRequest().
|
private |
Send a regular UCST or BCST data transmission to a known 16-bit address destination.
params | The APSDE data request params |
asdu | The packet to transmit |
Definition at line 244 of file zigbee-aps.cc.
References ns3::zigbee::APS_BCST, ns3::zigbee::APS_DATA, ns3::zigbee::APS_UCST, ns3::zigbee::ENABLE_ROUTE_DISCOVERY, ns3::zigbee::ZigbeeApsTxOptions::IsAckRequired(), ns3::zigbee::ZigbeeApsTxOptions::IsSecurityEnabled(), ns3::zigbee::NldeDataRequestParams::m_aliasSeqNumber, ns3::zigbee::NldeDataRequestParams::m_aliasSrcAddr, m_apsCounter, m_apsdeDataConfirmCallback, ns3::zigbee::NldeDataRequestParams::m_discoverRoute, ns3::zigbee::NldeDataRequestParams::m_dstAddr, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddr16, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddr64, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddrMode, ns3::zigbee::NldeDataRequestParams::m_dstAddrMode, ns3::zigbee::ApsdeDataConfirmParams::m_dstEndPoint, m_nwk, ns3::zigbee::NldeDataRequestParams::m_radius, ns3::zigbee::NldeDataRequestParams::m_securityEnable, ns3::zigbee::ApsdeDataConfirmParams::m_srcEndPoint, ns3::zigbee::ApsdeDataConfirmParams::m_status, ns3::zigbee::ApsdeDataConfirmParams::m_txTime, ns3::zigbee::NldeDataRequestParams::m_useAlias, ns3::zigbee::ZigbeeNwk::NldeDataRequest(), ns3::zigbee::NOT_SUPPORTED, ns3::Simulator::Now(), NS_LOG_FUNCTION, ns3::Simulator::ScheduleNow(), ns3::zigbee::ZigbeeApsHeader::SetApsCounter(), ns3::zigbee::ZigbeeApsHeader::SetClusterId(), ns3::zigbee::ZigbeeApsHeader::SetDeliveryMode(), ns3::zigbee::ZigbeeApsHeader::SetDstEndpoint(), ns3::zigbee::ZigbeeApsHeader::SetExtHeaderPresent(), ns3::zigbee::ZigbeeApsHeader::SetFrameType(), ns3::zigbee::ZigbeeApsHeader::SetProfileId(), ns3::zigbee::ZigbeeApsHeader::SetSrcEndpoint(), and ns3::zigbee::UCST_BCST.
Referenced by ApsdeDataRequest().
|
private |
Send a Groupcast or IEEE address destination from a list of destination in the binding table.
params | The APSDE data request params |
asdu | The packet to transmit |
Definition at line 170 of file zigbee-aps.cc.
References ns3::zigbee::APS_DATA, ns3::zigbee::APS_UCST, ns3::zigbee::DST_ADDR64_DST_ENDPOINT_PRESENT, ns3::zigbee::ENABLE_ROUTE_DISCOVERY, ns3::zigbee::ZigbeeApsTxOptions::IsSecurityEnabled(), m_apsBindingTable, m_apsCounter, m_apsdeDataConfirmCallback, ns3::zigbee::NldeDataRequestParams::m_discoverRoute, ns3::zigbee::NldeDataRequestParams::m_dstAddr, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddr16, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddr64, ns3::zigbee::ApsdeDataConfirmParams::m_dstAddrMode, ns3::zigbee::NldeDataRequestParams::m_dstAddrMode, ns3::zigbee::ApsdeDataConfirmParams::m_dstEndPoint, m_nwk, ns3::zigbee::NldeDataRequestParams::m_radius, ns3::zigbee::NldeDataRequestParams::m_securityEnable, ns3::zigbee::ApsdeDataConfirmParams::m_srcEndPoint, ns3::zigbee::ApsdeDataConfirmParams::m_status, ns3::zigbee::ApsdeDataConfirmParams::m_txTime, ns3::zigbee::ZigbeeNwk::NldeDataRequest(), ns3::zigbee::NO_BOUND_DEVICE, ns3::Simulator::Now(), NS_LOG_FUNCTION, NS_LOG_WARN, ns3::Simulator::ScheduleNow(), ns3::zigbee::ZigbeeApsHeader::SetApsCounter(), ns3::zigbee::ZigbeeApsHeader::SetClusterId(), ns3::zigbee::ZigbeeApsHeader::SetDeliveryMode(), ns3::zigbee::ZigbeeApsHeader::SetExtHeaderPresent(), ns3::zigbee::ZigbeeApsHeader::SetFrameType(), ns3::zigbee::ZigbeeApsHeader::SetProfileId(), ns3::zigbee::ZigbeeApsHeader::SetSrcEndpoint(), ns3::zigbee::SUCCESS, and ns3::zigbee::UCST_BCST.
void ns3::zigbee::ZigbeeAps::SetApsdeDataConfirmCallback | ( | ApsdeDataConfirmCallback | c | ) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework).
The callback implements the callback used in a APSDE-DATA.confirm
c | the ApsdeDataConfirm callback |
Definition at line 633 of file zigbee-aps.cc.
References m_apsdeDataConfirmCallback.
void ns3::zigbee::ZigbeeAps::SetApsdeDataIndicationCallback | ( | ApsdeDataIndicationCallback | c | ) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework).
The callback implements the callback used in a APSDE-DATA.indication
c | the ApsdeDataIndication callback |
Definition at line 639 of file zigbee-aps.cc.
References m_apsdeDataIndicationCallback.
void ns3::zigbee::ZigbeeAps::SetApsmeAddGroupConfirmCallback | ( | ApsmeAddGroupConfirmCallback | c | ) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework).
The callback implements the callback used in a APSME-ADD-GROUP.confirm
c | the ApsmeAddGroupConfirm callback |
Definition at line 657 of file zigbee-aps.cc.
References m_apsmeAddGroupConfirmCallback.
void ns3::zigbee::ZigbeeAps::SetApsmeBindConfirmCallback | ( | ApsmeBindConfirmCallback | c | ) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework).
The callback implements the callback used in a APSME-BIND.confirm
c | the ApsmeBindConfirm callback |
Definition at line 645 of file zigbee-aps.cc.
References m_apsmeBindConfirmCallback.
void ns3::zigbee::ZigbeeAps::SetApsmeRemoveAllGroupsConfirmCallback | ( | ApsmeRemoveAllGroupsConfirmCallback | c | ) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework).
The callback implements the callback used in a APSME-REMOVE-ALL-GROUPS.confirm
c | the ApsmeRemoveAllGroupsConfirm callback |
Definition at line 669 of file zigbee-aps.cc.
References m_apsmeRemoveAllGroupsConfirmCallback.
void ns3::zigbee::ZigbeeAps::SetApsmeRemoveGroupConfirmCallback | ( | ApsmeRemoveGroupConfirmCallback | c | ) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework).
The callback implements the callback used in a APSME-REMOVE-GROUP.confirm
c | the ApsmeRemoveGroupConfirm callback |
Definition at line 663 of file zigbee-aps.cc.
References m_apsmeRemoveGroupConfirmCallback.
void ns3::zigbee::ZigbeeAps::SetApsmeUnbindConfirmCallback | ( | ApsmeUnbindConfirmCallback | c | ) |
Set the callback as part of the interconnections between the APS and the next layer or service (typically the application framework).
The callback implements the callback used in a APSDE-UNBIND.confirm
c | the ApsdeUnbindConfirm callback |
Definition at line 651 of file zigbee-aps.cc.
References m_apsmeUnbindConfirmCallback.
void ns3::zigbee::ZigbeeAps::SetGroupTable | ( | Ptr< ZigbeeGroupTable > | groupTable | ) |
Get the group table used by this Zigbee APS.
groupTable | The pointer to the group table to set. |
Definition at line 81 of file zigbee-aps.cc.
References m_apsGroupTable.
Set the underlying NWK to use in this Zigbee APS.
nwk | The pointer to the underlying Zigbee NWK to set to this Zigbee APS |
Definition at line 75 of file zigbee-aps.cc.
References m_nwk.
|
private |
The binding table used by this Zigbee APS.
Zigbee Specification r22.1.0, Section 2.2.7.2
Definition at line 620 of file zigbee-aps.h.
Referenced by ApsmeBindRequest(), and SendDataWithBindingTable().
|
private |
The sequence number used in packet Tx with APS headers.
Zigbee Specification r22.1.0, Section 2.2.7.2
Definition at line 614 of file zigbee-aps.h.
Referenced by SendDataUcstBcst(), and SendDataWithBindingTable().
|
private |
This callback is used to to notify the results of a data transmission request to the Application framework (AF) making the request.
See Zigbee specification r22.1.0, Section 2.2.4.1.2
Definition at line 554 of file zigbee-aps.h.
Referenced by ApsdeDataRequest(), DoDispose(), SendDataGroup(), SendDataUcstBcst(), SendDataWithBindingTable(), and SetApsdeDataConfirmCallback().
|
private |
This callback is used to to notify the reception of data to the Application framework (AF).
See Zigbee specification r22.1.0, Section 2.2.4.1.3
Definition at line 561 of file zigbee-aps.h.
Referenced by NldeDataIndication(), ReceiveData(), and SetApsdeDataIndicationCallback().
|
private |
The group table used by this Zigbee APS.
The group table is a shared resource with the NWK layer. Zigbee Specification r22.1.0, Section 2.2.7.2
Definition at line 608 of file zigbee-aps.h.
Referenced by ApsmeAddGroupRequest(), ApsmeRemoveAllGroupsRequest(), ApsmeRemoveGroupRequest(), ReceiveData(), and SetGroupTable().
|
private |
This callback is used to to notify the result of endpoint addition request in the APS to the Application framework (AF).
See Zigbee specification r22.1.0, Section 2.2.4.5.2
Definition at line 582 of file zigbee-aps.h.
Referenced by ApsmeAddGroupRequest(), and SetApsmeAddGroupConfirmCallback().
|
private |
This callback is used to to notify the result of a binding request in the APS to the Application framework (AF).
See Zigbee specification r22.1.0, Section 2.2.4.3.2
Definition at line 568 of file zigbee-aps.h.
Referenced by ApsmeBindRequest(), and SetApsmeBindConfirmCallback().
|
private |
This callback is used to to notify the result of a endpoint removal request in the APS to the Application framework (AF).
See Zigbee specification r22.1.0, Section 2.2.4.5.5
Definition at line 596 of file zigbee-aps.h.
Referenced by ApsmeRemoveAllGroupsRequest(), and SetApsmeRemoveAllGroupsConfirmCallback().
|
private |
This callback is used to to notify the result of a endpoint removal request in the APS to the Application framework (AF).
See Zigbee specification r22.1.0, Section 2.2.4.5.4
Definition at line 589 of file zigbee-aps.h.
Referenced by ApsmeRemoveGroupRequest(), and SetApsmeRemoveGroupConfirmCallback().
|
private |
This callback is used to to notify the result of a unbinding request in the APS to the Application framework (AF).
See Zigbee specification r22.1.0, Section 2.2.4.3.4
Definition at line 575 of file zigbee-aps.h.
Referenced by SetApsmeUnbindConfirmCallback().
|
private |
The APS non-member radius, used to limit the number of hops for non-member multicast group devices when using NWK layer multicast.
Valid range 0x00 to 0x07. Zigbee Specification r22.1.0, Section 2.2.7.2
Definition at line 628 of file zigbee-aps.h.
Referenced by GetTypeId(), and SendDataGroup().
The underlying Zigbee NWK connected to this Zigbee APS.
Definition at line 601 of file zigbee-aps.h.
Referenced by DoDispose(), GetNwk(), ReceiveData(), SendDataGroup(), SendDataUcstBcst(), SendDataWithBindingTable(), and SetNwk().