Ask is moving to Stack Overflow and! Please use the "opendaylight" tag on either of these sites. This site is now in Read-Only mode


can't get complete topology information

asked 2016-05-06 00:17:13 -0700

luis999 gravatar image

updated 2016-05-11 23:08:45 -0700

bhavesh07 gravatar image


i have create a custom topology in mininet and have install opendaylight(lithium). on my opendaylight, i have install 'old-dlux-all' and 'odl-l2switch-switch-ui'.

Topology image description

i want to retrieve topology information from opendaylight using php curl but i can't get complete topology information. I had try to retrieve topology information using opendaylight(Yang UI),postman, php curl but still can't get complete topology information . My topology have 8 node and 20 link(retrive link and forward link). It work fine when retrieve small topology information(3 host and 3 switch).

when i try to get topology information, i always get random number of node and link (e.g. 3-6 node) note: i have check my network connection.

Result image description


my question is

1)how do i get complete topology information?

many thanks in advance. :)

edit retag flag offensive close merge delete


this sounds like a bug, but can you update the question with the URI you are using with postman?

jamoluhrsen ( 2016-05-06 08:41:20 -0700 )edit

@luis999 Can you please try to ping once after creating the topology in mininet. After the ping, try to fetch the topology information.

bhavesh07 ( 2016-05-08 23:32:39 -0700 )edit

jamoluhrsen : i have add the url, thank you
bhavesh07: it still the same result after i ping.

luis999 ( 2016-05-09 01:45:41 -0700 )edit

if you have verified that all of your switches are connected (some status on the switch) but it's not showing up in the operational topology response, then it seems like a bug. does pingall work? do you have any serious ERROR messages in karaf.log?

jamoluhrsen ( 2016-05-09 16:41:13 -0700 )edit

pingall work, i don't know how to check error in karaf.

luis999 ( 2016-05-09 17:41:29 -0700 )edit

2 answers

Sort by ยป oldest newest most voted

answered 2016-05-11 05:39:53 -0700

bhavesh07 gravatar image

updated 2016-05-11 05:41:51 -0700

There isn't any problem with ODL, checked on Lithium SR3 and stable/beryllium distribution.
Everything is working fine even with your custom-topology script and command.

  1. Start ODL, by running bin/karaf.
  2. feature:install odl-l2switch-switch-ui
  3. Wait for few seconds and look for the below log at the end of karaf.log

    2016-05-11 17:53:40,289 | INFO | config-pusher | ConfigPusherImpl | 135 - org.opendaylight.controller.config-persister-impl - 0.3.3.Lithium-SR3 | Successfully pushed configuration snapshot 04-xsql.xml(odl-l2switch-switch-ui,odl-l2switch-switch-ui)

  4. Execute mininet command like,

    sudo mn --custom --topo mytopo --switch ovsk,protocol=13openflow --link tc,bw=10,delay=10ms --mac --controller=remote,ip=

  5. Fetch the topology information,


With the above steps, you can have 8 nodes and 20 links as per your mininet script which does not contains any host.

If you want to have hosts visible on the DLUX and corresponding information in the Restconf, execute pingall on the mininet cli and then fetch the topology information.

edit flag offensive delete publish link more


thanks for checking @bhavesh07. @luis999, maybe you can try again from scratch?

jamoluhrsen ( 2016-05-11 08:22:06 -0700 )edit

@bhavesh07: thank you, i have start a new opendaylight and i able to discover complete topology information.
jamoluhrsen: thank you for helping me with this problem.

luis999 ( 2016-05-11 17:04:11 -0700 )edit

Hi @bhavesh07, i only be able to discover complete topology for a few seconds. After that it will not discover correct topology(e.g. only able to discover few nodes).

luis999 ( 2016-05-31 00:30:30 -0700 )edit

answered 2016-05-10 23:18:44 -0700

luis999 gravatar image
import pdb
from mininet.topo import Topo

class MyTopo( Topo ):

     def __init__( self ):
        Topo.__init__( self )

        A1  = self.addSwitch( 'A1' )
        B2 = self.addSwitch( 'B2' )
        C3 = self.addSwitch( 'C3' )
        D4 = self.addSwitch( 'D4' )
        E5 = self.addSwitch( 'E5' )
        F6 = self.addSwitch( 'F6' )
        G7 = self.addSwitch( 'G7' )
        H8 = self.addSwitch( 'H8' )

        h1 = self.addHost( 'h1' )
        h2 = self.addHost( 'h2' )
        h3 = self.addHost( 'h3' )
        h4 = self.addHost( 'h4' )
        h5 = self.addHost( 'h5' )
        h6 = self.addHost( 'h6' )
        h7 = self.addHost( 'h7' )
        h8 = self.addHost( 'h8' )

        SwitchList = (A1,B2,C3,D4,E5,F6,G7,H8)

        self.addLink(A1, h1)
        self.addLink(B2, h2)
        self.addLink(C3, h3)
        self.addLink(D4, h4)
        self.addLink(E5, h5)
        self.addLink(F6, h6)
        self.addLink(G7, h7)
        self.addLink(H8, h8)

        self.addLink(A1, E5)
        self.addLink(A1, G7)

        self.addLink(E5, F6)
        self.addLink(E5, H8)

        self.addLink(F6, H8)
        self.addLink(F6, D4)

        self.addLink(D4, H8)

        self.addLink(B2, G7)

        self.addLink(G7, H8)

        self.addLink(H8, C3)

topos = { 'mytopo': ( lambda: MyTopo() ) }
edit flag offensive delete publish link more
Login/Signup to Answer

Question Tools

1 follower


Asked: 2016-05-06 00:17:13 -0700

Seen: 824 times

Last updated: May 11 '16