[net2-wg] Meeting notes, 01/05/06
Omprakash Gnawali
gnawali at usc.edu
Thu Jan 5 10:56:28 PST 2006
December 05, 2006, 9:17 PST
Present: Jon, Gil, Om, Kyle
Jon chaired the meeting.
Kristin Wright
Jon: She is interested in joining the group. She does
meeting notes, website, managing code repository for TinyOS
and she is interested in doing the same here.
Gil: Sounds good.
Kyle: Great.
Om: Good.
Jon: Phil won't have any objection. She is in.
Collection components
Jon: Om sent out the collection interface.
Om: Sources call collect when they want to send data to the
sink. The multisink collect call, collectSink, lets you
specify the sink. On the receiver (sink), you get collectReceive
when data for you has arrived from the network.
Kyle: Lets make the method/interface names more descriptive/less
confusing.
Om: Should we have one interfaces that has both collect and
collectSink calls, or should we have two interfaces - one
for single sink collection and one more multi sink collection ?
Gil: Two interfaces. Having the multisink call silenty fail
when called on a single sink collection seems bad.
Kyle: Two interfaces.
Gil: Should we put address in the front to make it look like
rest of the TOS2 interfaces ?
Om: Sure.
Om: Should Intercept interface provide msg ptr as well as
payload ptr ?
Gil: To provide payload pointer will require fragmentation.
Om: I think the decision was to assume collection interface
provides a simple datagram service where payload fits
in a single packet.
Gil: Message ptr allows applications to get lower level
information about the packet.
Om: Depends on who is intercepting. If we consider this
a high level interface and an application is
intercepting for application level packet processing
then we would not need a msg ptr. But providing
both seems better.
Gil: Should collect receive also return msg ptr ?
Jon: Return msg ptr.
Gil: Not sure about the usage scenario yet for msg ptr
in collect receive because it is a high level interface.
Om: Right, the idea here is you call collect and you can
forget about the data.
Jon: Should collect be splitphase to make sure resources are
managed properly ?
Om: Lets do that.
Jon: Lets do that.
Kyle: Lower layers on which this is implemented are also split phase.
Jon: Conclusions are we will have two interfaces for collection.
First will have collect and collectDone. Second will have
collectSink and collectSinkDone. We will stick with the
current Intercept interface.
Kyle: Buffer swap or copy model for collect receive ? How long is
the data valid ?
Gil: As it is in the current mode: not valid after event returns.
Buffer swap might be error prone.
Gil: Should addr_t be general so that it can support other types
collection addresses ? Beacon vector.
Om: Geographic routing.
Gil: Dissemination, for example, does not mention addr_t. Is it
necessary in collection ? What if there is a collection
protocol that has a different idea about what an address is.
That collection protocol would not be able to implement the
collection interface.
Om: For dissemination, there is no need to specify the address
because the destination is the whole network. For single
sink version of collection, we would not need an
address because the address is the single sink. For multiple
sink version, there are two cases: One, the collection
protocol decides which sink to use, for redundancy, clustering,
etc. In this case, the users of collection have no input on
to which sink should the packet go so we would not need
an address. Certain multi-sink collection protocols
might allow the users of collection to specify the destination
sink because it might have constructed multiple trees,
for example. High level applications might take advantage
of this feature because they are doing application-level
clustering. In this last case we would need an address.
Gil: Lets have a fixed address type for now to expediate the
implementation.
Gil: result_t should be error_t, name should capitalized.
Development plans/deadlines
Jon: Lets discuss the timeline for initial collection
implementation. TinyOS Technology Exchange is
coming up in a month so we don't have a lot of time.
Should we have discussions on what the implementation
ought to look like or just hack it ?
Gil: Just hack it.
Jon: Just hack it.
Om: Lets make high level decisions that can be made quickly
For example, LQI vs. beacon based link estimation, high
level things like that. Also, will the implementation
look similar to MintRoute ?
Jon: Lets decide how to do link quality estimation. Most
of us are more familiar with beacon based link
estimation. We need to support CC1000 as well as
CC2420, so lets do beacon based link estimation.
Om: Sounds good.
Om: How about neighbor table. What will it look like ?
Gil: SP has its own notion of what neighbor table looks like,
what the interfaces look like. So, if we are thinking
about collection on top of SP at some time in the future,
lets separate the neighbor table functionality in
MintRoute.
Om: This sounds like reorganization of MintRoute rather
than writing code from scratch.
Jon: Yes. And probably also Drain. The plan for dissemination
is also similar -- start with the existing code.
Om: Do we need to worry about the router/forwarder interaction
and interface ? I remember having a lot of discussion
on this topic but don't remember the decision.
Jon: I don't think we should worry about that aspect of collection
for now. It looked too much into how collection is
implemented. What is important is now we have a top level
interface and we should start working on implementing it.
Jon: Subgroups can decide further details on their own. No need
to consult the larger group. From what I remember,
Rodrigo, Kyle, and Om are in the collection subgroup. Phil
and Gil are working on dissemination. They will check
the skeleton by this weekend and have a version of
dissemination by next week. Should we follow similar
timeline for collection ?
Om: Sure.
Kyle: Sure.
Jon: Ok, lets try to have a basic version of collection
by next week.
Virtualization
Jon: The idea here is to hide a queue behind an interface.
Every instance of the call is guaranteed one successful
call. If you call collect before collectDone, for example,
it will fail because you only have one slot.
The advantage of this approach is properly written
applications will always work. The downside is memory
management.
Kyle: Can this be an ifdef ?
Jon: Some components might assume they are running on the
virtualized interface and those components might no
longer work.
Gil: Standard and generic components to implement the
non-virtualized and virtualized interfaces will make
that distinction clear.
Jon: Lets do non virtualized componenets first, if we decide
virtualize, we will do that on top.
Gil: Agree.
The meeting ended at 10:00 PST.
More information about the net2-wg
mailing list