Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pkg/ccn-ndn: migrate to ztimer #17377

Merged
merged 2 commits into from Dec 14, 2021

Conversation

fjmolinas
Copy link
Contributor

Contribution description

This PR migrate the ndn-riot and ccn-lite package to RIOT. With migrating ccn-lite I also ran into a bug where the evtimer was actually initialized later than the event were added to it. I'm not sure why but this issue only triggered when testing on iotlab-m3 with evtimer_on_ztimer.

Testing procedure

examples/ccn-lite-relay
2021-12-10 16:57:56,827 # help
2021-12-10 16:57:56,828 # Command              Description
2021-12-10 16:57:56,828 # ---------------------------------------
2021-12-10 16:57:56,829 # reboot               Reboot the node
2021-12-10 16:57:56,830 # version              Prints current RIOT_VERSION
2021-12-10 16:57:56,830 # pm                   interact with layered PM subsystem
2021-12-10 16:57:56,831 # ps                   Prints information about running threads.
2021-12-10 16:57:56,832 # ifconfig             Configure network interfaces
2021-12-10 16:57:56,833 # ccnl_open            opens an interface or socket
2021-12-10 16:57:56,833 # ccnl_int             sends an interest
2021-12-10 16:57:56,843 # ccnl_cs              shows CS or creates content and populates it
2021-12-10 16:57:56,844 # ccnl_fib             shows or modifies the CCN-Lite FIB
ccnl_cs /riot/peter/schmerzl Hello World! Hello RIOT!
2021-12-10 16:58:08,091 # ccnl_cs /riot/peter/schmerzl Hello World! Hello RIOT!
2021-12-10 16:58:06,198 # help
2021-12-10 16:58:06,199 # Command              Description
2021-12-10 16:58:06,200 # ---------------------------------------
2021-12-10 16:58:06,200 # reboot               Reboot the node
2021-12-10 16:58:06,201 # version              Prints current RIOT_VERSION
2021-12-10 16:58:06,215 # pm                   interact with layered PM subsystem
2021-12-10 16:58:06,216 # ps                   Prints information about running threads.
2021-12-10 16:58:06,216 # ifconfig             Configure network interfaces
2021-12-10 16:58:06,217 # ccnl_open            opens an interface or socket
2021-12-10 16:58:06,218 # ccnl_int             sends an interest
2021-12-10 16:58:06,219 # ccnl_cs              shows CS or creates content and populates it
2021-12-10 16:58:06,219 # ccnl_fib             shows or modifies the CCN-Lite FIB
ccnl_fib add /riot/peter/schmerzl ff:ff:ff:ff:ff:ff
2021-12-10 16:58:28,166 # ccnl_fib add /riot/peter/schmerzl ff:ff:ff:ff:ff:ff
> ccnl_int /riot/peter/schmerzl
2021-12-10 16:58:34,229 # ccnl_int /riot/peter/schmerzl
> 2021-12-10 16:58:34,245 # PKTDUMP: data received:
2021-12-10 16:58:34,246 # ~~ SNIP  0 - size:  24 byte, type: GNRC_NETTYPE_CCN_CHUNK (2)
2021-12-10 16:58:34,247 # Content is: Hello World! Hello RIOT!
2021-12-10 16:58:34,247 # ~~ PKT    -  1 snips, total size:  24 byte
2021-12-10 17:02:48,625 # Exiting Pyterm

NOTE: to reproduce the issue mentioned on master USEMODULE=ztimer_usec BOARD=iotlab-m3 make -C examples/ccn-lite-relay/ clean flash term -j would see the device harfault after 30s.

examples/ndn-ping
2021-12-10 17:08:41,778 # reboot
2021-12-10 17:08:41,779 # main(): This is RIOT! (Version: 2022.01-devel-1134-gb77b2-pr_pkg_ztimer_migrate)
2021-12-10 17:08:41,780 # All up, running the shell now
ndnping server /test 12345
2021-12-10 17:08:49,425 # ndnping server /test 12345
2021-12-10 17:08:49,426 # server (pid=1): start
2021-12-10 17:08:49,427 # ndn: ADD_FACE message received from pid 1
2021-12-10 17:08:49,427 # server (pid=1): register prefix "/test"
2021-12-10 17:08:49,428 # ndn: ADD_FIB message received from pid 1
2021-12-10 17:08:49,429 # server (pid=1): enter app run loop
2021-12-10 17:09:16,368 # ndn: RCV message received from pid 2
2021-12-10 17:09:16,369 # ndn: add new pit entry (face=2)
2021-12-10 17:09:16,384 # ndn: invoke forwarding strategy trigger: after_receive_interest
2021-12-10 17:09:16,385 # ndn: in default strategy trigger: after_receive_interest
2021-12-10 17:09:16,385 # ndn: send to app face 1
2021-12-10 17:09:16,386 # server (pid=1): interest received, name=/test/%14%A6%ED%8E
2021-12-10 17:09:16,592 # server (pid=1): send data to NDN thread, name=/test/%14%A6%ED%8E/9
2021-12-10 17:09:16,593 # ndn: DATA message received from pid 1
2021-12-10 17:09:16,594 # ndn: found matching pit entry for data
2021-12-10 17:09:16,595 # ndn: forwarding strategy does not have trigger: before_satisfy_interest
2021-12-10 17:09:16,596 # ndn: send data to netdev face 2
2021-12-10 17:09:16,596 # server (pid=1): return to the app
2021-12-10 17:09:18,383 # ndn: RCV message received from pid 2
2021-12-10 17:09:18,384 # ndn: add new pit entry (face=2)
2021-12-10 17:09:18,384 # ndn: invoke forwarding strategy trigger: after_receive_interest
2021-12-10 17:09:18,385 # ndn: in default strategy trigger: after_receive_interest
2021-12-10 17:09:18,385 # ndn: send to app face 1
2021-12-10 17:09:18,385 # server (pid=1): interest received, name=/test/%BB%93%29-
2021-12-10 17:09:18,592 # server (pid=1): send data to NDN thread, name=/test/%BB%93%29-/9
2021-12-10 17:09:18,593 # ndn: DATA message received from pid 1
2021-12-10 17:09:18,594 # ndn: found matching pit entry for data
2021-12-10 17:09:18,595 # ndn: forwarding strategy does not have trigger: before_satisfy_interest
2021-12-10 17:09:18,596 # ndn: send data to netdev face 2
2021-12-10 17:09:18,597 # server (pid=1): return to the app
2021-12-10 17:09:20,384 # ndn: RCV message received from pid 2
2021-12-10 17:09:20,384 # ndn: add new pit entry (face=2)
2021-12-10 17:09:20,399 # ndn: invoke forwarding strategy trigger: after_receive_interest
2021-12-10 17:09:20,400 # ndn: in default strategy trigger: after_receive_interest
2021-12-10 17:09:20,401 # ndn: send to app face 1
2021-12-10 17:09:20,402 # server (pid=1): interest received, name=/test/%FB%AF%1Bx
2021-12-10 17:09:20,608 # server (pid=1): send data to NDN thread, name=/test/%FB%AF%1Bx/9
2021-12-10 17:09:20,609 # ndn: DATA message received from pid 1
2021-12-10 17:09:20,610 # ndn: found matching pit entry for data
2021-12-10 17:09:20,612 # ndn: forwarding strategy does not have trigger: before_satisfy_interest
2021-12-10 17:09:20,613 # ndn: send data to netdev face 2
2021-12-10 17:09:20,615 # server (pid=1): return to the app
2021-12-10 17:09:22,400 # ndn: RCV message received from pid 2
2021-12-10 17:09:22,400 # ndn: add new pit entry (face=2)
2021-12-10 17:09:22,401 # ndn: invoke forwarding strategy trigger: after_receive_interest
2021-12-10 17:09:22,402 # ndn: in default strategy trigger: after_receive_interest
2021-12-10 17:09:22,403 # ndn: send to app face 1
2021-12-10 17:09:22,403 # server (pid=1): interest received, name=/test/%FC%26%C0%01
2021-12-10 17:09:22,608 # server (pid=1): send data to NDN thread, name=/test/%FC%26%C0%01/9
2021-12-10 17:09:22,609 # ndn: DATA message received from pid 1
2021-12-10 17:09:22,609 # ndn: found matching pit entry for data
2021-12-10 17:09:22,610 # ndn: forwarding strategy does not have trigger: before_satisfy_interest
2021-12-10 17:09:22,611 # ndn: send data to netdev face 2
2021-12-10 17:09:22,612 # server (pid=1): return to the app
2021-12-10 17:09:24,399 # ndn: RCV message received from pid 2
2021-12-10 17:09:24,399 # ndn: add new pit entry (face=2)
2021-12-10 17:09:24,415 # ndn: invoke forwarding strategy trigger: after_receive_interest
2021-12-10 17:09:24,415 # ndn: in default strategy trigger: after_receive_interest
2021-12-10 17:09:24,416 # ndn: send to app face 1
2021-12-10 17:09:24,416 # server (pid=1): interest received, name=/test/%00%EC%BE%0F
2021-12-10 17:09:24,623 # server (pid=1): send data to NDN thread, name=/test/%00%EC%BE%0F/9
2021-12-10 17:09:24,624 # ndn: DATA message received from pid 1
2021-12-10 17:09:24,624 # ndn: found matching pit entry for data
2021-12-10 17:09:24,624 # ndn: forwarding strategy does not have trigger: before_satisfy_interest
2021-12-10 17:09:24,625 # ndn: send data to netdev face 2
2021-12-10 17:09:24,625 # server (pid=1): return to the app
2021-12-10 17:09:15,361 # ndnping client /test 5
2021-12-10 17:09:15,362 # client (pid=1): start
2021-12-10 17:09:15,363 # ndn: ADD_FACE message received from pid 1
2021-12-10 17:09:15,364 # client (pid=1): schedule first interest in 1 sec
2021-12-10 17:09:15,364 # client (pid=1): enter app run loop
2021-12-10 17:09:16,370 # client (pid=1): in sched callback, count=1
2021-12-10 17:09:16,371 # client (pid=1): express interest, name=/test/%14%A6%ED%8E
2021-12-10 17:09:16,371 # ndn: INTEREST message received from pid 1
2021-12-10 17:09:16,372 # ndn: add new pit entry (face=1)
2021-12-10 17:09:16,373 # ndn: invoke forwarding strategy trigger: after_receive_interest
2021-12-10 17:09:16,374 # ndn: in default strategy trigger: after_receive_interest
2021-12-10 17:09:16,374 # ndn: send to netdev face 2
2021-12-10 17:09:16,375 # client (pid=1): schedule next interest in 2 sec
2021-12-10 17:09:16,594 # ndn: RCV message received from pid 2
2021-12-10 17:09:16,594 # ndn: found matching pit entry for data
2021-12-10 17:09:16,595 # ndn: forwarding strategy does not have trigger: before_satisfy_interest
2021-12-10 17:09:16,596 # ndn: send data to app face 1
2021-12-10 17:09:16,597 # client (pid=1): data received, name=/test/%14%A6%ED%8E/9
2021-12-10 17:09:16,597 # client (pid=1): content=E6EA21E6
2021-12-10 17:09:16,817 # client (pid=1): signature valid
2021-12-10 17:09:18,369 # client (pid=1): in sched callback, count=2
2021-12-10 17:09:18,370 # client (pid=1): express interest, name=/test/%BB%93%29-
2021-12-10 17:09:18,370 # ndn: INTEREST message received from pid 1
2021-12-10 17:09:18,370 # ndn: add new pit entry (face=1)
2021-12-10 17:09:18,371 # ndn: invoke forwarding strategy trigger: after_receive_interest
2021-12-10 17:09:18,385 # ndn: in default strategy trigger: after_receive_interest
2021-12-10 17:09:18,385 # ndn: send to netdev face 2
2021-12-10 17:09:18,385 # client (pid=1): schedule next interest in 2 sec
2021-12-10 17:09:18,609 # ndn: RCV message received from pid 2
2021-12-10 17:09:18,610 # ndn: found matching pit entry for data
2021-12-10 17:09:18,611 # ndn: forwarding strategy does not have trigger: before_satisfy_interest
2021-12-10 17:09:18,612 # ndn: send data to app face 1
2021-12-10 17:09:18,612 # client (pid=1): data received, name=/test/%BB%93%29-/9
2021-12-10 17:09:18,613 # client (pid=1): content=E12F02AE
2021-12-10 17:09:18,833 # client (pid=1): signature valid
2021-12-10 17:09:20,386 # client (pid=1): in sched callback, count=3
2021-12-10 17:09:20,387 # client (pid=1): express interest, name=/test/%FB%AF%1Bx
2021-12-10 17:09:20,388 # ndn: INTEREST message received from pid 1
2021-12-10 17:09:20,388 # ndn: add new pit entry (face=1)
2021-12-10 17:09:20,389 # ndn: invoke forwarding strategy trigger: after_receive_interest
2021-12-10 17:09:20,390 # ndn: in default strategy trigger: after_receive_interest
2021-12-10 17:09:20,391 # ndn: send to netdev face 2
2021-12-10 17:09:20,392 # client (pid=1): schedule next interest in 2 sec
2021-12-10 17:09:20,610 # ndn: RCV message received from pid 2
2021-12-10 17:09:20,611 # ndn: found matching pit entry for data
2021-12-10 17:09:20,613 # ndn: forwarding strategy does not have trigger: before_satisfy_interest
2021-12-10 17:09:20,614 # ndn: send data to app face 1
2021-12-10 17:09:20,616 # client (pid=1): data received, name=/test/%FB%AF%1Bx/9
2021-12-10 17:09:20,616 # client (pid=1): content=C9638558
2021-12-10 17:09:20,833 # client (pid=1): signature valid
2021-12-10 17:09:22,386 # client (pid=1): in sched callback, count=4
2021-12-10 17:09:22,387 # client (pid=1): express interest, name=/test/%FC%26%C0%01
2021-12-10 17:09:22,387 # ndn: INTEREST message received from pid 1
2021-12-10 17:09:22,388 # ndn: add new pit entry (face=1)
2021-12-10 17:09:22,389 # ndn: invoke forwarding strategy trigger: after_receive_interest
2021-12-10 17:09:22,390 # ndn: in default strategy trigger: after_receive_interest
2021-12-10 17:09:22,401 # ndn: send to netdev face 2
2021-12-10 17:09:22,402 # client (pid=1): schedule next interest in 2 sec
2021-12-10 17:09:22,625 # ndn: RCV message received from pid 2
2021-12-10 17:09:22,626 # ndn: found matching pit entry for data
2021-12-10 17:09:22,627 # ndn: forwarding strategy does not have trigger: before_satisfy_interest
2021-12-10 17:09:22,628 # ndn: send data to app face 1
2021-12-10 17:09:22,628 # client (pid=1): data received, name=/test/%FC%26%C0%01/9
2021-12-10 17:09:22,629 # client (pid=1): content=BD5AA9E3
2021-12-10 17:09:22,833 # client (pid=1): signature valid
2021-12-10 17:09:24,401 # client (pid=1): in sched callback, count=5
2021-12-10 17:09:24,401 # client (pid=1): express interest, name=/test/%00%EC%BE%0F
2021-12-10 17:09:24,401 # ndn: INTEREST message received from pid 1
2021-12-10 17:09:24,402 # ndn: add new pit entry (face=1)
2021-12-10 17:09:24,402 # ndn: invoke forwarding strategy trigger: after_receive_interest
2021-12-10 17:09:24,403 # ndn: in default strategy trigger: after_receive_interest
2021-12-10 17:09:24,403 # ndn: send to netdev face 2
2021-12-10 17:09:24,403 # client (pid=1): schedule next interest in 2 sec
2021-12-10 17:09:24,625 # ndn: RCV message received from pid 2
2021-12-10 17:09:24,625 # ndn: found matching pit entry for data
2021-12-10 17:09:24,625 # ndn: forwarding strategy does not have trigger: before_satisfy_interest
2021-12-10 17:09:24,626 # ndn: send data to app face 1
2021-12-10 17:09:24,626 # client (pid=1): data received, name=/test/%00%EC%BE%0F/9
2021-12-10 17:09:24,626 # client (pid=1): content=D7C33BAA
2021-12-10 17:09:24,849 # client (pid=1): signature valid
2021-12-10 17:09:26,401 # client (pid=1): in sched callback, count=6
2021-12-10 17:09:26,402 # client (pid=1): stop the app
2021-12-10 17:09:26,402 # client (pid=1): returned from app run loop
2021-12-10 17:09:26,403 # ndn: REMOVE_FACE message received from pid 1

@fjmolinas fjmolinas added the Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors) label Dec 10, 2021
@github-actions github-actions bot added the Area: pkg Area: External package ports label Dec 10, 2021
@fjmolinas fjmolinas added CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR and removed CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR labels Dec 13, 2021
Copy link
Contributor

@kaspar030 kaspar030 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ACK. Changes look fine. Trusting @fjmolinas's testing.

@fjmolinas fjmolinas merged commit 9361c98 into RIOT-OS:master Dec 14, 2021
@fjmolinas fjmolinas deleted the pr_pkg_ztimer_migrate branch December 14, 2021 13:10
@fjmolinas fjmolinas added this to the Release 2022.01 milestone Jan 21, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area: pkg Area: External package ports CI: ready for build If set, CI server will compile all applications for all available boards for the labeled PR Type: bug The issue reports a bug / The PR fixes a bug (including spelling errors)
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants