SWNRG / ASSET

A centralized (SDN-paradigm) controller to monitor IoT networks. In this implementation, it cooperates with Cooja, the contiki emulator to monitor RPL networks
GNU General Public License v3.0
3 stars 3 forks source link

How to make the controller link to sink? #2

Open Gao-k opened 2 years ago

Gao-k commented 2 years ago

Hello,George. I am very interested in the implementation of controller. And I run the project, but I don't know how to make controller link to sink by serial 2 pty. Could you teach me more detailed? Thanks very much!

georgevio commented 2 years ago

Hi, thanks for the interest. Look at file https://github.com/SWNRG/ASSET/blob/master/src/com/uom/georgevio/SerialPortProbe.java

it looks for (pseudo) port "/dev/pts/XX" where XX is a number (random?) assigned by cooja. Right-click on the sink, open the serial port, check the port number, and make sure that the SerialPortProbe.java includes the port number into the search. For unknown reasons (maybe Java-related or something) SOMETIMES, it might not work. In such a case, close the ASSET, and open it again. Please, do not hesitate to ask me more things. We can arrange a zoom anytime you wish,

Good luck with your endeavors George

On Sat, Dec 11, 2021 at 6:18 AM Gao-k @.***> wrote:

Hello,George. I am very interested in the implementation of controller. And I run the project, but I don't know how to make controller link to sink by serial 2 pty. Could you teach me more detailed? Thanks very much!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/SWNRG/ASSET/issues/2, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM67OU353TA4PZXJD65HSDUQK7HVANCNFSM5J2PXQXQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Gao-k commented 2 years ago

Thanks,George. I do like this: (1)right click on the sink(contiki-standard-extra-functions/examples/ipv6/rpl-udp-fresh/udp-server.c), Mote tools for Z1 1 -> Serial 2 Pty, then I get the port /dev/pts/4; (2)in SerialPortProbe.java, I set searchFromNum = 1, searchUpToNum = 11. (3)Then I run Main.java in Eclipse. (4)In cooja, I click the start. (5)In ASSET IDS, I click the start button. Then I get somethings like this: Waiting for "Start" button Starting application... Thread is RUNNABLE Opening port: dev/pts/1 Opening port: dev/pts/2 ... Opening port: dev/pts/10 Serial Port not found from pts/1 to pts/11. Sleeping for 3 sec...

How to solve it? Could you give me a hand?

georgevio commented 2 years ago

Good, you are on the right track! Sometimes it does such things, I never had the time to find out why :(

Things to do: First run cooja, and then start ASSET If it does not find the port, restart cooja (not ASSET). Try to close the port of the sink, and open it again, sometimes it changes number. Make sure the port is visible and accessible. Before testing it with ASSET, try Linux commands (I don't remember them after all those years...) to make sure you have access to this (pseudo) port. This was ALWAYS the most difficult part for me, how to communicate with the serial port. If you accomplish this, the rest is piece of cake...

Btw, I started today some new experiments, so I will deal with contiki/cooja/ASSET again heavily in the next weeks. If I find something or update the code, I will let you know ASAP.

Bother me again any time G

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Sat, Dec 11, 2021 at 1:59 PM Gao-k @.***> wrote:

Thanks,George. I do like this: (1)right click on the sink(contiki-standard-extra-functions/examples/ipv6/rpl-udp-fresh/udp-server.c), Mote tools for Z1 1 -> Serial 2 Pty, then I get the port /dev/pts/4; (2)in SerialPortProbe.java, I set searchFromNum = 1, searchUpToNum = 11. (3)Then I run Main.java in Eclipse. (4)In cooja, I click the start. (5)In ASSET IDS, I click the start button. Then I get somethings like this: Waiting for "Start" button Starting application... Thread is RUNNABLE Opening port: dev/pts/1 Opening port: dev/pts/2 ... Opening port: dev/pts/10 Serial Port not found from pts/1 to pts/11. Sleeping for 3 sec...

How to solve it? Could you give me a hand?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/SWNRG/ASSET/issues/2#issuecomment-991599336, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM67OWPSJ5ACJZEQBFWNHLUQMVITANCNFSM5J2PXQXQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Gao-k commented 2 years ago

Thank you! The ASSET folder is under contiki/tools/cooja? I think I put ASSET in wrong place, where should I put ASSET folder?

georgevio commented 2 years ago

Asset folder is totally irrelevant to Contiki. Put it in your Java projects or else. I suggest NOT to put it inside the contiki folder, you never know what you are going to do there...

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Sun, Dec 12, 2021 at 9:41 AM Gao-k @.***> wrote:

Thank you! The ASSET folder is under contiki/tools/cooja? I think I put ASSET in wrong place, where should I put ASSET folder?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/SWNRG/ASSET/issues/2#issuecomment-991843718, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM67OXGFSLH45I4OWZLPTLUQQ7ZPANCNFSM5J2PXQXQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Gao-k commented 2 years ago

Thank you very much, George! I have done it. I make a few mistakes earlier. Looking forward to your new experiments! Wish you good luck! But there is still a bug. When I click start, it always produces a red circular node(0) in GraphStream FX, others select it as parent and leave the sink node alone.

georgevio commented 2 years ago

That is new! Are you creating the sink as the first node in cooja? send me a screenshot, or more info, I am very curious

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Sun, Dec 12, 2021 at 6:51 PM Gao-k @.***> wrote:

Thank you very much, George! I have done it. I make a few mistakes earlier. Looking forward to your new experiments! Wish you good luck! But there is still a bug. When I click start, it always produces a red circular node(0) in GraphStream FX, others select it as parent and leave the sink node alone.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/SWNRG/ASSET/issues/2#issuecomment-991921844, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM67ORO3TIEZYJIIATS6DTUQTAIJANCNFSM5J2PXQXQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Gao-k commented 2 years ago

Yes, I create the sink as first node in cooja, then I add four client. But in GraphStream FX, you can see following picture. image In ASSET IDS, I don't know why there is 0 node.

georgevio commented 2 years ago

Node 5 is declaring a parent 0. Now this 0 is truncated from IPv6, the last octet. Please, have a look and send me a screenshot of cooja, I want to see the topology and the nodes' outputs. Questions: Are you sending too many UDP packets? Lower it a little bit just to check. What speed are you running the cooja simulation? Change it and again play with it. Are the nodes in cooja within the wireless coverage (be careful with the gray area coverage, it does not usually work)? If you are using different TX/RX and success rates<100% strange things happen Final solution: After I manage to set up my machine (You know Merfy's law, suddenly nothing works, I cannot compile anything, something crazy happened with the msp430-gcc compiler), you can send me the *.csc of cooja, along with the code of the nodes, so I can run it here and see the result.

Keep me posted.

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

On Mon, Dec 13, 2021 at 5:41 AM Gao-k @.***> wrote:

Yes, I create the sink as first node in cooja, then I add four client. But in GraphStream FX, you can see following picture. [image: image] https://user-images.githubusercontent.com/73471177/145743848-8b14324d-85eb-40f6-84d5-e28cd40266c1.png In ASSET IDS, I don't know why there is 0 node.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/SWNRG/ASSET/issues/2#issuecomment-992057659, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM67ORTDJMSGXI6I75ULD3UQVMOVANCNFSM5J2PXQXQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Gao-k commented 2 years ago

The screenshot of cooja(I run the testing-with-Central.csc in your contiki folder): image I am testing. Why does node 5 declare the node 0?

georgevio commented 2 years ago

Everything looks good Please, try to close the Serial socket, it is not necessary (do you need it?), the Serial 2 pty is enough.

Please, export all logs from cooja (click-edit-select all) and send them to me. along with copying the logs of ASSET. This looks very strange... I have no obvious explanation.

Also, try the following: Delete node 5 (maybe it is just a glitch...), add another node (it will be number 6). Does it change things? Change positions of the nodes, while the experiment runs. Wait a few minutes, ASSET should detect the changes and act accordingly altering the topology depicted. Enable the "Print edges info on/off" button of ASSET. Does it change anything? Try a completely different setup from scratch. Try different udp-server/udp-client of the many I have created (Maybe I did something funny with them...)

Good work

On Mon, Dec 13, 2021 at 4:23 PM Gao-k @.***> wrote:

The screenshot of cooja(I run the testing-with-Central.csc in your contiki folder): [image: image] https://user-images.githubusercontent.com/73471177/145819652-c9ee12ca-d59c-4244-9a1b-9be7fc1e08ec.png I am testing. Why does node 5 declare the node 0?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/SWNRG/ASSET/issues/2#issuecomment-992472162, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM67ORXPYPQUNOXW4WS7PDUQXXTPANCNFSM5J2PXQXQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Gao-k commented 2 years ago

I try the full-tests folder, it works well. image

georgevio commented 2 years ago

Very good! That is what it is supposed to be! Now, about the previous erroneous experiment, maybe it was a glitch, maybe I changed something and didn't test it enough (don't overanalyze it). Continue with the code that actually works...

Keep me in the loop for any updates...

P.S, Please, do me a favor if you can: write in terminal "gcc-msp430 -v" and tell me the output? I am having problems, I cannot compile any code, I get errors about code not fitting to memory. I remember, years ago, I installed an altered version of the gcc-msp430 compiler, but I don't remember what anymore... :(

On Tue, Dec 14, 2021 at 5:09 AM Gao-k @.***> wrote:

I try the full-tests folder, it works well. [image: image] https://user-images.githubusercontent.com/73471177/145919956-f1269a79-f6af-4b25-864c-7a45ace13b39.png

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/SWNRG/ASSET/issues/2#issuecomment-993088068, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM67OTFV6DS5CPPRANHZ2LUQ2RMZANCNFSM5J2PXQXQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=icon Virus-free. www.avast.com https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_campaign=sig-email&utm_content=webmail&utm_term=link <#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>

Gao-k commented 2 years ago

image

You can reinstall it. https://github.com/tecip-nes/contiki-tres/wiki/Building-the-latest-version-of-mspgcc

Gao-k commented 2 years ago

Hello, George. Sorry to bother you again. How to make controller send messages to nodes, such as SP, SN or EI?

georgevio commented 2 years ago

Those are messages sent by the controller. I am answering with an example screenshot: [image: Screenshot from 2021-12-18 08-58-48.png] at the left, the controller, (lines in blue) through the graph algorithms (e.g., spanning tree) detected that there was a mention of a node as a parent of another node, but the controller did not know how this node is (if you wish, the message with the information of this node was somehow lost, due to traffic, etc.). So, the controller dispatched "SP" messages to the "rogue" nodes (check the "SP" messages received by the sink node destined to node 3 in cooja to the right). Now, the sink will forward this message to the node in question (remember, only the sink communicates with the rest network), and the node has to respond back with its actual parent/information. After this, the network topology is complete and consistent (consistency is checked for example if the number of nodes is correctly depicted with the number of edges in/out. Only the sink has only out edges). That is the way the controller is creating the full (Correct, and dynamically changing graph). It is interesting (and one of the advantages of ASSET), that if you change the topology in cooja, the controller will soon realize that something is "fishy", and start dispatching such messages, to discover the new topology.

I hope I have helped, Sorry for not answering before, I was crazy busy with urgent family matters.

Anything else, fire up G

On Thu, Dec 16, 2021 at 2:32 PM Gao-k @.***> wrote:

Hello, George. Sorry to bother you again. How to make controller send messages to nodes, such as SP, SN or EI?

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/SWNRG/ASSET/issues/2#issuecomment-995707920, or unsubscribe https://github.com/notifications/unsubscribe-auth/ABM67OWGJDMPGAJ2NSQOAQ3URHE3BANCNFSM5J2PXQXQ . Triage notifications on the go with GitHub Mobile for iOS https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675 or Android https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.