Develop, Deploy and Deliver with NetIDE: An Integrated...

Preview:

Citation preview

ThisprojecthasreceivedfundingfromtheEuropeanUnion’sSeventhFrameworkProgramme forresearch,technologicaldevelopmentanddemonstrationundergrantagreementno619543

Develop,DeployandDeliverwithNetIDE:AnIntegratedServiceLevelNetworkProgrammingFramework

PedroA,Aranda(TID)

2

ChallengesforthecurrentSDNlandscape

Can’t easily portthem:Youimplementfor

ControllerX,youcan’tmakesamecoderun

onControllerY

Can’teasilycombinethem:Youcan’trunanLBapptogetherwithanFWapp

ontopofthesamenetwork

Can’teasilydebugthem:OnlyfewSWdevelopment

toolsareavailableforSDN,inmostcasescontroller-specific

NetworkApps

NetIDE aimsatsupportingthewholedevelopmentlifecycleofnetworkappsinaplatform-independentfashion:* IntegratedSDNdevelopmentenvironment* CoveringthefulllifetimeofSDNapplications* ItbringsallthegoodiesofSoftwareDesignandDevelopmenttoNetworking:* Platformindependence* Codere-usability* Developertools(debugger,profiler,logger,etc.)

3

TheNetIDE Framework

* Client/ServerSDNcontrollerparadigmofONF

* NetworkApplication’smodulesaregiventheruntimeenvironmenttheyexpectintheclientcontroller

* Multi-controller support(ONOS,OpenDaylight,Ryu,Floodlight,…)

* Backend:southboundplugin

* CoreLayer:providesacontroller-independentmeanstoresolveconflictsbetweenapps,interfaceswiththetools

* ShimLayer:northboundplugin

TheNetworkEngine

Develop,DeployandTest

10/19/16 5

Developthecodeandconfigurethetopology

AutomaticallydeploytheSDNapplications

Testanddebugtheapplications

CodeEditorsGraphical

TopologyEditor

Toolsfordebuggingandinspectingofthecontrol

channel

TheIntegratedDevelopmentEnvironment

* CodeEditors(PyDev,CDT,Java)

* Topologyeditor

* InterfacewiththeNetworkEngineandtools

* Accessunderlyingnetwork

* AccesstotheMininet CLI

* NetworkElements

Enablingthedevelopertosystematicallytest,profile,andtunetheirNetworkApp* Logger:tracingcapabilitiestojudgetheperformanceofthedeployedNetworkApp

* GarbageCollector:Cleanstheswitches’memoryfromunusedflowrules

*ModelChecker:systematicallyexercisesappbehaviour andflagactionsthatleadtoviolationsofthedesiredsafetyproperties

* Profiler:judgingtheimpactofnetworkfailuresontheNetworkAppbehaviour

* Debugger:supportsdebugofpacketprocessing(OFReplay,packetinspectionandflowtablechecking)

Developertools

WeassuresurvivalofNetIDE resultsbycontributingthemtodifferentFOSSprojectsSourcecodeofIDE,NetworkEngineandToolsarepubliclyavailableonGithub underEclipsePublicLicensev1.0Usecases containsimplementationsoftargetscenariosthatvalidatetheNetIDE framework.

https://github.com/fp7-netide

Tryourcode?

ThankYou!

10/19/16 9