Git Product home page Git Product logo

floodlight's Introduction

Floodlight OpenFlow Controller (OSS)

Attention!

As of August 2018, the Floodlight mailing list has moved to [email protected]! Archives and the new group home page can be found here. Please see Documentation and Support below for up-to-date support information.

Build Status

Build Status

What is Floodlight?

Floodlight is the leading open source OpenFlow controller. It is supported by a community of developers, including a number of engineers from Big Switch Networks.

What is OpenFlow?

OpenFlow is a open standard managed by Open Networking Foundation. It specifies a protocol by which a remote controller can modify the behavior of networking devices through a well-defined “forwarding instruction set”. Floodlight is designed to work with the growing number of switches, routers, virtual switches, and access points that support the OpenFlow standard.

Getting Started

The quickest way to use Floodlight is to start with our pre-built VM, which includes the controller, IDE, and everything you need to use Floodlight and/or start developing. You can also deploy and develop with Floodlight in your own environment.

If you are a developer and are looking for project ideas, please take a look at our current issues. They are a great way to get started developing with Floodlight and provide a concrete way in which to give back!

Documentation and Support

Ready to get started using Floodlight? The Floodlight wiki contains user and developer documentation, as well as helpful tutorials from beginner to advanced.

Do you have a question, comment, or a great idea you'd like to propose to the community? Please subscribe and send to our mailing list [email protected]. Archives and additional content can be found on the group homepage.

Contribution

Floodlight is supported by contributions from developers like yourself. If you found and fixed something that needed attention or have added a feature, please consider giving back by opening a pull request. We value each and every contribution, no matter how large or how small.

If you have found a bug or have a feature request, please send a note to [email protected] and open a issue to track it. If you are able to give back by addressing the issue yourself, please read the above and thank you! If you are unable to contribute a solution, following these simple steps will allow someone the opportunity to do so.

Interested in contributing but don't know where to start? Check out and consider addressing any of our current issues.

Authors and Contributors

Thank you to all who have contributed to Floodlight! Please reach out if we have missed you, so that you can be added to this growing list.

floodlight's People

Contributors

adferguson avatar allewwaly avatar amertahir avatar andi-bigswitch avatar banerjee avatar geddings avatar gregor-bsn avatar hwchiu avatar kjiang avatar kwanggithub avatar meiyangbigswitch avatar mmehta avatar ocoutinho avatar oshothebig avatar oxisto avatar paaguti-work avatar pengfei-lu avatar phphavok avatar qingwang0909 avatar rizard avatar rlane avatar sandeephebbani avatar sandipshah avatar sanjivininaikar avatar sd2 avatar shudongz avatar sovietaced avatar thewmf avatar vishnu-emmadi avatar vy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

floodlight's Issues

Get BPDU from legacy switch

hi everyone,
i am working on how to construct a network combined with SDNand legacy switch using floodlight.
My plan is to get information from BPDU packet sended by legacy switch and analyze it. However, i can't catch it by listening to PACKET_IN event. i am wondering is there anyway i can try to catch the control packets sended by legacy switch. Thanks all!!

Floodlight barfs on hello packet

This is a hello packet sent from a Linux machine running openvswitch.

Here is what eclipse says the packet is:
[4, 0, 0, 16, 0, 0, 17, -24, 0, 1, 0, 8, 0, 0, 0, 26]

this can be interpreted as
version=4
type= hello
length = 16
xid=4584

The problem is that the floodlight code assumes that the hello message is 8 bytes and tries to read the next 8 bytes as a new packet, ignoring that this packet says it's 16 bytes.

Floodlight interprets the last 8 bytes as a new packet of type "error" which is longer than 8 bytes and tries to read off the end of the buffer.

Some question about openflow-1.3 branch

Hi.

I'm so glad to see that the floodlight supports OpenFlow 1.3 and i can't wait to use.
I checkout the openflow-1.3 branch and use "ant" to compile but meet many errors.
I have solved some errors already, but there still some error i don't know how to fix.
Following is the list what i fix.

solved

  1. Generate the latest version of loxigen (type OFAuxId)
    • Generate openflowj-0.3.8-SNAPSHOT.jar and put it into directory.
    • Modify the build.xml
  2. Install the java3d (for FlowReconcileManager)
    • Install Jave3D and put j3dutils.jar into lib direcetory.
    • Modify the build.xml
  3. Use the java 1.7 instead of 1.6
    • Modify the build.xml

not yet

  1. https://github.com/floodlight/floodlight/blob/openflow-1.3/src/main/java/net/floodlightcontroller/core/web/CounterResource.java#L50
    • it has a unnecessary close parenthesis.
    • what does triple question marks means ? is a typo ?
  2. The other error messages are the same and someone non-exist functions has been called.
    • For example. IOFSwitch don't have a member function getStringId but it has been called in core/web/ControllerSwitchesResource.java:104:

Thanks.

value of DL_VLAN_PCP is "dl_vpcp" in OFMatch.java not "dl_vlan_pcp"

I was testing the static flow pusher when I encountered an error while matching on Vlan Priority. The value for STR_DL_VLAN_PCP in OFMatch.java is actually dl_vpcp, but everywhere in floodlight a value of "dl_vlan_pcp" is used. As a result, OFMatch.fromString() throws an error.

Can't pass ant building on ubuntu 12.04

with latest master-branch version "76007c4"
the error message is
[javac] floodlight/src/test/java/net/floodlightcontroller/devicemanager/internal/DeviceManagerImplTest.java:967: cannot find symbol
[javac] symbol : constructor Long(java.util.concurrent.atomic.AtomicLong)
[javac] location: class java.lang.Long
[javac] new Long(deviceManager.deviceKeyCounter),
[javac] ^
[javac] 1 error

Run multiple instances of floodlight

Hi,

I want to run multiple instances of floodlight on different IP address and port. Is there any idea how I can do that? I'm trying to this for Mactracker module?

debugcounter module bug

CounterNode remove(List<String> hierarchyElements) in CounterNode.java, if the hierarchyElements is empty, String keyToRemove = hierarchyElements.remove(hierarchyElements.size() - 1) will throw IndexOutOfBoundsException, it should return null and log it if hierarchyElements.isEmpty()

JUnit test does not complete running without using Eclipse

I have noticed that JUnit does not complete running in master. It occurs, when only Ant is used without using Eclipse. The cause of this issue is that "src/main/resources" are not copied to "target/bin" directory, when only Ant is used. When not copied, ServiceLoader cannot find IFloodlightModule(s). In using Eclipse (i.e. when a project is imported to Eclipse workspace), it performs the work.

----------8<----------8<----------
$ ant clean && ant test
…(snip)…
[junit] Running net.floodlightcontroller.learningswitch.LearningSwitchTest
[junit] Tests run: 3, Failures: 0, Errors: 3, Time elapsed: 0.01 sec
[junit] TEST net.floodlightcontroller.learningswitch.LearningSwitchTest FAILED
…(snip)…
BUILD FAILED
/home/satoshi/Repos/floodlight/build.xml:194: Unit test(s) failed. See reports!
----------8<----------8<----------

If a directory is manually copied, it goes well.

----------8<----------8<----------
$ cp -r src/main/resources/* target/bin/
$ ant test
…(snip)…
BUILD SUCCESSFUL
Total time: 6 seconds
----------8<----------8<----------

IMHO, The task which copies src/main/resources should be contained in "compile" task.

Can't get OpenFlow BarrierReply

I register the packet processing chain of BarrierReply but i can't get any reply so that i trace the source code to figure out.

As i know, floodlight will parse the OpenFlow header type after it receives a packet from the switch and it will call the corresponding function to handle it.
For example. if the packet type is "PACKET_IN" and it will use " h.dispatchMessage(m);
" to dispatch thie message to all listener. However, for type "BARRIER_REPLY" , it will do nothing so i can't get any barrier-reply in my own floodlight modules.

I want to know there are some reason why the BARRIER_REPLY do nothing or just some code needed to be patch ?

Thanks.

blocking the host permanently

Hi..

I am getting the following error when a host sends too much traffic:

01:49:03.948 INFO [n.f.c.OFSwitchBase:New I/O server worker #2-1] Excessive packet in from SwitchPort [switchDPID=00:00:00:21:91:8b:6d:4b, port=1, errorStatus=null], block port for 5 sec
How to block the host in OFSwitcheBase.java permanently instead of blocking it temporarily??

Thanks,
Vasanthi

staticflowentry bug

the StaticFlowEntryPusher which implement IStaticFlowEntryPusherService, has some consistence problems. the addFlow() and getFlows() lack of consistence because addFlow() only update storageSourceService without entriesFromStorage.

How can floodlight get the "Slient Server" MAC?

"Silent Server" means a server won't actively broadcast or send any packet(i.e. ARP, ICMPV6). When floodlight work as a LoadBalancer, how could it get the server MAC so that they can correctly forward the packet?
In another case, the client have already had Server MAC before controller have that (it won't send ARP request so controller can't learn the ip&mac from server's ARP reply),.

REST api GET requests should not modify state

Currently enabling/disabling the firewall is done via HTTP GET requests to the "REST" api.

It is best practice for GET requests to not change the state of the system. It also has security implications related to cross site request forgery. I suggest switching to PUT requests for these endpoints.

The PerfMon system also changes state based on GET requests and should be updated to use PUT or POST.

While following the tutorial, floodlight give me an exception

Hello, I was following the following tutorial http://docs.projectfloodlight.org/display/floodlightcontroller/How+to+Write+a+Module
And on the Register The Module part the floodlight give me the following exception:
<==============================================>
mininet@mininet-vm:~/floodlight$ java -jar target/floodlight.jar
13:24:43.898 INFO [n.f.c.m.FloodlightModuleLoader:main] Loading default modules
Exception in thread "main" net.floodlightcontroller.core.module.FloodlightModuleException: ERROR! The configuraiton file specifies more than one module that provides the service net.floodlightcontroller.core.IFloodlightProviderService. Please specify only ONE of the following modules in the config file: net.floodlightcontroller.core.internal.FloodlightProvider, net.floodlightcontroller.mactracker.MACTracker,
at net.floodlightcontroller.core.module.FloodlightModuleLoader.findAllModules(FloodlightModuleLoader.java:146)
at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromList(FloodlightModuleLoader.java:259)
at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromList(FloodlightModuleLoader.java:362)
at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromConfig(FloodlightModuleLoader.java:200)
at net.floodlightcontroller.core.Main.main(Main.java:55)
<==============================================>

I tried to comment the "net.floodlightcontroller.core.internal.FloodlightProvider" and didn't work, another exception is thrown:
<==============================================>
mininet@mininet-vm:~/floodlight$ java -jar target/floodlight.jar
13:34:09.626 INFO [n.f.c.m.FloodlightModuleLoader:main] Loading default modules
Exception in thread "main" net.floodlightcontroller.core.module.FloodlightModuleException: Module net.floodlightcontroller.core.internal.FloodlightProvider not found
at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromList(FloodlightModuleLoader.java:278)
at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromList(FloodlightModuleLoader.java:362)
at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromConfig(FloodlightModuleLoader.java:200)
at net.floodlightcontroller.core.Main.main(Main.java:55)
<==============================================>

Parse HTTP Packet in floodlight

As there is not file to get information about HTTP header.
I have defined my HTTP class.
It throws exception, when I try to execute following code.

TCP tcpPkt = (TCP)ipv4Pkt.getPayload();
if(tcpPkt.getDestinationPort()==(short)80)
{
HTTP httpPkt = (HTTP)tcpPkt.getPayload();
}

Exception:

16:48:38.194 ERROR [n.f.c.i.OFChannelHandler:New I/O server worker #2-2] Error while processing message from switch OFSwitchBase [/127.0.0.1:43129 DPID[00:00:00:21:91:8b:6d:4b]]state MASTER
java.lang.ClassCastException: net.floodlightcontroller.packet.Data cannot be cast to net.floodlightcontroller.packet.TCP

Please help me in resolving the above issue. I also want to know how floodlight parse the packet received from switch.

Thanks,
Nitin

bandwidth related API in floodlight

I have a simple mininet topology with few switches and few hosts.
I have also created a script that to push few flows in between the hosts, I am using the flowstaticpusher module for that.

I have also pushed few queues to on the ports.
all is working well.

I am looking for an APIs in floodlight that will enable me to retrieve ports and links bandwidth across the flows I have created.
when using the existed ReST API (/wm/core/switch/all//json) for stats retrieval (and use 'port' or 'queue' as the type) I get interesting information but, no max,min,current bandwidth is included although the queues I have created on the ports along the flows are set with max_rate and min_rate.

what is the right course of action? I am thinking of extending the current implementation to add the needed attributes, but I am not sure if it is already existed.

Thanks,

Eitan.

NullPointerException occurs in LoadBalancer.java

When a packet-in event occurs, pushBidirectionalVipRoutes method is executed.
In case that all devices (deviceManager.getAllDevices returns) have no IPv4 addresses,
dstDevice is always null and NullPointerException occurs in dstDevice.getAttachmentPoints() (line 414).


18:37:52.809 [New I/O server worker #1-2] ERROR n.f.core.internal.Controller - Error while processing message from switch OFSwitchBase [/192.168.24.133:42734 DPID[00:00:00:00:00:00:01:00]]
java.lang.NullPointerException: null
at net.floodlightcontroller.loadbalancer.LoadBalancer.pushBidirectionalVipRoutes(LoadBalancer.java:414) ~[bin/:na]
at net.floodlightcontroller.loadbalancer.LoadBalancer.processPacketIn(LoadBalancer.java:242) ~[bin/:na]
at net.floodlightcontroller.loadbalancer.LoadBalancer.receive(LoadBalancer.java:179) ~[bin/:na]
at net.floodlightcontroller.core.internal.Controller.handleMessage(Controller.java:1229) ~[bin/:na]
at net.floodlightcontroller.core.internal.Controller$OFChannelHandler.processOFMessage(Controller.java:1073) ~[bin/:na]
at net.floodlightcontroller.core.internal.Controller$OFChannelHandler.messageReceived(Controller.java:634) ~[bin/:na]
at org.jboss.netty.handler.timeout.IdleStateAwareChannelUpstreamHandler.handleUpstream(IdleStateAwareChannelUpstreamHandler.java:48) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.handler.timeout.ReadTimeoutHandler.messageReceived(ReadTimeoutHandler.java:189) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.handler.timeout.IdleStateHandler.messageReceived(IdleStateHandler.java:275) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:302) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:317) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:299) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:216) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:274) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.channel.Channels.fireMessageReceived(Channels.java:261) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.read(NioWorker.java:351) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:282) ~[netty-3.2.6.Final.jar:na]
at org.jboss.netty.channel.socket.nio.NioWorker.run(NioWorker.java:202) ~[netty-3.2.6.Final.jar:na]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) [na:1.7.0_09]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) [na:1.7.0_09]
at java.lang.Thread.run(Thread.java:722) [na:1.7.0_09]

LinkDiscovery Multiple Instances of Floodlight

Hi folks,

I have two questions regarding LinkDiscovery in floodlight. I've the following sample setup:
S1---S2---S3
where one floodlight instance manages S1 and S2, and the other is responsible for S3. My module
receives topology events. However, the link between S2 and S3 is not detected by TopologyManager.

I took a look at DiscoveryManager's source code, and figured out that LLDP message by other controllers are
ignored (Stop). In addition, BDDP packets from a different controller are not processed (Continue), as can be seen
in the following code. Based on this implementation, I have three questions:

1- Why are LLDP packets from other controllers are ignored?
2- Why do you we need to check myID <otherID?
3- What's the best way get link information between S2 and S3?

if (myLLDP == false) {
// This is not the LLDP sent by this controller. If the LLDP message has multicast bit set, then we need to

        // broadcast the packet as a regular packet (after checking IDs)

        if (isStandard) {

            if (log.isTraceEnabled()) {

                log.trace("Got a standard LLDP=[{}] that was not sent by" +

                          " this controller. Not fowarding it.", lldp.toString());

            }

            return Command.STOP;

        } else if (myId < otherId) { 

            if (log.isTraceEnabled()) {

                log.trace("Getting BDDP packets from a different controller"

                          + "and letting it go through normal processing chain.");

            }

            return Command.CONTINUE;

        }

        return Command.STOP;

    }

LearningSwitch.java bug

" vlan = VlanVid.FULL_MASK; " which locaets at the line 169 of LearningSwitch.java is bug in branch openflow1.3 , it should be vlan = VlanVid.ofVlan(0)

Bug in NoSqlStorageSource.java

Line 459: row2 = iterator1.next();

Should be: row2 = iterator2.next();

Explanation: Function combineRowLists() was iterating list1 and list2, in order to calculate the union. Here, row2 increments iterator1 instead of iterator2, which causes problem.

Seems no one happened to call this piece of code before?

BTW, the DEFAULT_PRIMARY_KEY_NAME at line 56 also seems weird. My code went wild since it sets the primary key to another name. There should be at least a doc entry to remind user to use this default key name at the table creation time.

Unable to build Floodlight Eclipse Project

I am receiving a build error in the following package: net.floodlightcontroller.util.MatchUtils in file MatchUtils.java.
This is the full error description:

The method setMasked(MatchField<F>, Masked<F>) in the type Match.Builder is not applicable for the arguments (MatchField, Masked)

on lines 141 and 148 in the call mb.setMasked(mf, m.getMasked(mf));.

Configurations:
Version: 1.0
OS: Mac OS X 10.10
Java (java -version output):
java version "1.8.0_25" Java(TM) SE Runtime Environment (build 1.8.0_25-b17) Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode)

Can somebody help me get around this issue?

bug in routing module

rtStore.put(cntx, IRoutingDecision.CONTEXT_DECISION, this) in routing/RoutingDecision.java 119 line, the rtStore is not defined.

Suse can not run floodlight

when run floodlight in my suse os, In 'net.floodlightcontroller.util.LoadLoadMonitor',numcores = Integer.parseInt(
this.runcmd("/usr/bin/nproc"));
will produce a bug,because Suse dosen't have the file.

floodlight blocking the host

Hello All,

I am getting the following error when a host sends too much traffic:

01:49:03.948 INFO [n.f.c.OFSwitchBase:New I/O server worker #2-1] Excessive packet in from SwitchPort [switchDPID=00:00:00:21:91:8b:6d:4b, port=1, errorStatus=null], block port for 5 sec

Let say this is normal behavior for my test case. Would you please help me to disable this feature in floodlight.

Thanks,
Nitin

HARole bug?

in the core/HARole.java the Constructor

 HARole(OFControllerRole ofRole) {
    this.ofRole = ofRole;
}

can be same as

static HARole ofOFRole(OFControllerRole role) method.

How to get the Switch's Port Information?

Hello,Everyone! I just start to study the Floodlight code,and I want to get the port information such as hardware address! I konw that the OPPhysicalPort class has the information of it, but i don't know how to get it in the running Floodlight controller!

Turn port down

hey guys ,
i got a problem when i try to turn a port down by these code below

try {

   OFPortMod mymod = (OFPortMod) floodlightProvider.getOFMessageFactory().getMessage(OFType.PORT_MOD);
   mymod.setPortNumber(myport.getPortNumber());          
   mymod.setConfig(OFPhysicalPort.OFPortConfig.OFPPC_PORT_DOWN.getValue());
   mymod.setHardwareAddress(myport.getHardwareAddress());
    iofSwitch.write(mymod,cntx);
    iofSwitch.flush();
    logger.info("port down set!!!!!");

} catch (IOException e) {

However,it didn't work. Even myport.getconfig () turn to 0

Can anyone tell what's wrong. Is there any restriction i should notice.
i have surveyed all the method on the Internet ,but i still can't solve it, thanks all.

Can not execute "java -jar target/floodlight.jar"

i have finished installation. when i executed "java -jar target/floodlight.jar",the ubuntu always pauses at “12:49:11.388 [debugserver-main] INFO n.f.jython.JythonServer - Starting DebugServer on port 6655”.

Running Floodlight and access webui

Hi,

I am having a problem with running the floodlight with this command : "java -jar target/floodlight.jar ".

I followed the installation guide but got stuck with this error ("ERROR [o.s.s.i.c.DelegatingCCProvider:main] Failed to initialize provider org.sdnplatform.sync.internal.config.SyncStoreCCProvider
org.sdnplatform.sync.error.PersistException: Could not initialize persistent storage") which seems to have been encountered by other people too:
https://groups.google.com/a/openflowhub.org/forum/#!msg/floodlight-dev/6hQrUBydr-g/9ShGS0ROJGIJ

I will be grateful if anyone could tell me how to get round this.

Thanks

LINK_TIMEOUT

LinkDiscoveryManager.java 770

LINK_TIMEOUT may be 1000 * LINK_TIMEOUT, otherwise the LINK_TIMEOUT will be 35 millseconds

Deleting flows buggy?

info : using master pulled yesterday

I have been using deleteFlowsFromSwitch() and getflows().clear() to allow a user to remove static flows from a switch. I have found that it works somewhat. It appears to work when I call getFlows() again I get nothing back which is good. The problem lies when i make restAPI calls and I can still view all of the flows when they should have been deleted. Even the switch table active count variable remains the same, even though the flows are removed.

WebGUI Topology

I connected two HP 3500 to Floodlight, linked with port 11 to each other.
But Link does'nt Show up in the Topology of the WebGUI.
Please Help!!

Thanx, Xris

PacketStreamerClientExample.py not working: Internal Server Error

Hi all,

I am trying to run the python client example of the packetstreamer.

Compiled the thrift interface and ensured that it compiled properly.

Started the PacketStreamer service on the Floodlight VM.
1000 1034 0.0 0.0 4676 1560 ? S 18:27 0:00 -su -c cd /opt/ floodlight/packetstreamer; exec java -server -Xms150M -Xmx150M -Xmn100M -XX:MaxD irectMemorySize=128M -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRe markEnabled -XX:OnError='kill -9 %p' -XX:OnOutOfMemoryError='kill -9 %p' -enable assertions -Dlogback.configurationFile=/opt/floodlight/packetstreamer/configurat ion/logback.xml -cp /opt/floodlight/floodlight/floodlight.jar net.floodlightcont roller.packetstreamer.PacketStreamerServer 2>&1 | /usr/bin/logger -t packetstrea mer -p user.info

PacketStreamer started successfully:
2013-04-01T22:53:36.472818+00:00 localhost packetstreamer: INFO [net.floodlightcontroller.packetstreamer.PacketStreamerServer:Thread-1] Starting the packetstreamer hsha server on port 9090 ...
2013-04-01T23:03:02.129048+00:00 localhost packetstreamer: INFO [net.floodlightcontroller.packetstreamer.PacketStreamerServer:Thread-1] Starting the packetstreamer hsha server on port 9090 ...
2013-04-02T02:34:44.705715+00:00 localhost packetstreamer: INFO [net.floodlightcontroller.packetstreamer.PacketStreamerServer:Thread-1] Starting the packetstreamer hsha server on port 9090 ...
2013-04-02T19:55:54.393594+00:00 localhost packetstreamer: INFO [net.floodlightcontroller.packetstreamer.PacketStreamerServer:Thread-1] Starting the packetstreamer hsha server on port 9090 ...
2013-04-02T19:58:07.364996+00:00 localhost packetstreamer: INFO [net.floodlightcontroller.packetstreamer.PacketStreamerServer:Thread-1] Starting the packetstreamer hsha server on port 9090 ...
~

Running the PacketStreamClientExample.py as follows:
python PacketStreamerClientExample.py --mac --controller

I keep getting :
Exception: HTTP Error 500: Internal Server Error
Failed to start a packet trace session

At the floodlight controller process it comes from file PacketTraceResource.java due to a NULL Pointer Exception:
at PacketTraceResource.java:126 in the latest source code.

sid = manager.setupFilter(fp.getSessionId(), filter,
fp.getPeriod()*1000);

Am I missing something here? Please let me know how to proceed.

Please find below the floodlight log:
2013-04-02T21:23:06.233716+00:00 localhost floodlight: DEBUG [LogService:Dispatcher-1] Processing request to: "http://192.168.2.203:8080/wm/core/packettrace/json"
2013-04-02T21:23:06.233853+00:00 localhost floodlight: DEBUG [org.restlet.Component.ServerRouter:Dispatcher-1] Default virtual host selected
2013-04-02T21:23:06.233912+00:00 localhost floodlight: DEBUG [org.restlet.Component.ServerRouter:Dispatcher-1] Base URI: "http://192.168.2.203:8080". Remaining part: "/wm/core/packettrace/json"
2013-04-02T21:23:06.233967+00:00 localhost floodlight: DEBUG [org.restlet.VirtualHost:Dispatcher-1] Selected route: "" -> net.floodlightcontroller.restserver.RestApiServer$RestApplication@18c3679
2013-04-02T21:23:06.234020+00:00 localhost floodlight: DEBUG [org.restlet:Dispatcher-1] Selected route: "/wm/core" -> org.restlet.routing.Router@257f1b
2013-04-02T21:23:06.234071+00:00 localhost floodlight: DEBUG [org.restlet:Dispatcher-1] New base URI: "http://192.168.2.203:8080/wm/core". New remaining part: "/packettrace/json"
2013-04-02T21:23:06.234139+00:00 localhost floodlight: DEBUG [org.restlet:Dispatcher-1] Selected route: "/packettrace/json" -> Finder for PacketTraceResource
2013-04-02T21:23:06.234192+00:00 localhost floodlight: DEBUG [org.restlet:Dispatcher-1] New base URI: "http://192.168.2.203:8080/wm/core/packettrace/json". No remaining part to match
2013-04-02T21:23:06.234245+00:00 localhost floodlight: DEBUG [org.restlet:Dispatcher-1] Score of annotation "AnnotationInfo [javaMethod: public net.floodlightcontroller.core.web.PacketTraceResource$PacketTraceOutput net.floodlightcontroller.core.web.PacketTraceResource.packettrace(net.floodlightcontroller.core.web.PacketTraceResource$FilterParameters), resourceInterface: class net.floodlightcontroller.core.web.PacketTraceResource, restletMethod: POST, input: json, output: json, query: null]"= 0.5
2013-04-02T21:23:06.234300+00:00 localhost floodlight: DEBUG [org.restlet:Dispatcher-1] Total score of variant "[application/json]"= 0.08383334
2013-04-02T21:23:06.234351+00:00 localhost floodlight: DEBUG [org.restlet:Dispatcher-1] The following converter was selected for the [application/json] representation: org.restlet.ext.jackson.JacksonConverter@127e4be
2013-04-02T21:23:06.234402+00:00 localhost floodlight: DEBUG [net.floodlightcontroller.core.web.PacketTraceResource:Dispatcher-1] Call setupFilter: sid:null filter:{direction=both, mac=b6:f7:40:01:0e:06}, period:1000000
2013-04-02T21:23:06.239055+00:00 localhost floodlight: WARN [org.restlet:Dispatcher-1] Exception or error caught in server resource
2013-04-02T21:23:06.239258+00:00 localhost floodlight: org.restlet.resource.ResourceException: Internal Server Error
2013-04-02T21:23:06.239350+00:00 localhost floodlight: #011at org.restlet.resource.ServerResource.doHandle(ServerResource.java:505) ~[floodlight.jar:na]
2013-04-02T21:23:06.239435+00:00 localhost floodlight: #011at org.restlet.resource.ServerResource.post(ServerResource.java:1163) ~[floodlight.jar:na]
2013-04-02T21:23:06.239520+00:00 localhost floodlight: #011at org.restlet.resource.ServerResource.doHandle(ServerResource.java:580) ~[floodlight.jar:na]
2013-04-02T21:23:06.239604+00:00 localhost floodlight: #011at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:637) ~[floodlight.jar:na]
2013-04-02T21:23:06.239697+00:00 localhost floodlight: #011at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:336) ~[floodlight.jar:na]
2013-04-02T21:23:06.239787+00:00 localhost floodlight: #011at org.restlet.resource.ServerResource.handle(ServerResource.java:899) ~[floodlight.jar:na]
2013-04-02T21:23:06.239869+00:00 localhost floodlight: #011at org.restlet.resource.Finder.handle(Finder.java:243) [floodlight.jar:na]
2013-04-02T21:23:06.239939+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.239990+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.240040+00:00 localhost floodlight: #011at org.restlet.routing.Router.doHandle(Router.java:428) [floodlight.jar:na]
2013-04-02T21:23:06.240089+00:00 localhost floodlight: #011at org.restlet.routing.Router.handle(Router.java:645) [floodlight.jar:na]
2013-04-02T21:23:06.240182+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.240283+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.240392+00:00 localhost floodlight: #011at org.restlet.routing.Router.doHandle(Router.java:428) [floodlight.jar:na]
2013-04-02T21:23:06.240495+00:00 localhost floodlight: #011at org.restlet.routing.Router.handle(Router.java:645) [floodlight.jar:na]
2013-04-02T21:23:06.240594+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.240726+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.240804+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.240882+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.240973+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.241063+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.241164+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.241250+00:00 localhost floodlight: #011at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151) [floodlight.jar:na]
2013-04-02T21:23:06.241330+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.241400+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.241466+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.241539+00:00 localhost floodlight: #011at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:208) [floodlight.jar:na]
2013-04-02T21:23:06.241612+00:00 localhost floodlight: #011at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:75) [floodlight.jar:na]
2013-04-02T21:23:06.241995+00:00 localhost floodlight: #011at org.restlet.Application.handle(Application.java:378) [floodlight.jar:na]
2013-04-02T21:23:06.242050+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.242415+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.242472+00:00 localhost floodlight: #011at org.restlet.routing.Router.doHandle(Router.java:428) [floodlight.jar:na]
2013-04-02T21:23:06.242523+00:00 localhost floodlight: #011at org.restlet.routing.Router.handle(Router.java:645) [floodlight.jar:na]
2013-04-02T21:23:06.242598+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.242739+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.242748+00:00 localhost floodlight: #011at org.restlet.routing.Router.doHandle(Router.java:428) [floodlight.jar:na]
2013-04-02T21:23:06.242754+00:00 localhost floodlight: #011at org.restlet.routing.Router.handle(Router.java:645) [floodlight.jar:na]
2013-04-02T21:23:06.242760+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.242766+00:00 localhost floodlight: #011at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151) [floodlight.jar:na]
2013-04-02T21:23:06.242771+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.242776+00:00 localhost floodlight: #011at org.restlet.routing.Filter.doHandle(Filter.java:156) [floodlight.jar:na]
2013-04-02T21:23:06.242781+00:00 localhost floodlight: #011at org.restlet.routing.Filter.handle(Filter.java:203) [floodlight.jar:na]
2013-04-02T21:23:06.242787+00:00 localhost floodlight: #011at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:208) [floodlight.jar:na]
2013-04-02T21:23:06.242792+00:00 localhost floodlight: #011at org.restlet.Component.handle(Component.java:389) [floodlight.jar:na]
2013-04-02T21:23:06.242796+00:00 localhost floodlight: #011at org.restlet.Server.handle(Server.java:513) [floodlight.jar:na]
2013-04-02T21:23:06.243335+00:00 localhost floodlight: #011at org.restlet.engine.ServerHelper.handle(ServerHelper.java:69) [floodlight.jar:na]
2013-04-02T21:23:06.243345+00:00 localhost floodlight: #011at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:149) [floodlight.jar:na]
2013-04-02T21:23:06.243351+00:00 localhost floodlight: #011at org.restlet.ext.simple.internal.SimpleContainer.handle(SimpleContainer.java:77) [floodlight.jar:na]
2013-04-02T21:23:06.243357+00:00 localhost floodlight: #011at org.simpleframework.http.core.Dispatcher.dispatch(Dispatcher.java:107) [floodlight.jar:na]
2013-04-02T21:23:06.243363+00:00 localhost floodlight: #011at org.simpleframework.http.core.Dispatcher.run(Dispatcher.java:90) [floodlight.jar:na]
2013-04-02T21:23:06.243368+00:00 localhost floodlight: #011at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [na:1.6.0_29]
2013-04-02T21:23:06.243373+00:00 localhost floodlight: #011at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [na:1.6.0_29]
2013-04-02T21:23:06.243380+00:00 localhost floodlight: #011at java.lang.Thread.run(Unknown Source) [na:1.6.0_29]
2013-04-02T21:23:06.243385+00:00 localhost floodlight: Caused by: java.lang.NullPointerException: null
2013-04-02T21:23:06.243391+00:00 localhost floodlight: #011at net.floodlightcontroller.core.web.PacketTraceResource.packettrace(PacketTraceResource.java:110) ~[floodlight.jar:na]
2013-04-02T21:23:06.243396+00:00 localhost floodlight: #011at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.6.0_29]
2013-04-02T21:23:06.243873+00:00 localhost floodlight: #011at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_29]
2013-04-02T21:23:06.243883+00:00 localhost floodlight: #011at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[na:1.6.0_29]
2013-04-02T21:23:06.243888+00:00 localhost floodlight: #011at java.lang.reflect.Method.invoke(Unknown Source) ~[na:1.6.0_29]
2013-04-02T21:23:06.243894+00:00 localhost floodlight: #011at org.restlet.resource.ServerResource.doHandle(ServerResource.java:491) ~[floodlight.jar:na]
2013-04-02T21:23:06.243898+00:00 localhost floodlight: #11... 52 common frames omitted
2013-04-02T21:23:06.247528+00:00 localhost floodlight: INFO [LogService:Dispatcher-1] 2013-04-02#01121:23:06#011192.168.2.202#011-#11-#0118080#011POST#011/wm/core/packettrace/json#011-#011500#011-#01165#01122#011http://192.168.2.203:8080#011Python-urllib/2.7#011-

'illegal start of expression' when compiling using Sun Java 6

This is apparently due to trailing commas in annotations which are not allowed by java 6.

(version v0.8-1189-g7a8523b )

$ ant
Buildfile: ~/floodlight/build.xml

init:

compile:
    [javac] Compiling 356 source files to ~/floodlight/target/bin
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/core/internal/Controller.java:527: illegal start of expression
    [javac]         })
    [javac]         ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/core/internal/Controller.java:916: illegal start of expression
    [javac]         })
    [javac]         ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/core/internal/Controller.java:1223: illegal start of expression
    [javac]     })
    [javac]     ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/core/internal/OFSwitchImpl.java:714: illegal start of expression
    [javac]     })
    [javac]     ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/core/module/FloodlightModuleLoader.java:163: illegal start of expression
    [javac]     })
    [javac]     ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/forwarding/Forwarding.java:412: illegal start of expression
    [javac]     })
    [javac]     ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/linkdiscovery/internal/LinkDiscoveryManager.java:1823: illegal start of expression
    [javac]     })
    [javac]     ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerHandler.java:83: illegal start of expression
    [javac]     })
    [javac]     ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/packetstreamer/PacketStreamerHandler.java:131: illegal start of expression
    [javac]     })
    [javac]     ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java:203: illegal start of expression
    [javac]     })
    [javac]     ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java:337: illegal start of expression
    [javac]     })
    [javac]     ^
    [javac] ~/floodlight/src/main/java/net/floodlightcontroller/routing/ForwardingBase.java:606: illegal start of expression
    [javac]     })
    [javac]     ^
    [javac] 12 errors

BUILD FAILED
~/floodlight/build.xml:115: Compile failed; see the compiler error output for details.

Total time: 1 second

`/wm/performance` not working if no packets received yet

IPktInProcessingTimeService is bootstrapped at n.f.core.internal.Controller#handleMessage(). This design choice has two major drawbacks:

  1. Every incoming packets triggers an unnecessary IPktInProcessingTimeService#bootstrap() call.
  2. If there are no packets received so far, calls to /wm/performance/reset/json causes an exception and calls /wm/performance/enable/json does have no effect work due to PktInProcessingTime#isInited being false because of missing bootstrap() call. (Note that PktInProcessingTime#isEnabled() is defined as isEnabled && isInited.)

ant doesn't like the V1.7 Java pointed to in the sources from the Github pull of PFL V1.0

This is my first foray into the open source community as an old embedded developer helping to create a hardware based OpenFlow switch.

I am familiar with Git and am trying to use PFL as the controller to test our OF-DPA based OpenFlow switch. We are using Indigo as the northbound controller interface, and things are coming up to the point of establishing a channel in the protocol when I pull the V0.9 build, however I need to support V1.3 of OpenFlow for the OF-DPA library to work properly, and I am having trouble building the V1.0 source that contains this. The README indicates Java 1.7, which I have installed on my Debian Wheezy development system, but ant doesn't like the Java 1.7 commands when I execute it after doing the Git clone. The PF Baby Steps repository is my first foray into seeking open source community help, so I am opening up this issue to try and see if I can get timely help on this. When I run the "ant eclipse" target it appears to succeed fine (see below), so not sure what my best next steps are to get to a functional V1.3 controller as quickly as possible in order to test out this switch. Thanks in advance for anyones time and effort in responding...

Kevin Hughes
Dell Computer

[email protected]

khughes@khws:~/OurSwitch/Floodlight_13/floodlight$ ant eclipse
Buildfile: /home/khughes/OurSwitch/Floodlight_13/floodlight/build.xml

init:
[mkdir] Created dir: /home/khughes/OurSwitch/Floodlight_13/floodlight/target/bin
[mkdir] Created dir: /home/khughes/OurSwitch/Floodlight_13/floodlight/target/bin-test
[mkdir] Created dir: /home/khughes/OurSwitch/Floodlight_13/floodlight/target/lib
[mkdir] Created dir: /home/khughes/OurSwitch/Floodlight_13/floodlight/target/test

eclipse:

BUILD SUCCESSFUL
Total time: 0 seconds
khughes@khws:~/OurSwitch/Floodlight_13/floodlight$ ant
Buildfile: /home/khughes/OurSwitch/Floodlight_13/floodlight/build.xml

init:

compile:
[javac] Compiling 492 source files to /home/khughes/OurSwitch/Floodlight_13/floodlight/target/bin
[javac] javac: invalid target release: 1.7
[javac] Usage: javac
[javac] use -help for a list of possible options

BUILD FAILED
/home/khughes/OurSwitch/Floodlight_13/floodlight/build.xml:141: Compile failed; see the compiler error output for details.

Total time: 0 seconds
khughes@khws:~/OurSwitch/Floodlight_13/floodlight$

Packet_Out:XID is always 0

Where: net.floodlightcontroller.learningswitch.LearningSwitch.writePacketOutForPacketIn(...)

Problem:
When copying correlation header fields from packetInMessage to packetOutMessage, missing copy of xid field.
The result, Packet_out messages cannot be correlated to the Packet_in at the transmitting switch.
This makes it problematic to measure latency between specific requests and their corresponding replies.

Reproduce:

  1. Run Wireshark and capture all "of" traffic
  2. Run floodlight
  3. Run cbench -w 0 -l 1 -s 1 -c [floodlight_ip]
  4. In Wireshark, Observe Packet_out messages, the OF Header transaction ID is always 0.

Recommended Fix:
LearningSwitch.java: 286
Insert line:
packetOutMessage.setXid(packetInMessage.getXid());

A Small Comment Typo

in file floodlight / src / main / java / net / floodlightcontroller / routing / ForwardingBase.java
line 193

  • @return srcSwitchIincluded True if the source switch is included in this route
    should be
  • @return srcSwitchIncluded True if the source switch is included in this route

How to Config with vlan ?

hi:
i want use floodlight with xenserver,when i connect to the floodlight ,the xenserver's port with vlan tag ,can not ping 。
can you tell me how to config flow in floodlight?
i add this flow:port 14 has vlan tag:
cookie=0xa00000ec83e777, duration=4114.541s, table=0, n_packets=2786, n_bytes=248759, priority=16383,in_port=14 actions=NORMAL

the port with vlan tag can ping .bug the firewall is failure.

my email:[email protected]

thanks.

a bug ?

" 580 } else if (eth.getEtherType() < 1500) { "

what's meaning in LinkDiscoveryManager.java of learningswitch with openflow1.3 branch 。

Floodlight with 100 switches can't work well

Hello everyone,
I need to use the floodlight controller to do some tutorials.
I download the source codes of floodlight, then I deploy them using eclipse and run it as controller.
In virtualBox, I use the mininet to get a virtual network.
If I add 50 or less than 50 switches in my virtual network, the controller can work well.
But if I add 100 switches in my virtual network, the controller can't work well, there're many error information such as :"ERROR [n.f.c.i.OFChannelHandler:Hashed wheel timer #2] Disconnecting switch [/192.168.56.102:51656 DPID[00:00:00:00:00:00:00:2c]]: failed to complete handshake"
Thank you in advance for your support.
Biter

How to successfully connect software switch (handshake procedure)

Hi,

I have prepared (utilizing pox code) some very simple OF software switch in python (I need such stuff for my research activities). However, I have problem with successful registration of my softswitch in Floodlight controller (master version, run as "java -jar target/floodlight.jar").

I have looked over Floodlight code but I cannot find why Floodlight disconnects my switch almost immediatally ("Disconnecting switch [/127.0.0.1:37860 DPID[?]]: failed to complete handshake").

Could you someone explain me what is missing in my software switch?

Please see bellow logs from my softswitch and Floodlight logs.

My softswitch log:

python dataswitch_test.py

OF message to send:
ofp_hello
  header:
    version: 1
    type:    0 (OFPT_HELLO)
    length:  8
    xid:     0
 Coded message is 0100000800000000

----------------------------------------
Message received 01000008ffffffff
 Decoded OF message is:
ofp_hello
  header:
    version: 1
    type:    0 (OFPT_HELLO)
    length:  8
    xid:     4294967295

----------------------------------------
Message received 01050008fffffffe
 Decoded OF message is:
ofp_features_request
  header:
    version: 1
    type:    5 (OFPT_FEATURES_REQUEST)
    length:  8
    xid:     4294967294
OF message to send:
ofp_features_reply
  header:
    version: 1
    type:    6 (OFPT_FEATURES_REPLY)
    length:  224
    xid:     4294967294
  datapath_id: 1546335
  n_buffers: 100
  n_tables: 1
  capabilities: 0
  actions: 66
  ports:
    port_no: 1
    hw_addr: 00:00:00:00:0f:01
    name: 00000017985f.1
    config: 0
    state: 0
    curr: 1
    advertised: 1
    supported: 1
    peer: 1
    port_no: 2
    hw_addr: 00:00:00:00:0f:02
    name: 00000017985f.2
    config: 0
    state: 0
    curr: 1
    advertised: 1
    supported: 1
    peer: 1
    port_no: 3
    hw_addr: 00:00:00:00:0f:03
    name: 00000017985f.3
    config: 0
    state: 0
    curr: 1
    advertised: 1
    supported: 1
    peer: 1
    port_no: 4
    hw_addr: 00:00:00:00:0f:04
    name: 00000017985f.4
    config: 0
    state: 0
    curr: 1
    advertised: 1
    supported: 1
    peer: 1
 Coded message is 010600e0fffffffe000000000017985f000000640100000000000000000000420001000000000f013030303030303137393835662e3100000000000000000000000000010000000100000001000000010002000000000f023030303030303137393835662e3200000000000000000000000000010000000100000001000000010003000000000f033030303030303137393835662e3300000000000000000000000000010000000100000001000000010004000000000f043030303030303137393835662e340000000000000000000000000001000000010000000100000001

----------------------------------------
Message received 0109000cfffffffd0000ffff01120008fffffffc01070008fffffffb
 Decoded OF message is:
ofp_set_config
  header:
    version: 1
    type:    9 (OFPT_SET_CONFIG)
    length:  12
    xid:     4294967293
  flags: 0
  miss_send_len: 65535
Receiving empty message in TCP connection. Closing socket connection....
Connection closed.

Log from floodlight:

11:17:19.094 [New I/O server worker #2-1] INFO  n.f.core.internal.OFChannelHandler - New switch connection from /127.0.0.1:37860
11:17:26.940 [Scheduled-2] DEBUG o.s.s.i.config.DelegatingCCProvider - ClusterConfig provider PropertyCCProvider failed: Configuration properties nodes or thisNode not set
11:17:26.941 [Scheduled-2] DEBUG o.s.s.i.config.DelegatingCCProvider - ClusterConfig provider StorageCCProvider failed: No controller ID configured and could not read /opt/bigswitch/run/boot-config
11:17:34.171 [Hashed wheel timer #2] ERROR n.f.core.internal.OFChannelHandler - Disconnecting switch [/127.0.0.1:37860 DPID[?]]: failed to complete handshake
11:17:34.181 [Hashed wheel timer #2] INFO  n.f.core.internal.OFChannelHandler - Disconnected switch [/127.0.0.1:37860 DPID[?]]
11:17:34.207 [New I/O server worker #2-2] INFO  n.f.core.internal.OFChannelHandler - New switch connection from /127.0.0.1:37861
11:17:37.350 [Scheduled-0] DEBUG o.s.s.i.config.DelegatingCCProvider - ClusterConfig provider PropertyCCProvider failed: Configuration properties nodes or thisNode not set
11:17:37.351 [Scheduled-0] DEBUG o.s.s.i.config.DelegatingCCProvider - ClusterConfig provider StorageCCProvider failed: No controller ID configured and could not read /opt/bigswitch/run/boot-config
11:17:42.346 [New I/O server worker #2-2] INFO  n.f.core.internal.OFChannelHandler - Disconnected switch [/127.0.0.1:37861 DPID[00:00:00:00:00:17:98:5f]]

mn: error: no such option: --port

when i am trying ti create simple topology by "sudo mn --controller=remote --ip=192.168.56.101 --port=6633" getting next result mn: error: no such option: --port

OFMessageDamper

Just an FYI for all who notice this. With the upcoming 1.0 release of Floodlight, the OFMessageDamper is not working. It maintains a cache of all recently sent OFMessages in order to prevent bursts of the same message. The cache is implemented as a TimedCache, which uses the OFMessage's equals() function to check for presence in the cache. The equals() function of all OFMessages includes checking the XID of the message, which is and should be different for subsequent messages. Thus, the OFMessageDamper never gets a cache hit, and it always sends the packet out. This can be fixed in Loxigen somehow, but I haven't looked into it yet.

I'm adding this issue now before I forget in the coming days.

Devicemanager REST API

Hello All,

I am using the Devicemanager REST API to retrieve information using IP address of the host. My problem is it does not reply all time information, sometime pinging the host from the floodlight controller host makes it to reply answer and sometime it simply does not reply any information.
Any comment is very welcomed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.