Hi Pradeep,

IIRC, at one point there was  a webservice call (/ws.v1/topology/links)
which is part of the discovery component that may be helpful to you.  It
returns a list of dictionaries of every link, with keys for datapaths and
ports, e.g.:
[{"port2": 4, "dpid1": 1234567890, "dpid2": 9876543210, "port1": 0}, ...]
I have been able to use this and a few other calls to get a decent map of
the system.

  -Reid

On Thu, 15 Oct 2009 12:07:36 -0700, Martin Casado <[email protected]>
wrote:
> 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


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

Reply via email to