Rob, Aaron --
I think JTW has made the argument that the place to put connectivity is
_not_ the RSpec, but in some other thing (``the CONSpec?'') that does
not yet exist, but collects these kinds of
component-is-connected-to-component relationships.
I can't articulate the why behind this architectural decision to near
any degree of clarity as John can, but basically RSpecs need to focus on
the properties or configurations of components individually, and the
graph or relationship between a set of components needs to be defined
and manipulated elsewhere as its own, distinct, first-class object.
(The rationale there is mine, not John's, and others may agree/disagree
with the idea of incorporating this sort of connectedness information in
the RSpec, or even if they agree about putting it somewhere else, may
cite entirely different reasons for doing so.)
I haven't given much thought to what sort of grammar would be used to
describe connectivity. Presumably John is thinking of something
different from the nodes-connected-by-links level of ns2, because that
ball-and-stick construction is too mechanical, and doesn't carry any of
the semantics of nodes belonging to, or being on, a network, or being
interconnected via a wireless medium.
(Rob: not to take away from your pragmatic write-up, but I suspect that
it won't be enough in the long run to just embed
connectivity-by-reference inside RSpecs. But I'm sure you could use
that to get started in protoGENI, and things wouldn't break. :-) )
--Steve
-----Original Message-----
From:
narrow-waist-wg-bounces@...
[mailto:
narrow-waist-wg-bounces@...] On Behalf Of Robert P Ricci
Sent: Friday, November 09, 2007 1:59 PM
To: Aaron Falk
Cc:
narrow-waist-wg@...
Subject: Re: [nwwg] connectedness & coordination
Thus spake Aaron Falk on Tue, Nov 06, 2007 at 04:55:02PM -0500:
> Larry, John-
So, I'm not Larry or John, but I'll make an attempt at answering this
question.
> I've been having a discussion with Chip and and struggling with a
> topic that I've heard discussed but doesn't seem to be written down
> anywhere (nor can I find a note that indicates someone is writing
> about it).
>
> The question is about how connectivity is represented and how
> connectivity constraints are represented and managed.
The extent to which this is written down depends on what, exactly, you
mean by "represented". In terms of the RSpec, I have wrote a fairly
small amount of text in the latest draft (0.4) of the Rspec document
that has been circulate:
As GENI is a network substrate, the connectivity between components is
one of its most important properties. Connectivity between resources
can be expressed in RSpec with the help of those resources' unique
identifiers: an RSpec can include a reference to a resource in another
RSpec - an interface, for example, in one RSpec can indicate that it
connects to a point-to-point link found in another RSpec. Thus, an
RSpec describing a component need not include descriptions of all of
the components adjacent to that component; it can simply include
"external references" to those components. Connectivity
information can even be expressed in an RSpec separate from the
components themselves: in such an arrangement, one might obtain the
RSpecs for individual components from their component managers, but
obtain their connectivity information from a higher-level source, such
as an aggregate.
This is clearly a first cut, and needs to be fleshed out more, but it's
somewhere to start from.
In higher-level terms than RSpec (ie. what abstraction(s) we apply to
links), I think you're correct, there is nothing written down, and there
needs to e.
> Consider, for example, a researcher who desires to use a collection
> of co-located servers and storage devices attached to a common
> switch. How and by whom is the switch configured? If the current
> state of the switch, say because of support for other experiments,
> prevents interconnection between some components, how is that
> represented and resolved?
>
> I have pieces of two possible answers: First, the switch may be
> considered a component and its configuration is the responsibility of
> the experimenter. If so, there needs to be a way to express the
> desired connectivity and constraints within RSpecs or some other
> way. (I recall discussion of the need for a connectivity graph of
> some sort. Is that right? Where does such a thing live? How is it
> accessed?)
>
> Alternatively, an aggregate controller could be used to configure the
> switch and select connectable components. This makes the resource
> allocation problem the controller's, which makes sense since the
> controller would presumably also be handling the resource
reservations.
I think that a network element is a component to the extent that it is
configurable and slice-able.
A Cat5 wire between two nodes is not a component - likewise, an old,
unmanaged Ethernet hub, would not be a component. A big, configurable
Ethernet switch or optical hardware that allows slices to share a fiber
link would be a component. A "tunnel broker" that sets up virtual
network connections over some substrate (ie. the GENI backbone or the
legacy Internet).
In your example, I would say that the switch is a component (though it
could also be a part of an aggregate). The user submits an RSpec to that
switch's component manager, describing the network resources (ie.
links/LANs) that they would like to bind to a slice. The CM does the job
of actually configuring the switch, and making sure that the
configuration changes it makes to not impact other slices. Just as the
resources on a "regular" components, it is the component manager's job
to make sure that it does not issue not accept tickets that would
violate the promises it has made to other slices.
> But what about the case when there are connectivity constraints that
> cross aggregates? (Or, there are no aggregates?) For example,
> consider an experiment requiring components are distributed across
> the GENI system. There may be multiple, diverse networking resources
> available connecting subsets of the facility. How does a researcher
> discover whether or not "he can get there from here."
I think that the answer to this question is fundamentally tied to the
answer to "how do we do resource discovery?", which we know we still
have to answer (and I believe John was going to write up a node as a
starting point.)
> Finally, once an experiment has been established (thinking of long-
> running, perhaps popular services), how does one add resources into
> an existing, operational experiment? This seems harder than
> upgrading a production-grade live service: resources like link
> bandwidth may become unmanageably fragmented and few operating
> systems handle graceful addition of, say, network interfaces (even if
> it's only virtual hardware) without interruption.
This sounds like "just (maybe very tricky) implementation" to me - do
you think it's an architectural issue?
--
/-----------------------------------------------------------
| Robert P Ricci <
ricci@...> | <
ricci@...>
| Research Associate, University of Utah Flux Group
| www.flux.utah.edu | www.emulab.net
\-----------------------------------------------------------
_______________________________________________
narrow-waist-wg mailing list
narrow-waist-wg@...
http://lists.geni.net/mailman/listinfo/narrow-waist-wg_______________________________________________
narrow-waist-wg mailing list
narrow-waist-wg@...
http://lists.geni.net/mailman/listinfo/narrow-waist-wg