[net2-wg] Call Transcript: 8/3/2006
Kyle Jamieson
jamieson at csail.mit.edu
Thu Aug 3 10:09:32 PDT 2006
Roll call: Phil, Rodrigo, Om, Arslan, Kyle
R: Arslan sent document
R: met for collection, decision to have another TEP specifying
collection protocol, Phil's suggested Tree Collection Protocol (TCP) :-)
R: other conclusion: need to implement DSDV, two approaches.
P: two protocols, only way to figure out which one to go with is thru
evaluation. DSDV advantage is that assuredly loop-free. Disadvantage
is that all routing updates be instigated by base station. Non-DSDV
approach: nodes individually decide when to update routes, leaves
possibility of forming loops.
R: arguments for each approach; have to evaluate. Forwarding process
has to be different if loops might be present.
R: Regarding one-hop abstraction, started talking about LE and LE
interface. Then talked about nbr tbl, shared in SP between all
protocols. One idea is pin/unpin interface to control who goes into
table or not. How to make a shared tbl extensible? How to have each
protocol declare which fields it wants. Currently SP declares struct in
file. Better way?
P: extensible table very problematic idea -- introduces dependencies.
Two components both use a field; who is responsible for maintaining it?
A: what's alternative? Just embed everything in table?
O: one alternative is each component keeps its own table.
A: of extensible fields?
P: situation is where piece of data assoc with nbr that multiple
protocols care about, but some protocols don't. Want to be able to
include it only if it's needed. Q is who generates it.
A: If only one thing sitting on top of LL, then move functionality into
network layer. If two, 3 apps want to use it, then can't embed it into
network layer.
P: how would this work; where does field come from?
R: simplest case is suppose we have idempotent decls, two protocols
require same field, just one gets compiled in. Many problems --
write/write conflicts.
P: easy to say shared value; but who gets to write?
A: two protocols weren't designed to cooperate; then no problem moving
extensible layer to network layer.
P: concern is that it seems like something that's very tricky to do;
payoff is that you'll save a few bytes of RAM. Maybe what we want is
that you can create mirrors of table.
R: nbr table is a subset of LE table in collection right now; maybe
having a mechanism to create derived tables makes sense.
O: or superset
R: so e.g. you may have entries in table that are two-hop neighbors.
K: tool to coordinate tables might be useful.
R: Hood (Kamin, Cory), came to conclusion that different protocols
needing to refer to different subsets of nbr, may be more efficient to
have different tables.
P: right now we're talking about low-level interface to LL abstraction.
Fundamentally, what do we want from this abstraction? Arslan said --
three basic things abstraction should provide.
K: three things are LE, nbr tbl, shared pool. First two are pretty
fundamental...
P: anyone disagree with LE, nbr tbl?
A: all three are valuable. Reason shared message pool is there is that
it has better knowledge of which nbrs are awake.
P: what is a shared message pool? Does that mean multiple outstanding
packets? Can send multiple packets at once? Each protocol can look at
the pool?
A: last one no, no benefit. Message futures argument is efficiency --
if going to be awake, might as well send. Often latency is not an
issue; shared message pool beneficial for minimizing power.
O: network layer provide shared message pool?
A: what is network layer going to do better than LL?
K: not clear on what network layer is?
P: rephrasing Om... Idea that you have many packets outstanding, pick
which ones to send is related to Fair Queuing. Imagine LL has nbr tbl,
above it decides which packets to send when. There is a policy: for
given nbr, servicing is FIFO. Might not be best policy.
A: not possible to have no policy. Component could be interchangable.
O: think it's a valuable functionality to have common place where
messages come in.
R: SP takes position of minimizing energy.
A: think that more fine-grained priority system is useful; tell SP
bounds on message time.
P: basic question: path of efficiency and deadlines (RTOS), or path of
multitasking and fairness; trying to give everyone own fair share. SP
has been in former category, as well as TinyOS.
K: sounds like we want two link layers.
P: or as Arslan says; build LL abstraction without policy.
A: question is is that a decision we should make whether one is better
than the other, or should leave to designer. Why not leave to designer
of network?
P: if we make a choice, could be the wrong choice. That's what happened
with collection; two approaches were incompatible; so we'll do both, let
time and experience decide.
P: problem would be if people start to design protcols, systems that
assume one or the other.
R: one last point; in either of the two cases; needs to be resource
accounting. Different criteria. E.g. fair sharing between nbrs; could
be at odds with higher-level goals of a protocol. One important point
to keep in mind.
P: 2 separate issues: what is abstraction LL provides? Secondly, how
internally implemented s.t. it's easy to have two separate policies.
Either way, is interface to the two different, if not let's figure out
what the interface is.
R: goes in line with deciding what the requirements are.
P: all are in agreement that nbr tbl, LE are critical. Outstanding
packets that the LL can choose from seems reasonably important. If LL
overhears packet to someone else, then can think that that node is awake
and use it opportunistically to send in a CSMA network.
P: seem to be in agreement there. Exactly what decomposition is is a
bit open. Arslan's done a lot of work on this, has good observations.
Lots of people working on SP (me included) are thinking in a certain
mindset; great for people who haven't drunk SP Kool Aid to make suggestions.
K: agree
A: need to define responsibilities of different layers.
R: Arslan is saying maybe not ready to specify interfaces.
A: question of whether we're talking about congestion at LL, acks,
timing information necessary.
O: suggestion: say we want collection; would fit on top of LL. Want to
review assumptions we made in collection.
P: source addr, dest addr, synchronous acks, protocol dispatch
mechanism, broadcast supported (w/o acks), no assumption of snooping
K: suprises lurking; wrt congestion
P: priorities for LL from routing protocol. Telling link layer which
types of messages routing layer has. Have lots of protocols, each
person choose a protocol, writes down requirements on the LL for each
protocol.
O: also useful to see what Xbow and Moteiv have. What about
dissemination? Should probably ask Joe/Martin.
P: me -- Dissemination, Kyle -- Fusion/Congestion, Rodrigo -- Flush,
Arslan -- DSN (Declarative Sensor Networking).
P: write down things they've identified LL doesn't provide, but should.
More information about the net2-wg
mailing list