Comments (6)
Integration of Whitefield in Renode will be terrific. Currently, Whitefield does not emulate device archs. I had plans to do it for MSP430 in ways similar to Cooja, but Renode is revolutionary in its design.
I have a few questions:
- Can renode actually take the target binaries? For e.g., CC2538DK Contiki/RIOT/Zephyr binary and execute on the simulated device on Linux as a process? Renode Github front page indicates so.
- Can it also handle network transceivers? Or other add on the base platform?
- Is Energy consumption/modeling also handled in renode?
I will try renode with cc2538 in the near future and check how well it works.
Currently, Whitefield supports 802.15.4 interface and integrates well with native mode Contiki/RIOT/Contiki-NG. OpenThread support is not finished. There is a demo-mode Cytoscape env to visualize the network at runtime.
For Whitefield, my plans for 2020 is:
- To integrate Power Line Communication interface and Lorawan interfaces.
- Using plug-n-play model for binaries. Compile native mode binaries on your host system and upload those to Whitefield.
- Support simulation time. Currently, Whitefield operates in real-time hence the experimentation may take long. I have a design to use Whitefield in simulation time such that days/weeks of experimentation could be finished in a few secs/mins.
- Use Cytoscape to allow users to design their networks.
- Use cloud-based model wherein users could design their network, upload their binaries, get notifications for results and get their experiment results archived.
from whitefield.
I brought up the idea to @mgielda in the OSS+ELC conference slack - perhaps he can connect you with someone from the team who might be able to answer your questions!
from whitefield.
This sounds like a really good idea. At the moment Renode is able to simulate wireless network on a basic level, with configurable signal range and random packet loss, but our focus is mainly on simulating full SoCs and not the communication medium.
To answer your questions:
1 In Renode you can create an environment of one or multiple nodes, possibly connected together over different types of wired and wireless connections.
Our goal is to enable running exactly the same software you're able to run on hardware.
Apart from having internal connections between nodes, you can connect them to your host machine in different ways - via pseudoterminal, TAP interface and others.
The framework itself runs on Linux, macOS and Windows, with Linux having the best support for host-to-guest connections (which I mention as it's probably something that could be used for integration with Whitefield).
-
If I understand your question correctly, yes. Renode can simulate the whole SoCs, with all the peripherals. We model them on a behavioral, register level, so that the software perceives our models as real devices. Having said that, we usually focus on peripherals that are interesting for us in use cases we have, mocking or ignoring the ones that are not crucial. You can look at https://github.com/renode/renode/tree/master/platforms/cpus to get a broad idea of what platforms and what peripherals in them we support.
-
Right now we don't do energy consumption, but it would be possible to estimate it by analyzing interactions with specific peripherals etc. People are asking about these kind of estimations, so maybe in future we'll go that path.
If you have any more questions regarding our modelling, integrations or time flow, please let me know.
CC2538 is definitely a good place to start. We have a 3 node sample setup you can run by calling s @scripts/multi-node/cc2538/rpl-udp.resc
in Renode's CLI.
If you open this file you'll find some comments explaining how did we set it up.
from whitefield.
That's correct. I believe it was built from https://github.com/contiki-ng/contiki-ng/tree/develop/examples/rpl-udp (there are Renode scripts in there, although they might be a bit outdated, haven't checked them in a while).
In general yes, your own binary should work. This being said, as Contiki is improved over time, it can use some registers we did not implement at a time we were working at this demo.
from whitefield.
Great you like Renode and think integration would be a good idea! Adding @PiotrZierhoffer here to elaborate on technical details
from whitefield.
Thank you @PiotrZierhoffer for the detailed description. This clarifies things for me.
One Q:
rpl-udp.resc, file uses the binary https://dl.antmicro.com/projects/renode/udp-server.elf-s_173732-a2aefb896d521a8fdc2a052cac1933c68cc39bf5
... I assume that this binary was created using Contiki (ng?), without any modifications to their platforms/drivers code. If this is true, then I can simply substitute my Contiki bins (made for target CC2538dk) in that place? Just confirming. Thanks
from whitefield.
Related Issues (20)
- Power Line Communication support in Whitefield HOT 12
- Injecting new nodes in the network at runtime HOT 2
- Whitefield can't run 2 instances from different users HOT 3
- Running multiple Whitefield instances on the same machine HOT 1
- Support multiple PLC leaf nodes HOT 6
- Support for different RPL objective functions HOT 2
- Count packets for specific nodes HOT 1
- Pcap doesn't include all packets captured
- Atomic_sync.c file compilation error when activating RIOT HOT 2
- WhiteField is not getting configured on Ubuntu 20.04. HOT 1
- Support for randomized IIDs in AirLine/Stackline
- Add JQ dependency in setp script HOT 1
- setup.sh issues HOT 1
- Whitefield Framework in my application HOT 6
- Whitefield with contiki-ng HOT 44
- NODEID renumbering issue HOT 11
- Multiple BR/udp-servers in parallel HOT 10
- cmake support HOT 1
- Colorize the graph nodes based on nodeExec type HOT 6
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from whitefield.