[riot-devel] RIOT Vs Iotivity, AllJoyn, Thread

Iván Briano ivan.briano at intel.com
Thu Jun 16 18:53:53 CEST 2016


On Thu, 16 Jun 2016 11:40:13 +0200, Baptiste Clenet wrote:
> 2016-06-09 1:29 GMT+02:00 Martine Lenders <mail at martine-lenders.eu>:
> 
> > Hi,
> >
> > 2016-06-08 20:29 GMT+02:00 Iván Briano <ivan.briano at intel.com>:
> >
> >> On Wed, 08 Jun 2016 19:58:50 +0200, Baptiste Clenet wrote:
> >> > 2016-06-08 17:14 GMT+02:00 Emmanuel Baccelli <
> >> Emmanuel.Baccelli at inria.fr>:
> >> >
> >> > > Hi Ivan,
> >> > > it would be great to have it as a pkg indeed!
> >> > > That's the standard way third-party stacks are integrated in RIOT.
> >> > > Looking forward to that,
> >> > > Emmanuel
> >> > >
> >> > > On Wed, Jun 8, 2016 at 3:41 PM, Iván Briano <ivan.briano at intel.com>
> >> wrote:
> >> > >
> >> > >> On Wed, 08 Jun 2016 09:46:31 +0200, Baptiste Clenet wrote:
> >> > >> > Thanks for your answers.
> >> > >> > Could we integrate Soletta OIC implementation part as a pkg in
> >> RIOT?
> >> > >> >
> >> > >>
> >> > >> The OIC implementation is tightly integrated to the core of Soletta,
> >> so
> >> > >> you need the whole thing in.
> >> > >
> >> > > Yes but could we find a way to separate it a bit so we can run a OIC
> >> > server using GNRC quickly?
> >>
> >> That's not straight forward. The OIC implementation uses the CoAP one in
> >> Soletta, which uses the socket abstractions as well. GNRC is all the way
> >> under that. Using Soletta means that you'll need one thread to run the
> >> main loop, from where all events will be dispatched.
> >>
> >
> > Do you use your own implementation of CoAP? (or microcoap or libcoap)
> Soletta definies socket over RIOT socket? Why?

Because Soletta is a full fledged framework, intended to provide
portability across platforms and OSes, so every feature it provides is
tightly integrated with the way that Soletta does things, rather than
being self contained packages.
At the lowest levels, there are abstractions for the target OS so the
main loop works consistently across them, as well as integrating IO APIs
and network to said main loop.

> There is some work, we need to dig inside but I think it's a good idea to
> port your OIC implementation as RIOT package, so RIOT will be an OIC
> compliant OS and this is important to uniform exchanged data between
> devices.

There's no porting the OIC implementation alone, it's either the whole
of Soletta or doing a separate OIC implementation. You are not the first
to ask for this though, but I don't have anything ready for that at the
moment.

> Let Martine know if you need any help about the porting, you can include me
> in the PR, I don't know if I'll have time to work on it, but I will follow
> your porting.
> 

I'm not so actively working on Soletta anymore, nor with OIC directly,
so as time permits I can continue doing the package for Soletta, but I
won't be working on an OIC-only package for RIOT any time soon.

On the matter of porting, Soletta already runs on RIOT, so there's
little in terms of porting that's required, but I haven't tested on a
wide enough variety of boards and I ran into some issues making sure the
build systems integrate smoothly, thus why it's taking so long.
Also, although the idea of the framework is to abstract the underlying
OS, there's technically nothing that prevents using RIOT APIs along with
Soletta, it's just that hasn't been tested (or even really considered)
and there is no straight forward way to have the Soletta main thread
communicating with others.

> 
> 
> > Porting to GNRC won't be necessary for early integration (maybe later on
> > we can cherry-pick the best parts to make it work with GNRC). The emb6
> > stack (a fork of Contiki's uIP) [1] I ported for RIOT [2] had similar
> > requirements for running in a single thread. If you want to I can help you
> > with integrating a foreign network stack into RIOT using `pkg`.
> > It's mainly about providing an adaption layer between whatever HAL the
> > stack uses and `netdev2`. `conn` can also be ported, but as your
> > descriptions sounds like Soletta is running above transport layer, this
> > might not be needed/suitable.
> >
> > Cheers,
> > Martine
> >
> > [1] https://github.com/hso-esk/emb6
> > [2] https://github.com/RIOT-OS/RIOT/tree/master/pkg/emb6
> >
> 
> 
> 
> -- 
> Baptiste

> _______________________________________________
> devel mailing list
> devel at riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel



More information about the devel mailing list