在floodlight控制器中统计进入packed-in数量的代码

floodlight控制器中统计进入packedin数量的代码:

 

package edu.wzu.steve.trafficanalyser;

 

import java.util.ArrayList;

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Map.Entry;

 

 

import org.restlet.resource.ResourceException;

import org.restlet.resource.ServerResource;

 

import net.floodlightcontroller.counter.CounterValue;

import net.floodlightcontroller.counter.ICounter;

 

import org.restlet.resource.Get;

 

import net.floodlightcontroller.core.FloodlightContext;

import net.floodlightcontroller.core.IFloodlightProviderService;

import net.floodlightcontroller.core.IOFMessageListener;

import net.floodlightcontroller.core.IOFSwitch;

import net.floodlightcontroller.core.module.FloodlightModuleContext;

import net.floodlightcontroller.core.module.FloodlightModuleException;

import net.floodlightcontroller.core.module.IFloodlightModule;

import net.floodlightcontroller.core.module.IFloodlightService;

import net.floodlightcontroller.counter.ICounterStoreService;

 

 

import org.openflow.protocol.OFMessage;

import org.openflow.protocol.OFType;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

 

 

public class TrafficAnalyser extends ServerResource implements IOFMessageListener, IFloodlightModule{

 

 

protected ICounterStoreService counterStore;

protected IFloodlightProviderService floodlightProvider;

protected static Logger logger;

 

 @Override

    public String getName() {

        // TODO Auto-generated method stub

 return TrafficAnalyser.class.getSimpleName();

    }

 

    @Override

    public boolean isCallbackOrderingPrereq(OFType type, String name) {

        // TODO Auto-generated method stub

        return false;

    }

 

    @Override

    public boolean isCallbackOrderingPostreq(OFType type, String name) {

        // TODO Auto-generated method stub

        return false;

    }

 

    @Override

    public Collection<Class<? extends IFloodlightService>> getModuleServices() {

        // TODO Auto-generated method stub

        return null;

    }

 

    @Override

    public Map<Class<? extends IFloodlightService>, IFloodlightService> getServiceImpls() {

        // TODO Auto-generated method stub

        return null;

    }

 

    @Override

    public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {

        // TODO Auto-generated method stub

     Collection<Class<? extends IFloodlightService>> l =

            new ArrayList<Class<? extends IFloodlightService>>();

        l.add(IFloodlightProviderService.class);

        return l;

    }

 

    @Override

    public void init(FloodlightModuleContext context)

            throws FloodlightModuleException {

    this.floodlightProvider = context.getServiceImpl(IFloodlightProviderService.class);

    this.counterStore = context.getServiceImpl(ICounterStoreService.class);

    

     

        logger = LoggerFactory.getLogger(TrafficAnalyser.class);

 

    }

 

    @Override

    public void startUp(FloodlightModuleContext context) {

    floodlightProvider.addOFMessageListener(OFType.PACKET_IN, this);

 

    }

    

    @Get("json")

    public Map<String, Object> retrieve(){

    

    

      String counterTitle = 

            (String) getRequestAttributes().get("counterTitle");

        Map<String, Object> model = new HashMap<String,Object>();

        CounterValue v;

        if (counterTitle.equalsIgnoreCase("all")) {

            Map<String, ICounter> counters = this.counterStore.getAll();

            if (counters != null) {

                Iterator<Map.Entry<String, ICounter>> it = 

                    counters.entrySet().iterator();

                while (it.hasNext()) {

                    Entry<String, ICounter> entry = it.next();

                    String counterName = entry.getKey();

                    v = entry.getValue().getCounterValue();

 

                    if (CounterValue.CounterType.LONG == v.getType()) {

                        model.put(counterName, v.getLong());

                    } else if (v.getType() == CounterValue.CounterType.DOUBLE) {

                        model.put(counterName, v.getDouble());

                    }   

                }   

            }   

        } else {

            ICounter counter = this.counterStore.getCounter(counterTitle);

            if (counter != null) {

                v = counter.getCounterValue();

            } else {

                v = new CounterValue(CounterValue.CounterType.LONG);

            }   

 

            if (CounterValue.CounterType.LONG == v.getType()) {

                model.put(counterTitle, v.getLong());

            } else if (v.getType() == CounterValue.CounterType.DOUBLE) {

                model.put(counterTitle, v.getDouble());

            }   

        }

        return model;

    }

    

    protected void doInit() throws ResourceException {

        super.doInit();

        counterStore = 

            (ICounterStoreService)getContext().getAttributes().

                get(ICounterStoreService.class.getCanonicalName());

    }

   

    @Override

    public net.floodlightcontroller.core.IListener.Command receive(IOFSwitch sw, OFMessage msg, FloodlightContext cntx) {

         

 

   

    System.out.println(retrieve().toString());

    

 

 return Command.CONTINUE;

         

     }

 

}

 

这代码没有报错,可是,控制器只能连接到ovs,mininet中用hostspingall的时候就会一下连接,一下断开,无法ping通。

 

于是就简化了一下代码,去掉觉得有bug的代码,抛出的异常是没有实例化;

 

 

代码如下:

package edu.wzu.steve.trafficanalyser;

 

import java.util.ArrayList;

import java.util.Collection;

import java.util.HashMap;

import java.util.Iterator;

import java.util.Map;

import java.util.Map.Entry;

 

 

import org.restlet.resource.ResourceException;

import org.restlet.resource.ServerResource;

 

import net.floodlightcontroller.counter.CounterValue;

import net.floodlightcontroller.counter.ICounter;

 

import org.restlet.resource.Get;

 

import net.floodlightcontroller.core.FloodlightContext;

import net.floodlightcontroller.core.IFloodlightProviderService;

import net.floodlightcontroller.core.IOFMessageListener;

import net.floodlightcontroller.core.IOFSwitch;

import net.floodlightcontroller.core.module.FloodlightModuleContext;

import net.floodlightcontroller.core.module.FloodlightModuleException;

import net.floodlightcontroller.core.module.IFloodlightModule;

import net.floodlightcontroller.core.module.IFloodlightService;

import net.floodlightcontroller.counter.ICounterStoreService;

 

 

import org.openflow.protocol.OFMessage;

import org.openflow.protocol.OFType;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

 

 

public class TrafficAnalyser extends ServerResource implements IOFMessageListener, IFloodlightModule{

 

 

protected ICounterStoreService counterStore;

protected IFloodlightProviderService floodlightProvider;

protected static Logger logger;

 

 @Override

    public String getName() {

        // TODO Auto-generated method stub

 return TrafficAnalyser.class.getSimpleName();

    }

 

    @Override

    public boolean isCallbackOrderingPrereq(OFType type, String name) {

        // TODO Auto-generated method stub

        return false;

    }

 

    @Override

    public boolean isCallbackOrderingPostreq(OFType type, String name) {

        // TODO Auto-generated method stub

        return false;

    }

 

    @Override

    public Collection<Class<? extends IFloodlightService>> getModuleServices() {

        // TODO Auto-generated method stub

        return null;

    }

 

    @Override

    public Map<Class<? extends IFloodlightService>, IFloodlightService> getServiceImpls() {

        // TODO Auto-generated method stub

        return null;

    }

 

    @Override

    public Collection<Class<? extends IFloodlightService>> getModuleDependencies() {

        // TODO Auto-generated method stub

     Collection<Class<? extends IFloodlightService>> l =

            new ArrayList<Class<? extends IFloodlightService>>();

        l.add(IFloodlightProviderService.class);

        return l;

    }

 

    @Override

    public void init(FloodlightModuleContext context)

            throws FloodlightModuleException {

    this.floodlightProvider = context.getServiceImpl(IFloodlightProviderService.class);

    this.counterStore = context.getServiceImpl(ICounterStoreService.class);

    

     

        logger = LoggerFactory.getLogger(TrafficAnalyser.class);

 

    }

 

    @Override

    public void startUp(FloodlightModuleContext context) {

    floodlightProvider.addOFMessageListener(OFType.PACKET_IN, this);

 

    }

    

    @Get("json")

    public Map<String, Object> retrieve(){

    

        Map<String, Object> model = new HashMap<String,Object>();

        CounterValue v;

     

            Map<String, ICounter> counters = this.counterStore.getAll();

            if (counters != null) {

                Iterator<Map.Entry<String, ICounter>> it = 

                    counters.entrySet().iterator();

                while (it.hasNext()) {

                    Entry<String, ICounter> entry = it.next();

                    String counterName = entry.getKey();

                    v = entry.getValue().getCounterValue();

 

                    if (CounterValue.CounterType.LONG == v.getType()) {

                        model.put(counterName, v.getLong());

                    } else if (v.getType() == CounterValue.CounterType.DOUBLE) {

                        model.put(counterName, v.getDouble());

                    }   

                }   

            }   

        

        return model;

    }

    

    protected void doInit() throws ResourceException {

        super.doInit();

        counterStore = 

            (ICounterStoreService)getContext().getAttributes().

                get(ICounterStoreService.class.getCanonicalName());

    }

   

    @Override

    public net.floodlightcontroller.core.IListener.Command receive(IOFSwitch sw, OFMessage msg, FloodlightContext cntx) {

         

 

   

    System.out.println(retrieve().toString());

    

 

 return Command.CONTINUE;

         

     }

 

}

 

 

 sudo mn --topo single,3 --mac --switch ovsk --controller=remote,ip=10.0.2.15,port=6633

建立hostspingall

 

 

eclipse中控制台出来的信息截图如上,完整信息如下:

 

 

 

 

 

 

 

 

00:58:01.133 INFO [n.f.c.m.FloodlightModuleLoader:main] Loading default modules

00:58:01.846 INFO [n.f.c.i.Controller:main] Controller role set to MASTER

00:58:01.869 INFO [n.f.c.i.Controller:main] Flush switches on reconnect -- Disabled

00:58:02.968 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

at org.sdnplatform.sync.internal.store.JavaDBStorageEngine.<init>(JavaDBStorageEngine.java:106) ~[bin/:na]

at org.sdnplatform.sync.internal.StoreRegistry.register(StoreRegistry.java:116) ~[bin/:na]

at org.sdnplatform.sync.internal.SyncManager.registerPersistentStore(SyncManager.java:184) [bin/:na]

at org.sdnplatform.sync.internal.config.SyncStoreCCProvider.init(SyncStoreCCProvider.java:85) ~[bin/:na]

at org.sdnplatform.sync.internal.config.DelegatingCCProvider.init(DelegatingCCProvider.java:37) ~[bin/:na]

at org.sdnplatform.sync.internal.SyncManager.init(SyncManager.java:489) [bin/:na]

at net.floodlightcontroller.core.module.FloodlightModuleLoader.initModules(FloodlightModuleLoader.java:436) [bin/:na]

at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromList(FloodlightModuleLoader.java:353) [bin/:na]

at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromList(FloodlightModuleLoader.java:362) [bin/:na]

at net.floodlightcontroller.core.module.FloodlightModuleLoader.loadModulesFromConfig(FloodlightModuleLoader.java:200) [bin/:na]

at net.floodlightcontroller.core.Main.main(Main.java:55) [bin/:na]

Caused by: java.sql.SQLException: DDL is not permitted for a read-only connection, user or database.

at org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.jdbc.Util.generateCsSQLException(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.jdbc.EmbedStatement.execute(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.sdnplatform.sync.internal.store.JavaDBStorageEngine.initTable(JavaDBStorageEngine.java:379) ~[bin/:na]

at org.sdnplatform.sync.internal.store.JavaDBStorageEngine.<init>(JavaDBStorageEngine.java:104) ~[bin/:na]

... 10 common frames omitted

Caused by: org.apache.derby.impl.jdbc.EmbedSQLException: DDL is not permitted for a read-only connection, user or database.

at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(Unknown Source) ~[derby-10.9.1.0.jar:na]

... 21 common frames omitted

Caused by: org.apache.derby.iapi.error.StandardException: DDL is not permitted for a read-only connection, user or database.

at org.apache.derby.iapi.error.StandardException.newException(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.sql.conn.GenericAuthorizer.authorize(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.sql.execute.GenericResultSetFactory.getDDLResultSet(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.sql.execute.ConstantActionActivation.execute(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.sql.GenericActivationHolder.execute(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.sql.GenericPreparedStatement.executeStmt(Unknown Source) ~[derby-10.9.1.0.jar:na]

at org.apache.derby.impl.sql.GenericPreparedStatement.execute(Unknown Source) ~[derby-10.9.1.0.jar:na]

... 15 common frames omitted

00:58:03.244 INFO [n.f.l.i.LinkDiscoveryManager:main] Setting autoportfast feature to OFF

00:58:03.431 INFO [o.s.s.i.c.FallbackCCProvider:main] Cluster not yet configured; using fallback local configuration

00:58:03.436 INFO [o.s.s.i.SyncManager:main] [32767] Updating sync configuration ClusterConfig [allNodes={32767=Node [hostname=localhost, port=6642, nodeId=32767, domainId=32767]}, authScheme=CHALLENGE_RESPONSE, keyStorePath=/etc/floodlight/auth_credentials.jceks, keyStorePassword is unset]

00:58:03.660 INFO [o.s.s.i.r.RPCService:main] Listening for internal floodlight RPC on localhost/127.0.0.1:6642

00:58:04.128 INFO [n.f.c.i.Controller:main] Listening for switch connections on 0.0.0.0/0.0.0.0:6633

00:58:09.232 INFO [n.f.c.i.OFChannelHandler:New I/O server worker #2-1] New switch connection from /10.0.2.15:59701

00:58:09.495 INFO [n.f.c.i.OFChannelHandler:New I/O server worker #2-1] Switch OFSwitchBase [/10.0.2.15:59701 DPID[00:00:00:00:00:00:00:01]] bound to class class net.floodlightcontroller.core.internal.OFSwitchImpl, writeThrottle=false, description Switch Desc - Vendor: Nicira, Inc.  Model: Open vSwitch  Make: None  Version: 2.1.0  S/N: None

00:58:09.509 INFO [n.f.c.OFSwitchBase:New I/O server worker #2-1] Clearing all flows on switch OFSwitchBase [/10.0.2.15:59701 DPID[00:00:00:00:00:00:00:01]]

00:58:09.519 WARN [n.f.c.i.C.s.notification:main] Switch 00:00:00:00:00:00:00:01 connected.

{StorageQuery__controller_staticflowtableentry=1, controller__OFPacketIn__broadcast=0, controller__OFPacketIn=0, 00:00:00:00:00:00:00:01__OFPacketIn=0, controller__OFPacketIn__L3_ARP=0, StorageQuery__controller_forwardingconfig=1, StorageQuery__controller_switchconfig=1, StorageQuery__controller_link=1, 00:00:00:00:00:00:00:01__OFPacketIn__broadcast=0, StorageQuery=6, StorageQuery__controller_firewallrules=1, StorageQuery__controller_topologyconfig=1, 00:00:00:00:00:00:00:01__OFPacketIn__L3_ARP=0}

{controller__OFPacketIn=1, 00:00:00:00:00:00:00:01__OFPacketIn=1, controller__OFPacketIn__L3_ARP=1, controller__OFPacketOut=0, StorageQuery__controller_forwardingconfig=1, 00:00:00:00:00:00:00:01__OFPacketOut=0, 00:00:00:00:00:00:00:01__OFPacketIn__broadcast=1, StorageQuery=6, StorageQuery__controller_topologyconfig=1, StorageQuery__controller_firewallrules=1, 00:00:00:00:00:00:00:01__OFFlowMod=0, StorageQuery__controller_staticflowtableentry=1, controller__OFPacketIn__broadcast=1, StorageQuery__controller_switchconfig=1, StorageQuery__controller_link=1, controller__OFFlowMod=0, 00:00:00:00:00:00:00:01__OFPacketIn__L3_ARP=1}

 

 

{controller__OFPacketIn__L4_ICMP=0, 00:00:00:00:00:00:00:01__OFPacketIn__L3_IPv4=0, controller__OFPacketIn=2, 00:00:00:00:00:00:00:01__OFPacketIn__unicast=0, 00:00:00:00:00:00:00:01__OFPacketIn=2, controller__OFPacketIn__unicast=0, controller__OFPacketIn__L3_ARP=2, controller__OFPacketOut=1, StorageQuery__controller_forwardingconfig=1, 00:00:00:00:00:00:00:01__OFPacketOut=1, 00:00:00:00:00:00:00:01__OFPacketIn__broadcast=2, StorageQuery=6, StorageQuery__controller_firewallrules=1, StorageQuery__controller_topologyconfig=1, 00:00:00:00:00:00:00:01__OFFlowMod=1, StorageQuery__controller_staticflowtableentry=1, controller__OFPacketIn__broadcast=2, controller__OFPacketIn__L3_IPv4=0, StorageQuery__controller_switchconfig=1, StorageQuery__controller_link=1, controller__OFFlowMod=1, 00:00:00:00:00:00:00:01__OFPacketIn__L4_ICMP=0, 00:00:00:00:00:00:00:01__OFPacketIn__L3_ARP=2}

 

 

 

{controller__OFPacketIn__L4_ICMP=1, 00:00:00:00:00:00:00:01__OFPacketIn__L3_IPv4=1, controller__OFPacketIn=3, 00:00:00:00:00:00:00:01__OFPacketIn__unicast=1, 00:00:00:00:00:00:00:01__OFPacketIn=3, controller__OFPacketIn__unicast=1, controller__OFPacketIn__L3_ARP=2, controller__OFPacketOut=2, StorageQuery__controller_forwardingconfig=1, 00:00:00:00:00:00:00:01__OFPacketOut=2, 00:00:00:00:00:00:00:01__OFPacketIn__broadcast=2, StorageQuery=6, StorageQuery__controller_firewallrules=1, StorageQuery__controller_topologyconfig=1, 00:00:00:00:00:00:00:01__OFFlowMod=2, StorageQuery__controller_staticflowtableentry=1, controller__OFPacketIn__broadcast=2, controller__OFPacketIn__L3_IPv4=1, StorageQuery__controller_switchconfig=1, StorageQuery__controller_link=1, controller__OFFlowMod=2, 00:00:00:00:00:00:00:01__OFPacketIn__L4_ICMP=1, 00:00:00:00:00:00:00:01__OFPacketIn__L3_ARP=2}

 

 

 

{controller__OFPacketIn__L4_ICMP=1, 00:00:00:00:00:00:00:01__OFPacketIn__L3_IPv4=1, controller__OFPacketIn=4, 00:00:00:00:00:00:00:01__OFPacketIn__unicast=1, 00:00:00:00:00:00:00:01__OFPacketIn=4, controller__OFPacketIn__unicast=1, controller__OFPacketIn__L3_ARP=3, controller__OFPacketOut=2, StorageQuery__controller_forwardingconfig=1, 00:00:00:00:00:00:00:01__OFPacketOut=2, 00:00:00:00:00:00:00:01__OFPacketIn__broadcast=3, StorageQuery=6, StorageQuery__controller_firewallrules=1, StorageQuery__controller_topologyconfig=1, 00:00:00:00:00:00:00:01__OFFlowMod=2, StorageQuery__controller_staticflowtableentry=1, controller__OFPacketIn__broadcast=3, controller__OFPacketIn__L3_IPv4=1, StorageQuery__controller_switchconfig=1, StorageQuery__controller_link=1, controller__OFFlowMod=2, 00:00:00:00:00:00:00:01__OFPacketIn__L4_ICMP=1, 00:00:00:00:00:00:00:01__OFPacketIn__L3_ARP=3}

 

 

 

{controller__OFPacketIn__L4_ICMP=1, 00:00:00:00:00:00:00:01__OFPacketIn__L3_IPv4=1, controller__OFPacketIn=5, 00:00:00:00:00:00:00:01__OFPacketIn__unicast=1, 00:00:00:00:00:00:00:01__OFPacketIn=5, controller__OFPacketIn__unicast=1, controller__OFPacketIn__L3_ARP=4, controller__OFPacketOut=3, StorageQuery__controller_forwardingconfig=1, 00:00:00:00:00:00:00:01__OFPacketOut=3, 00:00:00:00:00:00:00:01__OFPacketIn__broadcast=4, StorageQuery=6, StorageQuery__controller_firewallrules=1, StorageQuery__controller_topologyconfig=1, 00:00:00:00:00:00:00:01__OFFlowMod=3, StorageQuery__controller_staticflowtableentry=1, controller__OFPacketIn__broadcast=4, controller__OFPacketIn__L3_IPv4=1, StorageQuery__controller_switchconfig=1, StorageQuery__controller_link=1, controller__OFFlowMod=3, 00:00:00:00:00:00:00:01__OFPacketIn__L4_ICMP=1, 00:00:00:00:00:00:00:01__OFPacketIn__L3_ARP=4}

 

 

{controller__OFPacketIn__L4_ICMP=2, 00:00:00:00:00:00:00:01__OFPacketIn__L3_IPv4=2, controller__OFPacketIn=6, 00:00:00:00:00:00:00:01__OFPacketIn__unicast=2, 00:00:00:00:00:00:00:01__OFPacketIn=6, controller__OFPacketIn__unicast=2, controller__OFPacketIn__L3_ARP=4, controller__OFPacketOut=4, StorageQuery__controller_forwardingconfig=1, 00:00:00:00:00:00:00:01__OFPacketOut=4, 00:00:00:00:00:00:00:01__OFPacketIn__broadcast=4, StorageQuery=6, StorageQuery__controller_firewallrules=1, StorageQuery__controller_topologyconfig=1, 00:00:00:00:00:00:00:01__OFFlowMod=4, StorageQuery__controller_staticflowtableentry=1, controller__OFPacketIn__broadcast=4, controller__OFPacketIn__L3_IPv4=2, StorageQuery__controller_switchconfig=1, StorageQuery__controller_link=1, controller__OFFlowMod=4, 00:00:00:00:00:00:00:01__OFPacketIn__L4_ICMP=2, 00:00:00:00:00:00:00:01__OFPacketIn__L3_ARP=4}

 

 

 

{controller__OFPacketIn__L4_ICMP=2, 00:00:00:00:00:00:00:01__OFPacketIn__L3_IPv4=2, controller__OFPacketIn=7, 00:00:00:00:00:00:00:01__OFPacketIn__unicast=2, 00:00:00:00:00:00:00:01__OFPacketIn=7, controller__OFPacketIn__unicast=2, controller__OFPacketIn__L3_ARP=5, controller__OFPacketOut=4, StorageQuery__controller_forwardingconfig=1, 00:00:00:00:00:00:00:01__OFPacketOut=4, 00:00:00:00:00:00:00:01__OFPacketIn__broadcast=5, StorageQuery=6, StorageQuery__controller_firewallrules=1, StorageQuery__controller_topologyconfig=1, 00:00:00:00:00:00:00:01__OFFlowMod=4, StorageQuery__controller_staticflowtableentry=1, controller__OFPacketIn__broadcast=5, controller__OFPacketIn__L3_IPv4=2, StorageQuery__controller_switchconfig=1, StorageQuery__controller_link=1, controller__OFFlowMod=4, 00:00:00:00:00:00:00:01__OFPacketIn__L4_ICMP=2, 00:00:00:00:00:00:00:01__OFPacketIn__L3_ARP=5}

 

 

 

{controller__OFPacketIn__L4_ICMP=2, 00:00:00:00:00:00:00:01__OFPacketIn__L3_IPv4=2, controller__OFPacketIn=8, 00:00:00:00:00:00:00:01__OFPacketIn__unicast=2, 00:00:00:00:00:00:00:01__OFPacketIn=8, controller__OFPacketIn__unicast=2, controller__OFPacketIn__L3_ARP=6, controller__OFPacketOut=5, StorageQuery__controller_forwardingconfig=1, 00:00:00:00:00:00:00:01__OFPacketOut=5, 00:00:00:00:00:00:00:01__OFPacketIn__broadcast=6, StorageQuery=6, StorageQuery__controller_firewallrules=1, StorageQuery__controller_topologyconfig=1, 00:00:00:00:00:00:00:01__OFFlowMod=5, StorageQuery__controller_staticflowtableentry=1, controller__OFPacketIn__broadcast=6, controller__OFPacketIn__L3_IPv4=2, StorageQuery__controller_switchconfig=1, StorageQuery__controller_link=1, controller__OFFlowMod=5, 00:00:00:00:00:00:00:01__OFPacketIn__L4_ICMP=2, 00:00:00:00:00:00:00:01__OFPacketIn__L3_ARP=6}

00:58:11.966 INFO [n.f.j.JythonServer:debugserver-main] Starting DebugServer on :6655

 

 

 

 

把流量数目统计完了接下去就是流量种类分析了。

你可能感兴趣的:(java设计模式,sdn,floodlight)