SUMMARY: Re: New Development

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 11/29/2016 09:36 AM, Alex Elder wrote:
> OK now that we have lists and IRC in place, it's time to start
> using them.  Bryan (at least) has posted some patches for review
> but if Greybus is going to provide some greater long-term usefulness
> it will need to be adapted to be more easily used in contexts outside
> Project Ara.

OK I've been out of the country (I still am) for a week and was
pretty preoccupied before I left; sorry I didn't weigh in on things
earlier.

I'm going to summarize a bit.

A summary of the summary bullets that follow:
- Defining a new target for Greybus seems cool.  "IoT" is not an
  adequately defined target.
- It should be reworked for other applications, but should not
  abandon the existing UniPro support
- Compatibility with the Motorola Z code is desired
- Motorola used Greybus mainly for control protocols (primarily
  because of excessive power consumption--which is not really a
  Greybus issue, per se)
- It's going to take some effort to incorporate the Motorola code,
  independent of any re-targeting of Greybus
- We should continue to keep the spec as a definitive statement
  of the design.

And now more detail:
- Agreement that the SVC, control, etc. protocols are fairly specific
  to the Ara hardware platform, and that will need to change
- Laurent pointed out that "IoT" is a current buzzword; we need to be
  more clear about the details and requirements of our target.  And
  there's no point if we aren't demonstrably better than existing
  solutions.
- Bryan questioned whether we were dropping UniPro support, and I
  concur with Laurent that there's no reason to do that--we'd want
  to just modularize things so UniPro was *one* possible transport.
- Laurent expressed concern that we should be careful to ensure
  Motorola's needs can be met by whatever Greybus becomes
- Bryan asked about continued use of NuttX.
    - I don't know the status of the NuttX code; Greg might.
    - I personally wish we could try to make the module side be
      a portable core set of code with hooks to link into an
      OS (like NuttX or Zephyr).  I can't comment on how suitable
      the current NuttX code is for that sort of thing.
- Laurent seized on the opportunity to ding Gerrit, which I endorse.
  Michael sheepishly and in vain tried to come to Gerrit's defense.
- Bryan asked about what hardware we might select for host, transport,
  and modules.
    - Sandeep said he still has Ara hardware, as does Viresh.
    - My comment:  This will be good for validation, but really we
      need to also be evolving toward something else.
- Bryan offered a definition of "IoT", based on the notion of small
  edge devices having Internet connectivity.  He thinks Greybus
  being self-describing, hot-pluggable, and transport agnostic is
  what makes it interesting for such an application.
    - Laurent asserted that Greybus can't be transported over the
      Internet.  (I don't completely understand that statement.)
- Laurent feels Greybus could be useful for use by sensors and other
  tiny embedded devices--which might include IoT but which probably
  goes beyond whatever IoT really represents.  There are other field
  buses though, and it's not clear what advantage Greybus offers.
- Jim Wylder jumped in and gave a nice overview of how Motorola actually
  used Greybus.
    - There has been a desire to stay connected with the upstream code,
      but they simply had to diverge.  (It seems there is still a wish
      to preserve some sense of compatibility.)
    - They added a switching layer to abstract the UniPro transport,
      allowing others (I2C and SPI) to be used instead.
    - Practically speaking Greybus over UniPro consumed too much power,
      so they didn't use that (though it's supported).
    - Greybus used for control traffic for high-speed links, as well
      as for simple/low bandwidth protocols
    - There remains an SVC abstraction, but it is mostly stubbed out.
      Connection setup/teardown for routing are the main uses of the
      SVC protocol.
    - Protocol versioning needed some rework to be useful.
- Jim pointed out that there are some broader concerns that should be
  addressed (security in particular).


- We ought to work on a plan for integrating the Motorola fork and
  the upstream Greybus kernel code.
- Bryan pointed out that "gbsim" provides a model of system behavior
  that is relatively current.  He suggested that we could use that as
  a tool for bringing together the Motorola and upstream code.  Jim
  said Motorola did not do anything with "gbsim."
- Bryan also suggested a process of cherry-picking Motorola code
  into the Greybus upstream.
- We have generally been disciplined about keeping the spec up-to-date
  as we developed the code.  Now should be no different, and we need
  to use the spec as a tool for defining and showing agreement on
  design.
    - Greg pointed out that the spec has Creative Commons BY-SA 4.0
      license.  Yip skip!

I have more to say--some actual feedback--but I'm about to board a
plane.  I may get something out now but if I don't finish, I hope to
do so within a day or so.

					-Alex

> There was some informal conversation about this at ELCE.  I have a
> few of my own thoughts but mainly I just want to get some discussion
> started to see if we have some pieces we can agree on, and take things
> from there.  Here's a short summary of what's below:
> - Retargeting Greybus for use in IoT seems reasonable
> - We will need to adjust the abstract model currently implemented for
>   Greybus to match the new target
> - Certain core functionality should be useful as-is; but some other
>   features will need to be re-thought and redefined.
> - We will need to evolve the Greybus kernel code to define what is
>   truly "core" functionality, and what that core needs from its
>   environment.
> - We will need to ensure the Greybus API is stable, and that our
>   versioning design is sound.
> 
> One thing that came up multiple times in October was the notion that
> Greybus could serve as the basis for communication among entities in
> an Internet of Things system.  I agree with this, at least in part.
> We have set up a system with some well-defined mechanisms for
> encapsulating messages, along with a model of remote procedure calls
> that provide a pretty robust way of getting things done across a
> network.  The core code implements a lot of features (like timeouts
> and message cancellation) that are very useful, and which should
> really be done in a generic way.  We've got code and conventions in
> the existing protocol drivers that provide good examples of how
> to use the core functionality.  I think it's reasonable to pursue
> adapting Greybus to be usable in IoT environments.
> 
> In any case, one thing that occurred to me during that week and
> those discussions was that we really need to define a new *target*
> for Greybus.  That is, we no longer have the Ara phone as the
> hardware target, and we need to somehow define another ultimate
> goal for the hardware or environment in which Greybus operates.
> This should be more abstract than a hardware definition; instead
> it ought to define properties of and services provided by the
> entities communicating in a Greybus system.  In some ways we
> already have that (Interfaces and Modules are abstract, but
> the details of what they represent may no longer match what
> is required).
> 
> I think the things that Greybus defines now that can be pretty
> universally useful are the core concepts:
> - generic Greybus host device driver interface
> - connections with fixed protocols that define how messages
>   carried over them are interpreted
> - the format of messages, and the generic message header
> - the overall messaging model, including sending, receiving
>   cancelling messages
> - the operations RPC model, including completion semantics
>   (asynchronous completion, unidirectional operations, first
>   error result prevails, and the ability to have multiple
>   outstanding operations)
> From there we get into some things that are almost certainly
> useful, but there may need to be some changes:
> - The grouping of connections into bundles, which attach to
>   Linux device drivers.  (I think we need this, but there
>   remains some work to do, especially in relation to the
>   next item.)
> - Manifests to describe module/interface functionality
> - Control connection and how it's used
> And we can keep going into other things that become more and
> more likely to be unnecessary or just plain wrong when we
> are targeting something different from an Ara phone:
> - SVC and the SVC protocol
> The above is not at all exhaustive; I just wanted to try to
> identify a few specific things we can maybe start to agree
> on.
> 
> Currently, the control protocol and SVC protocol are very
> much biased toward the Ara hardware.  (Other protocols are
> too, like time sync and maybe firmware update.)  Furthermore,
> pieces of these have necessarily made their way into core
> Greybus code.  As we define a new non-Ara target, we need
> to figure out what parts really belong in the Greybus core,
> and which things need to be supplied either by external
> entities or by protocol drivers.  One way to do that might
> be to implement the core code as a library, but to be honest
> I think the real work lies in teasing things apart so the
> core can be defined to supply certain well-known services,
> with hooks to allow other capabilities.  For a (contrived)
> example of what I mean, we may need to provide hooks for
> setting up connection routing rather than implementing
> it in the core code.  In any case, I think we need to look
> at what constitutes the true "core" of Greybus services
> and what that core needs from its environment in order to
> be used.
> 
> If Greybus is going to provide a more general service we need
> to ensure it provides a stable API.  We have structured things
> this way since the beginning, but I fear we may have gotten
> sloppy because we basically always packaged everything together.
> As it is, all the versioning is in place but to my knowledge
> we've never really tested it to make sure it works.
> 
> I had another point which I've now forgotten...  In any case,
> I really just hope to get some conversation going.
> 
> What do you think?
> 
> 					-Alex
> _______________________________________________
> greybus-dev mailing list
> greybus-dev@xxxxxxxxxxxxxxxx
> https://lists.linaro.org/mailman/listinfo/greybus-dev
> 

_______________________________________________
greybus-dev mailing list
greybus-dev@xxxxxxxxxxxxxxxx
https://lists.linaro.org/mailman/listinfo/greybus-dev




[Index of Archives]     [Asterisk App Development]     [PJ SIP]     [Gnu Gatekeeper]     [IETF Sipping]     [Info Cyrus]     [ALSA User]     [Fedora Linux Users]     [Linux SCTP]     [DCCP]     [Gimp]     [Yosemite News]     [Deep Creek Hot Springs]     [Yosemite Campsites]     [ISDN Cause Codes]     [Asterisk Books]

  Powered by Linux