[net2-wg] Deluge T2 snapshot

Razvan Musaloiu-E. razvanm at cs.jhu.edu
Thu May 17 11:36:57 PDT 2007


Hi!

On Thu, 17 May 2007, Philip Levis wrote:

>
> On May 17, 2007, at 1:13 AM, Razvan Musaloiu-E. wrote:
>
>> Hi!
>> 
>> I sent first a snapshot because I wanted some feedback before the commit 
>> phase. :P I put some things in slightly different places. The meeting notes 
>> says that everything should go to tos/lib/net/deluge but to me it doesn't 
>> really make sense to be like that. Here is a quick roadmap of the code from 
>> snapshot:
>> - tos/lib/net/deluge contains the dissemination code. ObjectTransferC is
>>  the frontend to that.
>> - tos/lib/deluge contains the DelugeC component. Also here is
>>  DelugeStorageC, a component that takes care of multiplexing the access
>>  to the flash volumes and SerialStarterC, a component we use to
>>  start the serial upon boot.
>> - tos/lib/deluge/TOSBoot contains the TOSBoot port from T1. Only the
>>  telosb part is included for now.
>> - tos/lib/deluge/VolumeManager is a component that we are using to
>>  read/write flash volumes over the serial port. I'm almost certain
>>  that David Moss has in contrib a replacement for this but we didn't have
>>  time try it.
>> - tos/lib/deluge/extra contains the code to access the internal flash
>>  and reboot the telosb. I think Prabal has the replacement code for this
>>  but it was not commited yet so that's why I put it in this directory.
>> 
>> Is this OK with everyone? :P
>
>
> I'd strongly recommend against doing this. Slicing Deluge up into so many 
> directories means that you require, not one, not two, but up to FIVE -I 
> entries to use it.

Indeed, internally, a lot -I are involved but an application only needs to 
define TINYOS_NP=BNP in its Makefile in order to use the DelugeC. To use 
the dissemination part (ObjectTransferC) only one path needs to be 
included: lib/tos/deluge.

> That's kind of excessive. Initially, the T2 tree looked a bit like this: 
> there were tons of tiny, fine-grained directories (you can still see it 
> in chips/). Experience with this led to the conclusion that taking less 
> of a finely slicing approach was better: as long as you have descriptive 
> file names, it should be OK.

Acknowledge.

> Honestly, I'd just stick with tos/lib/net/deluge for now. Some of those 
> components might migrate out into system/ or platfomr (e.g., extra/) over 
> time, but better to start concise and diffuse later than start spread all 
> over the place and later decide you want to compact your directory structure.
>
> I'd recommend making TOSBoot distinct from Deluge.
>
> So here's my thought. Create two directories:
>
> tos/lib/TOSBoot
> - The TOSBoot code
>
> tos/lib/net/Deluge
> - All of the Deluge code. If it turns out its utility components start to be 
> useful elsewhere, then we can figure out where to move them.

Acknowledge. I'll prepare a version like this.

> We can later figure out if it makes sense to have a lib/Deluge as well as a 
> lib/net/Deluge. But nominally responsibilities for code is on a per-directory 
> basis. Currently, core is responsible for most everything except
>
> tos/lib/tossim (sim)
> tos/lib/net (net)
> tools/tinyos/ncc (tools)

Thank for clarifications.

>> And a quick question: can I go ahead and add the bnp.extra? It's something 
>> that it's needed in order to keep the Makefiles simple for our examples. 
>> :-)
>
> Sure. I'm not sure if you have write access there; if not, let me know and I 
> can enable it.

I tried and it says I don't have enough karma. :P

Razvan ME


More information about the net2-wg mailing list