Alternatively, you can just register for link-events and keep track of the topology yourself.

datapathids are IDs of the Openflow switches that have joined. These IDs are included in datapath_join events, which you can register for using self.register_for_datapath_join(callback) in any python component.

Unfortunately we currently don't have a way for dumping the entire topology.

Natasha

On Oct 15, 2009, at 11:34 AM, Pradeep Padala wrote:

Hi Natasha,

I can use this, but I don't know the host ids. When I try to use 0 and
1, I just get empty list. How are these host ids related to the output
produced by dpctl?

Is there a simple way to dump the complete topology into a data
structure?

Thanks,
Pradeep

-----Original Message-----
From: Natasha Gude [mailto:[email protected]]
Sent: Wednesday, October 14, 2009 6:22 PM
To: Pradeep Padala
Cc: Martin Casado; [email protected]
Subject: Re: [nox-dev] make check fails "Import by filename is not
supported"

Hi Pradeep,

pytopology has a method get_outlinks thats takes a source datapathid
and destination datapathid, and returns a list of all of the port
pairs that are connected.  This is defined in pytopology.i

For example:

if datapath 1's ports 5 and 6 are connected to datapath 2's ports 3
and 4 respectively, you would have the following.

from nox.lib.netinet.netinet import create_datapathid_from_host

dp1 = create_datapathid_from_host(1)
dp2 = create_datapathid_from_host(2)
ports = pytop.get_outlinks(dp1, dp2)

where ports would be a list of PyLinkPorts of length 2, where
PyLinkPorts is described in that pytopology.i file.  Particularly it
would be the equivalent of [ (5, 3), (6, 4) ] , however it's actually
a SWIG-ed out list, which needs to be iterated through using begin(),
incr(), and end().

Hope that helps,
Natasha

On Oct 14, 2009, at 5:56 PM, Pradeep Padala wrote:

That works for me. I also looked at miscws/noxinfows.py, which seems
to
do some of the things I wanted.

I am trying to modify noxinfows.py to return topology. I got a
handle
for pytopology with

    self.pytop        = self.resolve(pytopology)

Later, when the GET request comes, I am calling the function I wrote
below

  def _get_nox_topology(self, request, arg):
      try:
          return simplejson.dumps(self.pytop.XXXXXXXXXXXXXXXXX)
      except Exception, e:
          return self.err(Failure(), request, "_get_topology",
                          "Could not retrieve topology")

Now, I don't know how to access the pytopology functions
(XXXXXXXXXXXX
part). For example, the get_outlinks() function takes two arguments,
but
in the C++ file, I didn't find any comments on what to pass here.

In the manual, there are just a few notes about the topology module,
grepping through the whole source tree, I didn't find any examples
of
using pytopology (may be I am missing something).

Any help would be great.

Thanks,
Pradeep


_______________________________________________
nox-dev mailing list
[email protected]
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org


_______________________________________________
nox-dev mailing list
[email protected]
http://noxrepo.org/mailman/listinfo/nox-dev_noxrepo.org

Reply via email to