What's the difference for each data requests: NLDE vs APSDE vs AF

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

What's the difference for each data requests: NLDE vs APSDE vs AF

Jump to solution
2,133 Views
freshmango90
Contributor III

This is in BeeStack. Most applications I saw use APSDE-Data.request, but there's also NLDE-Data.request. What advantages does APSDE has over NLDE in terms of data request, and vice versa? What would happen if I started to use NLDE instead of APSDE? I noticed that there's AF_DataRequest as well, and the book by Drew Gislason says that's all you need in order to send/receive data (page 112).

Labels (1)
Tags (1)
1 Solution
1,558 Views
jc_pacheco
NXP Employee
NXP Employee

The difference between the APSDE-Data.Request and NLDE-Data.Request is related to the layer of the Zigbee PRO stack to which the data request is sent, the APS and respectively the NWK layers in this case. This is not implementation specific and the functionality of these layers is described in the Zigbee PRO specification.

An APSDE-Data.Request will translate, in most cases, into a NLDE-Data.Request. The APS layer adds functionalities related to fragmentation, acknowledgements, application endpoints, etc. If the developer is interested in any of the functionalities offered by the APS layer then the APSDE-Data.Request should be used. However, it is recommended that an application make use of the API provided by the AF(Application Framework) layer, which sits above the APS layer, as Francisco already mentioned in his response. More information on the differences between the APS and NWK layers can be found in the Zigbee PRO specification (link provided by Francisco).

View solution in original post

5 Replies
1,558 Views
freshmango90
Contributor III

I'd like to post the answer that I like the most here. Thank you Carlos Cuevas.

I think you are not familiar with software layer architecture. A multilayered software architecture is a software architecture that uses many layers for allocating the different responsibilities of a software product. So, a multilayer architecture is intended to provide the user functions that are easier to use in the higher layer. All the lower layers provide services to higher layers.

For example:

If you have a UART driver you may call function UART_init(parameters), however you can also configure the UART writing directly to the UART registers. In this case you will skip and will not take advantage of higher layer

1,559 Views
jc_pacheco
NXP Employee
NXP Employee

The difference between the APSDE-Data.Request and NLDE-Data.Request is related to the layer of the Zigbee PRO stack to which the data request is sent, the APS and respectively the NWK layers in this case. This is not implementation specific and the functionality of these layers is described in the Zigbee PRO specification.

An APSDE-Data.Request will translate, in most cases, into a NLDE-Data.Request. The APS layer adds functionalities related to fragmentation, acknowledgements, application endpoints, etc. If the developer is interested in any of the functionalities offered by the APS layer then the APSDE-Data.Request should be used. However, it is recommended that an application make use of the API provided by the AF(Application Framework) layer, which sits above the APS layer, as Francisco already mentioned in his response. More information on the differences between the APS and NWK layers can be found in the Zigbee PRO specification (link provided by Francisco).

1,558 Views
franciscomezana
NXP Employee
NXP Employee

Hi, I hope you’re doing well. Regarding the difference between these three commands the AF_DataRequest, only retrieves back the number of AF_DataRequest and DataConfirms from Test Driver and it should be used to send data from one node to another in the platform, for example, simply call:

                AF_DataRequest(&addrInfo, iDataSize, pPtrToData, NULL);

                 And that's it. As you mention yes, this works directly with ZigBee and takes care of the rest.

Regarding NLDE-Data.request: This command is generated by the APS and is sent to the network layer for the transfer of the protocol data unit (PDU). This network layer adds its header to the PDU, creating a network service data unit (NSDU) and then transmits an NLDE-DATA.confirm to the APS to indicate reception of the NSDU.

Regarding the APSDE-Data.request, this sends a data packet and as its name mention the command is used to send specific data to the coordinator. The only difference is the over the air behavior.

You can see more information here: http://home.deib.polimi.it/cesana/teaching/IoT/papers/ZigBee/ZigBeeSpec.pdf

I hope this information helps.

1,558 Views
freshmango90
Contributor III

Hi Francisco, Thank you for your answer. I guess I'm asking about the over the air behaviour, because basically, both do the same functionality, but different layers. So what advantage does the NLDE-Data.request over APSDE-Data.request, and vice versa.

0 Kudos
1,558 Views
freshmango90
Contributor III

No answers anyone? As far as I understand, AF request is working directly on the zigbee, but nlde and apsde data request is done through the command (to clarify if needed, I'm working with Black box application.)

0 Kudos