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

Anil Vishnoi's profile - activity

2015-12-24 05:11:58 -0700 received badge  Nice Answer (source)
2015-11-03 06:30:21 -0700 commented question Not getting ips on VM after integrating with openstack

can you share bit of detail about how you setup the environment ?

2015-11-03 06:26:49 -0700 commented question Error in Getting Config from inventory

what restconf url are you using ?

2015-10-03 17:24:37 -0700 answered a question how to modify openvswitch port statistics by Rest api or yang

You can use OVSDB Queue, QoS and Interface attributes to achieve what you want, but ODL don't support any of these features as of now. As of now you can do that using ovs-vsctl command and configuring the required parameter.

2015-09-24 01:00:37 -0700 received badge  Nice Answer (source)
2015-09-23 04:49:24 -0700 commented answer Devstack multinode setup integration with Opendaylight

It's OVDSB Net-Virt provide that realize the OpenStack services in ODL. It already knows all the details from OpenStack to install all the required flow, so there is no need to send any packet to the controller. And Yes,everything is done through flows. I don't see there is any other way, except you modify the dlux code to fetch these details from OpenStack and show it OR modify net-virt code to send the broadcast packet to controller. Later has performance impact on controller.

2015-09-23 04:00:07 -0700 answered a question Devstack multinode setup integration with Opendaylight

In case of OpenStack setup, you won't see host information in the OpenDaylight GUI. OpenDaylight GUI uses hosttracker to learn the host and hosttracker learns it by looking at the packet that it receives from host (e.g Like ARP request broadcast packet). But in case of OpenStack setup, we don't allows any other packet except LLDP to go to the controller because we install very specific rules to control the traffic.And that's why controller don't learn any host, which is expected behavior.

2015-09-22 20:14:15 -0700 commented question Devstack multinode setup integration with Opendaylight

do you see any tunnel created on the controller and compute node ? is this devstack installation is using networking-odl or it's vanilla devstack setup for neutron openvswitch ? Also follow the below thread for more details

2015-06-04 14:21:10 -0700 commented answer can we configure switch using odl ?

Nope, i don't think so that's doable through openflow southbound plugin. But If your switch support Netconf with openflow, then you can probably use controller netconf plugin to configure the device.

2015-06-04 05:21:58 -0700 answered a question can we configure switch using odl ?

If your question is in context of OpenFlow switches, then the answer is No (except few limited configuration of Meter/Group/Queue is allowed). But if you want to configure ovs switch, you can probably do few configurations through ovsdb southbound plugin.

2015-05-27 08:07:05 -0700 answered a question Openstack fails to create external network with ODL

I believe ODL Helium SR3 does not support external network.

2015-05-26 14:26:07 -0700 commented answer ODL/Openstack integration

did you unset the manager and set it again? You need to do that so that ovsdb can pick up the latest configuration. I would suggest before that clean up your openstack resources (Delete port,vm,network etc).

2015-05-26 04:41:33 -0700 answered a question ODL/Openstack integration

Hi Yaolin,

When OpenDaylight controller is used as a backend network service provider, you don't really need the neutron-openvswtich-agent to do your configuration. OpenDaylight controller does that job, given that you will have to explicitly set-manager for the ovs instance to the controller. Once switch connects to the controller, it does all the required configuration (like creating integration bridge etc). Once you create network/subnet in OpenStack and attach VM to it, all of these details will be passed from OpenStack neutron server to OpenDaylight controller through REST APIs ( given that you did the required configuration in ml2conf.ini/ml2odl.ini files) and then ODL controller will create the tunnel interface on the integration bridge and install all the flow rules for enabling the routing between VMs.

did you use devstack to build your openstack compute/network node or you use some other deployment tools (or manually)? If you did manual installation of compute/network node, then you will have to do following two manual configuration at the ovs running on compute/network node.

1) Set localip config for openvswitch table in ovsdb database. Fire following command on all the network/compute nodes

OVSUUID=$(ovs-vsctl get Open_vSwitch ._uuid); ovs-vsctl set Open_vSwitch $OVSUUID other_config:local_ip=<network/compute node's local ip address>

2) ovs-vsctl set-manager tcp:<odl-controller-ip>:6640

Once you do this configuration and make sure of connectivity from OpenStack neutron server to OpenDaylight controller, it should work fine.

2015-01-11 12:28:28 -0700 edited question Non-resolvable parent POM Error while Compiling latest OpenDayLight Code

I was able to compile and run my previous OpenDayLight Controller code, today after I did the git pull with latest code, I am no longer able to compile the code. Please find the below error while compilation:

[root@enc-test-vm1 controller]# mvn clean install -Dcheckstyle.skip=true -DskipTests
[INFO] Scanning for projects...
[ERROR] The build could not read 1 project -> [Help 1]
[ERROR]   The project org.opendaylight.controller:config-parent:0.3.0-SNAPSHOT (/root/OpenDayLight/controller/opendaylight/config/config-parent/pom.xml) has 1 error
[ERROR]     Non-resolvable parent POM: Could not find artifact org.opendaylight.yangtools:binding-parent:pom:0.7.0-SNAPSHOT and 'parent.relativePath' points at no local POM @ line 11, column 11 -> [Help 2]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1]
[ERROR] [Help 2]
[root@enc-test-vm1 controller]#

Is the latest code is in good condition? Or do I need any changes to fix this issue?

2014-11-19 03:48:08 -0700 answered a question Who wrote OpendayLight SDN Controller UI Part,TopologyView ? { Infovis JavaScript for Node/Switch}

I think these are opensource java script libraries that is used by opendaylight controller for building its GUI. AFAIK, for helium release preferred GUI is provided by dlux project. You can get more details on following URL

Following URL talks about how to enable it through karaf console etc

2014-11-19 03:31:39 -0700 commented question br-tun and br-int is not connected in ODL controller. Anybody know the reason why?

do you mean, switches are present in the topology, but there is not link between them? Can you please paste the ovs-ofctl output on both br-tun and br-int. Also can you please run wireshark on the compute node and see if br-tun bridge is receiving the LLDP packets and also its sending it back to controller or not.

2014-11-19 03:22:23 -0700 answered a question Flow rules

Yes, Openflow plugin supports openflow 1.3 specs, so you should be able to install flow with mask associated with the source/destination ip/ethernet addresses.

2014-11-19 03:11:34 -0700 commented question PacketIn is not coming on Controller

can you please install feature:odl-adsal-compatibility and see if it works.

2014-11-19 03:07:47 -0700 commented question what is meaning of controller action while adding flow?

jayesh, which version of controller are you using ? and how are you testing this scenario? can you please provide some more details so that we can better help you.

2014-11-13 09:24:21 -0700 answered a question Hydrogen (integration) + openflow 1.3 + mininet --> problem

If you are not using the patched Mininet version as mentioned in the below link

and installed it directly from the repository (apt-get), then to enable the openflow 1.3 mode in openvswitch, you will have to use the following command on each openvswitch instance mininet creates

ovs-vsctl set bridge <switch-name> protocols=OpenFlow13
e.g : ovs-vsctl set bridge s0 protocols=OpenFlow13

This command will disconnect the switch from controller ( if it's connected ) and then set the mode to openflow 1.3 and will again attempt to connect to the controller.

2014-07-22 22:02:16 -0700 answered a question How does traffic control work in SDN

In general QOS is achieved by creating Queues at switch ports, setting their min/max rate and configuring your switch so that the traffic you want to control should go through those queues. Although realization of this idea depends on type of switch and what protocol it supports. Now in the context of ODL, where It supports more then one south bound plugins that can control switch in specific mode. Like openflowplugin driver can control ovs/hardware switch that supports openflow protocol. Similarly OVSDB driver can control OpenVswitch using ovsdb protocol. All these south bound driver provides flow configuration and in some cases switch queue configuration as well, which you can leverage to enforce QOS in your networking devices. In the context of Openflow protocol, it also provide alternate mechanism, called Meter, specifically for QOS purpose. You can get more detail at the following openflow specification url (Section 5.7 -Meter Table)

2014-06-26 23:20:54 -0700 commented question Add RPC for openflow plugin 1.3 in MD-SAL
2014-06-18 02:00:57 -0700 commented answer How does topology-manager create a node?

@zedyuang, I updated my answer with details of how it works in case of MD-SAL.

2014-06-18 02:00:57 -0700 received badge  Commentator
2014-06-16 22:20:37 -0700 answered a question How does topology-manager create a node?

In case of AD-SAL based stack -- Look for the class, it overrides the listener method updateNode() from, that will be called by openflowplugin whenever new switch connects to the controller.

This method further calls all the listener application above the AD-SAL. To subscribe for this event notification, application needs to override methods in and also need to set this class as a interface in the applications class. As of now is being implemented by ConnectionManager,StatisticsManager and SwitchManager, you can explore the file of any of these module to get more details.

In case of MD-SAL based stack - Every module who wants to subscribe for notification events from plugin should register its listener implementation with notification service. For example lets have a look at inventory-manager (MD-SAL) module. In start() method of it's registering NodeChangeCommiter class instance to the notification service.

this.listenerRegistration = this.notificationService.registerNotificationListener(this.changeCommiter);

NodeChangeCommiter implements all the notification methods of OpendaylightInventoryListener. So whenever plugin publish any DTO to SAL using NotificationService, it will invoke the related notification method of the concern subscriber/s. I believe which notification will be invoked is dependent on what DTO is being published to SAL notification service. As you mentioned in your question, In case of node add event, plugin publishes NodeUpdate DTO to the notification service,

        publishService.publish(nodeAdded(ofSwitch, features,nodeRef));

nodeAdded returns

private NodeUpdated nodeAdded(ModelDrivenSwitch sw, GetFeaturesOutput features, NodeRef nodeRef) {

So notification service will invoke following notification listener method of OpendaylightInventoryListener

void onNodeUpdated(NodeUpdated notification);
2014-06-03 13:05:54 -0700 commented question Suggestions for this forum

@Andrew Yup, i am aware of that. The point i was trying to make is that if i ask any question, and somebody correctly answer that, i don't need any point to accept it as a correct answer. But yes, if i answer to any question and want to accept that answer as a correct answer, i need 20 points in my pocket. :-)

2014-06-03 12:18:05 -0700 commented question Suggestions for this forum

@Devin I think person who opens question, don't require any point to accept the correct answer.

2014-06-03 11:03:48 -0700 received badge  Organizer (source)
2014-05-30 07:13:23 -0700 commented answer Procedure to apply a patch/fix

Quickest hack is clone the controller repo and download the patch file and replace it and then build the controller code. You can directly download the patch file from gerrit. This is the link for your patch file Just click the "Down Arrow Button" on top of right side panel. Also can you paste the error you are getting with git, so that we can solve it in parallel.

2014-05-29 11:03:43 -0700 commented answer Procedure to apply a patch/fix

From this error it seems like either you don't have gerrit access or your public ssh key is not set in your gerrit account. Follow instruction from the following url to fix the gerrit issue "" I think you can also fetch it as anonymous -- try following command (no need to use your user name) "git fetch refs/changes/28/7428/1 && git checkout FETCH_HEAD" then "git checkout -b <branch_name>"

2014-05-29 08:28:23 -0700 commented answer Procedure to apply a patch/fix

From where are you firing this command? You have to fire it from the controller directory which you cloned from controller repo.

2014-05-29 07:26:06 -0700 answered a question Procedure to apply a patch/fix

From your controller git repo fire this command (make sure you use your GERRIT USER NAME in below command)

git fetch ssh://<YOUR GERRIT USER NAME> refs/changes/28/7428/1 && git checkout FETCH_HEAD


git checkout -b <branch name>

This branch will contain your patch. You can verify it using

git log -1
2014-05-20 22:39:27 -0700 received badge  Supporter (source)
2014-05-16 07:41:24 -0700 received badge  Teacher (source)
2014-05-16 00:01:29 -0700 answered a question What is the MD-SAL equivalent of the AD-Sal TopologyManager

MD-SAL based topology manager code is present in ~/controller/opendaylight/md-sal/topology-manager/ .

2014-05-15 23:51:28 -0700 commented answer How to mark a question as answered?

Only author of the question can mark the answer. Can you try to mark my answer above ( you can undo it by clicking it again)

2014-05-15 23:46:38 -0700 answered a question How to mark a question as answered?

Look at the gray check mark image description on the left side of the answer and just click that. It turns green and you are done with accepting the answer :).

2014-05-15 04:30:57 -0700 answered a question Openflow Plugin Extension Development

1) If i am getting your question correct, by "creating new openflow plugin" if you mean to make a copy the existing code and then modify it to add your extension, then i would say that's unnecessary. If you use 'git' for managing the code, you can create your own local branch and modify the code. Following URL can give you some direction

2) openflowplugin project has dependency on "openflowjava" library, and it usage it for connection handling and for decoding/encoding of the openflow protocol messages.

/controller/opendaylight/protocol_plugins/openflow/ -- this directory contains AD-SAL based openflowplugin code and /controller/third-party/openflowj/ directory contains the encoding / decoding library code. Both of these source code are part of the AD-SAL based stack of the controller. So to give a clear view, we have two parallel stack

a) AD-SAL based -- and above mentioned directory contains its openflowplugin and openflowjava (encoding/decoding) library. This stack only support openflow 1.0.

b) MD-SAL based -- Openflowplugin project (repo : openflowplugin.git) is MD-SAL based openflow plugin that supports openflow 1.0 and openflow 1.3 both. Openflowjava project (repo : openflowjava.git) is MD-SAL based encoder/decoder library and it supports for openflow protocol as well. In the hydrogen release, to start MD-SAL based stack you have to use -of13 option while starting the controller.

3) Yes, its AD-SAL.

2014-05-13 12:23:38 -0700 received badge  Editor (source)
2014-05-13 01:37:24 -0700 answered a question Question: AD-SAL and Yang Tools

1) AD-SAL stands for Application Driven Service Abstraction Layer. Intent of this layer is to provide abstracted view of all the south bound to all the northbound application irrespective of the heterogeneity of the underlying platform its managing. You can get more details at following URL

Source code for AD-SAL is present in ~/controller/opendaylight/sal/ directory.

If you want to explore the AD-SAL based application, you can start from sample application mentioned at the following URL

2) No, Yang tool is not based on UML, it is a tool for generating java source code from models defined in Yang modelling language. Using yang modelling language you can define rpc's , notifications (APIs) and data models. By "other methods" you mean non-api methods that consumes these API's or utility methods, these methods you need to define in your own application java class. You can get more details about yang and yang tool at the following URL

If you explore following sample applications it will give you more clarity on how you can consume yang modelling and MD-SAL for developing your own application:

and if you want to develop your own application you can start from the archtype module

2014-05-13 00:16:23 -0700 received badge  Enthusiast
2014-05-12 11:15:20 -0700 commented question How to resolve this issue while running OpenDayLight Java Maven Imported project in Eclipse?

milsten, as @Mierdin mentioned below, can you use /home/milson/opendaylightOrg/controller as your eclipse workspace directory and then import all the project to your eclipse. This is the way my eclipse workspace for odl is setup and its working fine, so worth trying.

2014-05-11 14:20:22 -0700 commented question How to resolve this issue while running OpenDayLight Java Maven Imported project in Eclipse?

Do you see any options in "Run-->Run History"? If yes, can you trigger "Opendaylight-application" from the available options and see if it works.