Floodlight开发者文档译文.docx

上传人:b****5 文档编号:3233246 上传时间:2022-11-20 格式:DOCX 页数:103 大小:245.11KB
下载 相关 举报
Floodlight开发者文档译文.docx_第1页
第1页 / 共103页
Floodlight开发者文档译文.docx_第2页
第2页 / 共103页
Floodlight开发者文档译文.docx_第3页
第3页 / 共103页
Floodlight开发者文档译文.docx_第4页
第4页 / 共103页
Floodlight开发者文档译文.docx_第5页
第5页 / 共103页
点击查看更多>>
下载资源
资源描述

Floodlight开发者文档译文.docx

《Floodlight开发者文档译文.docx》由会员分享,可在线阅读,更多相关《Floodlight开发者文档译文.docx(103页珍藏版)》请在冰豆网上搜索。

Floodlight开发者文档译文.docx

Floodlight开发者文档译文

 

05:

18:

41.591INFO[n.f.c.m.FloodlightModuleLoader:

main]Loadingdefaultmodules

05:

18:

44.867INFO[n.f.c.i.Controller:

main]ControllerrolesettoMASTER

05:

18:

44.881INFO[n.f.c.i.Controller:

main]Flushswitchesonreconnect--Disabled

05:

18:

51.513INFO[n.f.l.i.LinkDiscoveryManager:

main]SettingautoportfastfeaturetoOFF

05:

18:

53.839INFO[o.s.s.i.c.FallbackCCProvider:

main]Clusternotyetconfigured;usingfallbacklocalconfiguration

05:

18:

53.840INFO[o.s.s.i.SyncManager:

main][32767]UpdatingsyncconfigurationClusterConfig[allNodes={32767=Node[hostname=localhost,port=6642,nodeId=32767,domainId=32767]},authScheme=CHALLENGE_RESPONSE,keyStorePath=/etc/floodlight/auth_credentials.jceks,keyStorePasswordisunset]

05:

18:

55.020INFO[o.s.s.i.r.RPCService:

main]ListeningforinternalfloodlightRPConlocalhost/127.0.0.1:

6642

05:

18:

56.332INFO[n.f.c.i.Controller:

main]Listeningforswitchconnectionson0.0.0.0/0.0.0.0:

6633

05:

19:

03.787INFO[n.f.j.JythonServer:

debugserver-main]StartingDebugServeron:

6655

package.floodlightcontroller.mactracker;

importjava.util.Collection;

importjava.util.Map;

importorg.openflow.protocol.OFMessage;

importorg.openflow.protocol.OFType;

importnet.floodlightcontroller.core.FloodlightContext;

importnet.floodlightcontroller.core.IOFMessageListener;

importnet.floodlightcontroller.core.IOFSwitch;

importnet.floodlightcontroller.core.module.FloodlightModuleContext;

importnet.floodlightcontroller.core.module.FloodlightModuleException;

importnet.floodlightcontroller.core.module.IFloodlightModule;

importnet.floodlightcontroller.core.module.IFloodlightService;

importnet.floodlightcontroller.core.IFloodlightProviderService;

importjava.util.ArrayList;

importjava.util.concurrent.ConcurrentSkipListSet;

importjava.util.Set;

importnet.floodlightcontroller.packet.Ethernet;

importorg.openflow.util.HexString;

importorg.slf4j.Logger;

importorg.slf4j.LoggerFactory;

publicclassMACTrackerimplementsIOFMessageListener,IFloodlightModule{

protectedIFloodlightProviderServicefloodlightProvider;

protectedSetmacAddresses;

protectedstaticLoggerlogger;

@Override

publicStringgetName(){

//TODOAuto-generatedmethodstub

returnMACTracker.class.getSimpleName();

}

@Override

publicbooleanisCallbackOrderingPrereq(OFTypetype,Stringname){

//TODOAuto-generatedmethodstub

returnfalse;

}

@Override

publicbooleanisCallbackOrderingPostreq(OFTypetype,Stringname){

//TODOAuto-generatedmethodstub

returnfalse;

}

@Override

publicCollection

extendsIFloodlightService>>getModuleServices(){

//TODOAuto-generatedmethodstub

returnnull;

}

@Override

publicMap

extendsIFloodlightService>,IFloodlightService>getServiceImpls(){

//TODOAuto-generatedmethodstub

returnnull;

}

@Override

publicCollection

extendsIFloodlightService>>getModuleDependencies(){

Collection

extendsIFloodlightService>>l=

newArrayList

extendsIFloodlightService>>();

l.add(IFloodlightProviderService.class);

returnl;

}

@Override

publicvoidinit(FloodlightModuleContextcontext)

throwsFloodlightModuleException{

//TODOAuto-generatedmethodstub

floodlightProvider=context.getServiceImpl(IFloodlightProviderService.class);

macAddresses=newConcurrentSkipListSet();

logger=LoggerFactory.getLogger(MACTracker.class);

}

@Override

publicvoidstartUp(FloodlightModuleContextcontext)

throwsFloodlightModuleException{

//TODOAuto-generatedmethodstub

floodlightProvider.addOFMessageListener(OFType.PACKET_IN,this);

}

@Override

publicnet.floodlightcontroller.core.IListener.Commandreceive(

IOFSwitchsw,OFMessagemsg,FloodlightContextcntx){

//TODOAuto-generatedmethodstub

Etherneteth=

IFloodlightProviderService.bcStore.get(cntx,

IFloodlightProviderService.CONTEXT_PI_PAYLOAD);

LongsourceMACHash=Ethernet.toLong(eth.getSourceMACAddress());

if(!

macAddresses.contains(sourceMACHash)){

macAddresses.add(sourceMACHash);

logger.info("MACAddress:

{}seenonswitch:

{}",

HexString.toHexString(sourceMACHash),

sw.getId());

}

returnCommand.CONTINUE;

}

}

 

架构

Floodlight不仅仅是一个支持OpenFLow协议的控制器(FloodlightCOntroller),也是一个基于Floodlight控制器的应用集。

当用户在OpenFLow网络上运行各种应用程序的时候,Floodlight控制器实现了对OpenFLow网络的监控和查询功能。

图0.0显示了Floodlight不同模块之间的关系,这些应用程序构建成java模块,和Floodlight一起编译。

同时这些应用程序都是基于RESTAPI的。

开始

安装指导

概述

基于Java的Floodlight可以用标准jak工具或ant编译运行,当然也可以有选择性的在Eclipse上运行。

准备工作

Linux:

●Ubuntu10.04(Natty)及以上版本(运行Ant1.8.1及以下版本)

●安装JDK,Ant。

(可在eclipse上安装)

$sudoapt-getinstallbuild-essentialdefaultantpython-deveclipse

Mac

●Mac系统x10.6及以上版本(低版本未测试)

●Cxode4.1或Xcode4.0.2

●JDK:

只需要在终端输入命令:

‘javac’便可安装

●Eclipse(非必须)

下载编译

从Github下载并比编译Floodlight

$gitclonegit:

//

$cdfloodlight

$ant

运行Flo

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1