[INTTEST-24] Links between switches not discovered when running integration base distro with OF 1.3 plugin Created: 05/Dec/14  Updated: 19/Oct/17  Resolved: 19/Nov/16

Status: Resolved
Project: integration-test
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug
Reporter: Xiao Shi Assignee: Christopher O'Shea
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified
Environment:

Operating System: Linux
Platform: PC



 Description   

I am trying to run ODL with OpenFlow 1.3 md-sal plugin from the integration project. I ran the base distro in integration as the wiki says "./run.sh -of13", and in mininet, I set up a small network with "sudo mn --topo tree,2 --switch ovsk,protocols=OpenFlow13 --controller remote,[localhost-ip]".

When I did pingall, I found that hosts that are attached to the same switch can ping each other just fine, but there are no links discovered between switches. When I tried to do "h1 ping h3" where h1 is attached to switch1 and h3 is attached to switch3, the packets are dropped as punted.

Below is the log file, and I've highlighted several warnings and exceptions. From the looks of it, the OF1.3 md-sal plugin is still calling ad-sal SimpleForwardingManagerImpl and I am not seeing hosttracker component.

Any idea why this is and how I could fix the issue? I checked a few related bugs but the fixes don't seem to apply.

Thank you!
Xiao

$ ./run.sh -of13
find: `./configuration/initial.available': No such file or directory
JVM maximum memory was set to -Xmx1G.
osgi> 2014-12-03 22:57:16.358 EST [fileinstall-./plugins] INFO o.o.c.c.s.internal.ClusterManager - I'm a GossipRouter will listen on port 12001
2014-12-03 22:57:16.591 EST [fileinstall-./plugins] INFO o.o.c.c.s.internal.ClusterManager - Started GossipRouter
2014-12-03 22:57:16.592 EST [fileinstall-./plugins] INFO o.o.c.c.s.internal.ClusterManager - Starting the ClusterManager
GossipRouter started at Wed Dec 03 22:57:16 EST 2014
Listening on port 12001 bound on address 0.0.0.0/0.0.0.0
Backlog is 1000, linger timeout is 2000, and read timeout is 0
2014-12-03 22:57:35.342 EST [fileinstall-./plugins] INFO o.o.c.c.i.ConfigurationService - ConfigurationService Manager init
2014-12-03 22:57:36.474 EST [fileinstall-./plugins] WARN o.o.c.u.internal.UserManager - Network Administrator password is set to factory default. Please change the password as soon as possible.
2014-12-03 22:57:47 EST [org.apache.catalina.mbeans.GlobalResourcesLifecycleListener] SEVERE org.apache.catalina.mbeans.GlobalResourcesLifecycleListener createMBeans No global naming context defined for server
2014-12-03 22:57:48.138 EST [config-pusher] INFO o.o.y.y.d.i.s.tree.InMemoryDataTree - Attempting to install schema contexts
2014-12-03 22:57:48.153 EST [config-pusher] INFO o.o.c.m.s.c.u.j.ThreadExecutorStatsMXBeanImpl - Executor com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService@8ac7447 is not supported
2014-12-03 22:57:48.154 EST [config-pusher] INFO o.o.y.y.d.i.s.tree.InMemoryDataTree - Attempting to install schema contexts
2014-12-03 22:57:48.155 EST [config-pusher] INFO o.o.c.m.s.c.u.j.ThreadExecutorStatsMXBeanImpl - Executor com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService@214f7dd0 is not supported
2014-12-03 22:57:48.206 EST [config-pusher] INFO o.o.c.m.s.b.i.ForwardedBackwardsCompatibleDataBroker - ForwardedBackwardsCompatibleBroker started.
2014-12-03 22:57:48.221 EST [config-pusher] WARN o.o.c.s.b.i.c.d.BindingIndependentConnector - Unable to start Notification forwarding. Reason: DOM Notification Service is not initialized properly!
2014-12-03 22:57:48.222 EST [config-pusher] INFO o.o.c.s.b.i.RootBindingAwareBroker - Starting Binding Aware Broker: binding-broker-impl
2014-12-03 22:57:51.028 EST [pool-2-thread-1] INFO o.o.controller.frm.FRMActivator - FRMActivator initialization.
2014-12-03 22:57:51.313 EST [pool-2-thread-1] INFO o.o.c.f.i.ForwardingRulesManagerImpl - ForwardingRulesManager has started successfull.
2014-12-03 22:57:51.313 EST [pool-2-thread-1] INFO o.o.controller.frm.FRMActivator - FRMActivator initialization successfull.
2014-12-03 22:57:51.323 EST [config-pusher] INFO o.o.c.s.c.topology.TopologyProvider - TopologyProvider started
2014-12-03 22:57:51.349 EST [pool-2-thread-4] INFO o.o.c.m.s.m.StatisticsManagerActivator - StatisticsManagerActivator initialization.
2014-12-03 22:57:51.378 EST [pool-2-thread-3] INFO o.o.m.c.t.lldp.LLDPDiscoveryProvider - LLDPDiscoveryListener Started.
2014-12-03 22:57:51.391 EST [pool-2-thread-2] INFO o.o.c.m.i.m.FlowCapableInventoryProvider - Flow Capable Inventory Provider started.
2014-12-03 22:57:51.726 EST [config-pusher] INFO o.o.c.c.y.c.k.i.KitchenServiceModule - KitchenService (instance org.opendaylight.controller.config.yang.config.kitchen_service.impl.KitchenServiceModule$1AutoCloseableKitchenService@13c5a945) initialized.
2014-12-03 22:57:51.824 EST [pool-2-thread-4] INFO o.o.c.m.s.m.i.StatisticsManagerImpl - Statistics Manager started successfully!
2014-12-03 22:57:51.824 EST [pool-2-thread-4] INFO o.o.c.m.s.m.StatisticsManagerActivator - StatisticsManagerActivator started successfully.
2014-12-03 22:57:51.831 EST [config-pusher] INFO o.o.c.c.y.c.t.i.ToasterProviderModule - Toaster provider (instance org.opendaylight.controller.config.yang.config.toaster_provider.impl.ToasterProviderModule$1AutoCloseableToaster@229865ac) initialized.
2014-12-03 22:57:52.052 EST [Web socket server on port PortNumber [_value=8185]] INFO o.o.c.s.s.websockets.WebSocketServer - Web socket server started at port 8185.
2014-12-03 22:57:52.204 EST [config-pusher] INFO o.o.y.g.v.u.o.p.x.n.y.o._.c.p.i.rev140328.SwitchConnectionProviderModule - SwitchConnectionProvider started.
2014-12-03 22:57:52.300 EST [config-pusher] INFO o.o.y.g.v.u.o.p.x.n.y.o._.c.p.i.rev140328.SwitchConnectionProviderModule - SwitchConnectionProvider started.
2014-12-03 22:57:52.476 EST [Thread-20] INFO o.o.o.protocol.impl.core.TcpHandler - Switch listener started and ready to accept incoming tcp/tls connections on port: 6633
2014-12-03 22:57:52.479 EST [Thread-21] INFO o.o.o.protocol.impl.core.TcpHandler - Switch listener started and ready to accept incoming tcp/tls connections on port: 6653
2014-12-03 22:57:52.571 EST [config-pusher] INFO o.o.y.g.v.u.o.p.x.n.y.o.c.c.i.r.MsgSpyServiceModule - MsgStatService (instance org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.openflow.common.config.impl.rev140326.MsgSpyServiceModule$1AutoClosableMsgSpyService@cddb7d2) initialized.
2014-12-03 22:58:00 EST [com.sun.jersey.core.spi.component.ProviderServices] SEVERE com.sun.jersey.core.spi.component.ProviderServices getInstances The class org.opendaylight.aaa.sts.TokenAuthFilter could not be found. This class is ignored.
2014-12-03 22:58:01 EST [com.sun.jersey.spi.inject.Errors] WARNING com.sun.jersey.spi.inject.Errors processErrorMessages The following warnings have been detected with resource and/or provider classes:
WARNING: Parameter 2 of type org.opendaylight.yangtools.yang.data.api.Node<?> from public abstract javax.ws.rs.core.Response org.opendaylight.controller.sal.rest.api.RestconfService.updateConfigurationData(java.lang.String,org.opendaylight.yangtools.yang.data.api.Node<?>) is not resolvable to a concrete type
WARNING: Parameter 2 of type org.opendaylight.yangtools.yang.data.api.Node<?> from public abstract javax.ws.rs.core.Response org.opendaylight.controller.sal.rest.api.RestconfService.createConfigurationData(java.lang.String,org.opendaylight.yangtools.yang.data.api.Node<?>) is not resolvable to a concrete type
WARNING: Parameter 1 of type org.opendaylight.yangtools.yang.data.api.Node<?> from public abstract javax.ws.rs.core.Response org.opendaylight.controller.sal.rest.api.RestconfService.createConfigurationData(org.opendaylight.yangtools.yang.data.api.Node<?>) is not resolvable to a concrete type
2014-12-03 22:58:29.491 EST [remote-connector-processing-executor-3] WARN o.o.c.s.c.n.s.NetconfDeviceSalFacade - RemoteDevice

{controller-config}: Some rpcs from netconf device were not registered: [(urn:opendaylight:group:service?revision=2013-09-18)add-group, (urn:opendaylight:port:statistics?revision=2013-12-14)get-all-node-connectors-statistics, (urn:opendaylight:meter:statistics?revision=2013-11-11)get-meter-features, (urn:opendaylight:meter:service?revision=2013-09-18)add-meter, (urn:opendaylight:flow:statistics?revision=2013-08-19)get-aggregate-flow-statistics-from-flow-table-for-given-match, (urn:opendaylight:flow:service?revision=2013-08-19)remove-flow, (urn:opendaylight:group:statistics?revision=2013-11-11)get-group-features, (urn:opendaylight:group:statistics?revision=2013-11-11)get-all-group-statistics, (urn:opendaylight:flow:table:statistics?revision=2013-12-15)get-flow-tables-statistics, (urn:opendaylight:queue:statistics?revision=2013-12-16)get-queue-statistics-from-given-port, (urn:opendaylight:group:statistics?revision=2013-11-11)get-group-statistics, (urn:opendaylight:group:service?revision=2013-09-18)remove-group, (urn:opendaylight:flow:statistics?revision=2013-08-19)get-aggregate-flow-statistics-from-flow-table-for-all-flows, (urn:opendaylight:flow:service?revision=2013-08-19)update-flow, (urn:opendaylight:flow:statistics?revision=2013-08-19)get-all-flow-statistics-from-flow-table, (urn:opendaylight:port:statistics?revision=2013-12-14)get-node-connector-statistics, (urn:opendaylight:flow:transaction?revision=2013-11-03)get-next-transaction-id, (urn:opendaylight:table:service?revision=2013-10-26)update-table, (urn:opendaylight:port:service?revision=2013-11-07)update-port, (urn:opendaylight:flow:service?revision=2013-08-19)add-flow, (urn:opendaylight:queue:statistics?revision=2013-12-16)get-all-queues-statistics-from-all-ports, (urn:opendaylight:meter:statistics?revision=2013-11-11)get-meter-statistics, (urn:opendaylight:meter:service?revision=2013-09-18)remove-meter, (urn:opendaylight:meter:service?revision=2013-09-18)update-meter, (urn:opendaylight:group:statistics?revision=2013-11-11)get-group-description, (urn:opendaylight:group:service?revision=2013-09-18)update-group, (urn:opendaylight:packet:service?revision=2013-07-09)transmit-packet, (urn:opendaylight:meter:statistics?revision=2013-11-11)get-all-meter-statistics, (urn:opendaylight:meter:statistics?revision=2013-11-11)get-all-meter-config-statistics, (urn:opendaylight:module:config?revision=2014-10-15)set-config, (urn:opendaylight:flow:statistics?revision=2013-08-19)get-all-flows-statistics-from-all-flow-tables, (urn:opendaylight:queue:statistics?revision=2013-12-16)get-all-queues-statistics-from-given-port, (urn:opendaylight:flow:statistics?revision=2013-08-19)get-flow-statistics-from-flow-table, (urn:opendaylight:flow:transaction?revision=2013-11-03)finish-transaction]
2014-12-03 22:58:33.127 EST [remote-connector-processing-executor-3] INFO o.o.c.s.c.netconf.NetconfDevice - RemoteDevice{controller-config}

: Netconf connector initialized successfully

2014-12-03 22:58:51.226 EST [nioEventLoopGroup-11-1] WARN o.o.o.o.m.c.s.SessionManagerOFImpl - context for invalidation not found
2014-12-03 22:58:51.316 EST [OFHandshake-0-0] WARN o.o.o.o.m.c.ErrorHandlerSimpleImpl - exception -> FIRST HELLO sending failed because of connection issue., session -> null
org.opendaylight.openflowplugin.ConnectionException: FIRST HELLO sending failed because of connection issue.
at org.opendaylight.openflowplugin.openflow.md.core.HandshakeManagerImpl.sendHelloMessage(HandshakeManagerImpl.java:297) ~[bundlefile:na]
at org.opendaylight.openflowplugin.openflow.md.core.HandshakeManagerImpl.shake(HandshakeManagerImpl.java:98) ~[bundlefile:na]
at org.opendaylight.openflowplugin.openflow.md.core.HandshakeStepWrapper.run(HandshakeStepWrapper.java:47) [bundlefile:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_65]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65]
2014-12-03 22:58:51.929 EST [nioEventLoopGroup-11-2] INFO o.o.o.p.i.c.c.ConnectionAdapterImpl - Hello received / branch
2014-12-03 22:58:52.296 EST [nioEventLoopGroup-11-3] INFO o.o.o.p.i.c.c.ConnectionAdapterImpl - Hello received / branch
2014-12-03 22:58:52.309 EST [nioEventLoopGroup-11-4] INFO o.o.o.p.i.c.c.ConnectionAdapterImpl - Hello received / branch
2014-12-03 22:58:52.365 EST [nioEventLoopGroup-11-3] WARN o.o.o.o.m.c.s.SessionManagerOFImpl - context for invalidation not found
2014-12-03 22:58:52.365 EST [OFHandshake-2-0] WARN o.o.o.o.m.c.ErrorHandlerSimpleImpl - exception -> FIRST HELLO sending failed because of connection issue., session -> null
org.opendaylight.openflowplugin.ConnectionException: FIRST HELLO sending failed because of connection issue.
at org.opendaylight.openflowplugin.openflow.md.core.HandshakeManagerImpl.sendHelloMessage(HandshakeManagerImpl.java:297) ~[bundlefile:na]
at org.opendaylight.openflowplugin.openflow.md.core.HandshakeManagerImpl.shake(HandshakeManagerImpl.java:98) ~[bundlefile:na]
at org.opendaylight.openflowplugin.openflow.md.core.HandshakeStepWrapper.run(HandshakeStepWrapper.java:47) [bundlefile:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_65]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_65]
at java.lang.Thread.run(Thread.java:745) [na:1.7.0_65]
2014-12-03 22:58:53.370 EST [nioEventLoopGroup-11-5] INFO o.o.o.p.i.c.c.ConnectionAdapterImpl - Hello received / branch
2014-12-03 22:59:00.094 EST [Thread-31] WARN o.o.c.s.s.i.SimpleForwardingImpl - Dropping punted IP packet received at OF|1@OF|00:00:00:00:00:00:00:02 to Host /10.0.0.3



 Comments   
Comment by Luis Gomez [ 05/Dec/14 ]

Hi Xiao, any reason you are using old Hydrogen distribution? I would recommend to use Helium or Lithium Karaf that is actively supported:

https://wiki.opendaylight.org/view/CrossProject:Integration_Group:Controller_Artifacts

Once you run that you can install odl-l2switch-switch-ui feature and retry your test.

BR/Luis

Comment by Xiao Shi [ 06/Dec/14 ]

Hi Luis,

Thank you so much for your prompt reply.

I got my integration repo from github.com/opendaylight/integration (master branch), which I thought was the latest repo. I guess parts of that repo are still hydrogen? And I still didn't quite understand ODL base and karaf separation, is one being phased out?

The main motivation is to compile from controller and OF1.3 plugin, as we are building new projects on top of these two, and might lightly modify their code at least in the testing stage. How would you suggest I go about doing that?

In terms of l2switch, I pulled from their repo, and their topo discovery indeed works. Maybe I should just build on top of l2switch?

Thank you so much!

Best,
Xiao

P.S. if you feel this is beyond bugzilla scope, feel free to email me at xiao.shi@yale.edu

Comment by Christopher O'Shea [ 06/Dec/14 ]

Hi Xiao,

It seem like you're starting it the old OSGi way and not the Karaf way, (an out dated wiki page, can you link it here so i can update the way to start the controller now)

You can find it in

cd integration/distributions/extra/karaf/target/assembly/bin
./karaf

then you need to do "feature:install odl-openflowplugin-flow-services-ui"

Thanks
Chris

Comment by Xiao Shi [ 06/Dec/14 ]

(In reply to Christopher O'Shea from comment #3)
> Hi Xiao,
>
> It seem like you're starting it the old OSGi way and not the Karaf way, (an
> out dated wiki page, can you link it here so i can update the way to start
> the controller now)
>
> You can find it in
>
> cd integration/distributions/extra/karaf/target/assembly/bin
> ./karaf
>
> then you need to do "feature:install odl-openflowplugin-flow-services-ui"
>
> Thanks
> Chris

Hi Chris,

Thank you!

So the OSGi way is being phased out by Karaf? Is that correct?

The wikipage I was looking at was this one: https://wiki.opendaylight.org/view/OpenDaylight_OpenFlow_Plugin::Running_controller_with_the_new_OF_plugin

But now it looks like Avishnoi updated it with the karaf way the day before yesterday. I guess I missed it.

I tried with the karaf instruction and I did get the topology working. However, there was no forwarding service. i.e. I tried "h1 ping h2", and it says host unreachable. I installed all l2switch and openflow features, and I wonder whether I am still missing some other artifacts. I know in AD-SAL there is a SimpleForwardingImpl, but what's the equivalent in MD-SAL integration?

Thanks again!
Xiao

Comment by Christopher O'Shea [ 06/Dec/14 ]

The L2switch should handle it. (there is a known issue about some hardware switch writing not allow to write to table 0) If you're using mininet it should be handle fine.

I would try just install " odl-l2switch-switch-ui" that Luis said to try.
If still having issue then look to see if ODL push any flows to the switch.

This should work as it's part of the Complete system Integration testing.
https://jenkins.opendaylight.org/integration/job/integration-master-csit-l2switch-only/196/robot/report/report.html#suite_s1-s3

Comment by Xiao Shi [ 08/Dec/14 ]

(In reply to Christopher O'Shea from comment #5)
> The L2switch should handle it. (there is a known issue about some hardware
> switch writing not allow to write to table 0) If you're using mininet it
> should be handle fine.
>
> I would try just install " odl-l2switch-switch-ui" that Luis said to try.
> If still having issue then look to see if ODL push any flows to the switch.
>
> This should work as it's part of the Complete system Integration testing.
> https://jenkins.opendaylight.org/integration/job/integration-master-csit-
> l2switch-only/196/robot/report/report.html#suite_s1-s3

Hi,

Chris, I tried and it worked--I think it might have been that I just installed the features. I restarted the controller and everything worked fine.

Thank you so much!
Best,
Xiao

Generated at Wed Feb 07 20:04:21 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.