network function store - t-nova · the vnf-id is part of the vnf metadata descriptor. 5. a vnf can...

34
Deliverable D5.1 Network Function Store Editor Nicolas Herbaut (Viotech) Contributors: Aurora Ramos, Javier Melián (ATOS), Enzo Figini, Paolo Comi (Italtel), Yacine Rebahi (Fokus) Version 1.0 Date 30/10/2015 Distribution PUBLIC (PU)

Upload: others

Post on 06-Aug-2020

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

DeliverableD5.1

NetworkFunctionStore

Editor NicolasHerbaut(Viotech)

Contributors: AuroraRamos,JavierMelián(ATOS),EnzoFigini,PaoloComi(Italtel),YacineRebahi(Fokus)

Version 1.0

Date 30/10/2015

Distribution PUBLIC(PU)

Page 2: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium2

ExecutiveSummary

In T-NOVA, the Function Store is the software component responsible for maintaining arepository of (1) the binaries composing each Virtual Network Function and (2) theirmetadatafiles.

It isnot intended tohaveanyuser-facing interface,but it isdesigned topublishAPIs thatother T-NOVA components will use to perform CRUD (Create-Read-Update-Delete)operationsontheresourcesitstores.

First of all, it allows Network Function Developers to securely upload their NetworkFunctionsalongwithothermetadatafilesneededfortheconfigurationthroughtheT-NOVAMarketPlaceDashboard

Then it allows T-NOVA Marketplace Brokerage Module to retrieve Network Functionmetadataenablingserviceadvertisement,requestandbrokerage/trading.

Finally it allows T-NOVA Orchestrator to retrieve VNF binaries and their metadata toonboardthemontotheplatform. It isalsoresponsibletonotifytheOrchestrator incaseaVNFisupdatedordeleted.

The NF Store has been developed in theWP5 “Network Functions” work-package of theproject. It gets its inputs from WP3 “Orchestrator Platform” and from WP6 “T-NOVAMarketplaceforwhichitexposesitsAPI.

Page 3: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium3

TableofContents

1.INTRODUCTION..............................................................................................................6

2.NETWORKFUNCTIONSTORE..........................................................................................7

2.1.REQUIREMENTS..................................................................................................................72.1.1.Generalrequirements..............................................................................................72.1.2.Functionalrequirements..........................................................................................72.1.3.Non-FunctionalRequirements.................................................................................7

3.ARCHITECTURE...............................................................................................................8

3.1.HIGHLEVELARCHITECTURE..................................................................................................83.2.LOWLEVELARCHITECTURE...................................................................................................9

3.2.1.WebApplication......................................................................................................93.2.2.Database.................................................................................................................93.2.3.NFSservice.............................................................................................................10

3.3.FUNCTIONALDESCRIPTION..................................................................................................133.3.1.Publication.............................................................................................................133.3.2.Modification..........................................................................................................153.3.3.Removal.................................................................................................................173.3.4.Retrieval................................................................................................................183.3.5.List.........................................................................................................................19

4.INTERFACES..................................................................................................................21

4.1.FILESINTERFACE...............................................................................................................214.1.1.UploadfiletoNFStore...........................................................................................214.1.2.DownloadfilefromNFStore..................................................................................224.1.3.UpdateNFStorefile...............................................................................................234.1.4.DeleteNFStorefiles...............................................................................................244.1.5.GetNFStorefileslist..............................................................................................25

4.2.VNFDESCRIPTORSINTERFACE.............................................................................................254.2.1.AddVNFDescriptortoNFStore..............................................................................254.2.2.GetNFStoreVNFDescriptor..................................................................................264.2.3.ModifyNFStoreVNFDescriptor.............................................................................274.2.4.DeleteNFStoreVNFDescriptor..............................................................................274.2.5.GetNFStoreVNFDescriptorlist.............................................................................28

4.3.MANAGEMENTINTERFACE.................................................................................................28

5.TECHNOLOGIES.............................................................................................................30

6.DIMENSIONINGANDPERFORMANCE...........................................................................31

7.CONCLUSIONSANDFUTUREWORK..............................................................................32

7.1.CONCLUSIONS..................................................................................................................327.2.FUTUREWORK..................................................................................................................32

8.LISTOFACRONYMS......................................................................................................33

9.REFERENCES.................................................................................................................34

Page 4: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium4

Page 5: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium5

IndexofFigures

Figure1.InterfaceswithotherT-NOVAcomponents...............................................................6Figure2.HighLevelArchitecture..............................................................................................8Figure3WebapplicationArchitecture.....................................................................................9Figure4.RelationalSchemas..................................................................................................10Figure5.StartingtheNFStore................................................................................................11Figure6.StoppingtheNFStore..............................................................................................12Figure7.RetrievingthestatusoftheNFStore.......................................................................12Figure8.UploadVNFdescriptor.............................................................................................14Figure9.UploadVNFfile.........................................................................................................15Figure10.UpdateVNFdescriptor...........................................................................................16Figure11.UpdateVNFfile......................................................................................................16Figure12.RemoveVNFdescriptor..........................................................................................17Figure13.RemoveVNFfile.....................................................................................................18Figure14.GetVNFdescriptor.................................................................................................18Figure15.GetVNFfile............................................................................................................19Figure16.ListVNFdescriptors................................................................................................19Figure17.ListVNFfiles...........................................................................................................20

IndexofTables

Table1Configurationoptionsofnfs.conf..............................................................................10Table2Animagefiledeployedwithitsmd5hash..................................................................13

Page 6: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium6

1. INTRODUCTION

The NF Store is mainly a repository for the VNFs’ software images and their metadatadescriptions.

Figure 1 below shows a high level architectural description of the relationships of theNFStoreandVNFswith theotherelementsofT-NOVAarchitecture,namely theOrchestratorandtheMarketplacemodules.

Figure1.InterfaceswithotherT-NOVAcomponents

Software developers can upload VNF images into the NF Store along with metadatadescriptor containing both technical and business related information, such as businessdescriptionofthecostofusingsuchVNF.

ThedescriptionoftheVNFs intheNFStore ismadeavailabletotheT-NOVAMarketplace.WheneveraVNFischosenforbeingpartofaservice,theT-NOVAOrchestratorwillgettheVNFimagefordeployingandexecutingitoverthevirtualizedexecutionenvironment.

Page 7: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium7

2. NETWORKFUNCTIONSTORE

2.1. Requirements

ThemainrequirementsfortheNetworkFunctionStorearesummarizedhere.

2.1.1. Generalrequirements

1. TheNFStoreistherepositoryfortheVNFimagesanditsmetadata2. AVNFcanbecomposedofxVMimagesandonemetadatadescriptor3. The VNF metadata descriptor and all the VM images composing a VNF shall be

correlated,i.e.associatedtoauniqueidentifier(VNF-id)4. TheVNF-idispartoftheVNFmetadatadescriptor.5. AVNFcanbeversioned

2.1.2. Functionalrequirements

1. TheNFStoreinformstheorchestratorwheneveraVNFisaddedtoorremovedfromtherepository

2. The NF Store supports the following interfaces: T-Da-Nfs (Interface to theDashBoard,T-OR-Nfs(InterfacetotheOrchestrator)

3. T-DA-NFS shall allow to upload the VNF metadata descriptor and each VNF VMimage

4. T-DA-NFSshallallowremovingaVNF.Then,allVNFcomponentsaredeleted fromtheNFStore

5. T-OR-NFS shall allow todownload theVNFmetadatadescriptorandeachVNFVMimage

6. Theoperationsoverthesupportedinterfacesshallbealloweduponauthenticationandauthorization

2.1.3. Non-FunctionalRequirements

1. TheNF Store shall provide storage capacity for a reasonable numberofVNFs andVMimages.ThesenumbersbelongtothesetofNFStoreconfigurationparametersthatshallbeprovidedatNFStoredeploymenttime

2. The NF Store shall not introduce additional performance constraints beyond theavailablebandwidthandthroughput

Page 8: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium8

3. ARCHITECTURE

3.1. HighLevelArchitecture

HighlevelbreakupoftheNFStoreincludes:

• NFSrepository:containstheVNFimages• NFS database: contains the VNF metadata and all data needed by the Web

application• NFSWebapplication:applicationlogicgoverningtherepositoryandtheinteractions

over the exposed interfaces and implementing the Network Function Storefunctionality

• NFSinterfaces:providesinterfacesforinteractingwiththeNFStore• NFSManager:applicationtomanagetheNFStore

Figure2.HighLevelArchitecture

TheNFStoreprovidesREST interfaces to theorchestrator (T-OR-NFS)andmarketplace (T-DA-NFSandT-BR-NFS);anadditionalshellinterfaceisprovidedbyNFSmanagerandisusedto manage the NF Store service as standard linux service.The Network Function Store function is developed like aweb application running into anapplicationserver;thechosenserverisApacheTomEE,anall-ApacheJavaEE6WebProfilecertifiedstackbuiltabovetheApacheTomcatServletContainer

The NF Store application implements the interfaces to repository, database and webinterface; it is also responsible for concurrent operations that are performed (CRUDoperations).Inaddition,itdelegatessometraitsofitsresponsibility(likeauthenticationandauthorization access) to an external AAmodule. Securitymechanisms can be adopted fordata exchange over these interfaces.TheNFSdatabaseisusedtoarchiveinformationaboutVNF(metadatafiles);VNFimagefilesaresavedintoafilesystemusedasNFSrepository.

Page 9: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium9

3.2. LowLevelArchitecture

3.2.1. WebApplication

TheWebapplicationarchitectureisbasedonstandardJSR-318EnterpriseJavaBean(EJB)

Figure3WebapplicationArchitecture

StatelessEJBareusedtorealizetheNFStorefront-endsgivingtousersthepossibilitytousetheinterfacesalsowhenVNFimageoperations(upload,download,modify)areactive;thistypeofoperationscanrequirealotsoftimedependingfromthelengthoftheimagefilesothisfeaturepreventstohavetheinterfacelockedandunusableformanytime.

SingletonEJBisusedfortheNFStoreManagerService,realizingthesynchronizationcenterofthewebapplication.WhenanoperationrequiresexecutinganoperationinexclusivewaythisshouldbedevelopedinsidethisEJB.

3.2.2. Database

The database layers is provided by H2, an open source Java SQL database with smallfootprintusedinembeddedmodebecausenootheractorsneedstouseit;theDatabaseissavedasastandardfileintotheLinuxfilesystem.

AnH2consoleapplicationisavailabletooperateonDBusingawebinterface(thatneedstobeconfiguredonTomEE)mainlyformaintenancepurposes.

The database model is made using JPA and the connection to DB use standard JDBCinterface(staticallyconfiguredonTomEE)givingusthepossibilitytochangetheDBwithoutchangingthewebapplicationcode.

Themainentitiesofthedatabasemodelare:

• VNFDescriptor-usedtosaveinformationoftheVNFmetadata.TheVNFdescriptorissavedinStringforminsidethisentity

• VNFFile-usedtomodelaVNFimagefile(thatissavedonfilesystem)givingusthepossibilitytodescribeaone-to-manyrelationfromVNFimagesandVNF.

Theotherentities inthedatabaseareusedonlyforBrokerageinterfacetoimprovesearchperformancesinsteadoflookinginsideallsavedVNFdescriptors.

Page 10: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium10

Figure4.RelationalSchemas

3.2.3. NFSservice

3.2.3.1. Configurationfile

InordertomanageeasilytheNFStore,somebashshellscripthavebeendeveloped.

A configuration file nfs.conf is available to override the default values of the followingconfigurationparameters.

Table1Configurationoptionsofnfs.conf

Variable DefaultValueMonitorloglevel Notice

storepath /usr/local/store

NFSprotocol https

NFSaddress anyaddress

NFSport 8443

orchestratorprotocol path

orchestratorhost api.t-nova.eu

Page 11: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium11

orchestratorport 443

orchestratorpath /orchestrator

3.2.3.2. nfsMonitorscript

ThisbashscriptisresponsibletomanagetheApacheserverTomEE.

PossibleOperationsare:

• Start: this operation is used to start the server with the nfs application inside.Atthebeginning,acheckisdonetoverifythatserverisnotrunning,thentheserveris started after building the server configuration filewith the interface tobeused(protocol/address/port) and setting the environment variables.Server and application are periodicallymonitored to check that all the operationsare working well; in case of failures, the server is stopped and restarted.Thisoperationneedtoberuninbackgroundmodesincethescriptdoesn'texit.

Figure5.StartingtheNFStore

• Stop:thisoperationisusedtostopthemonitorandtheserver.Acheckisdonetoseeifmonitorisactiveandserverisrunning,thentheyarestoppedverifyingifallisdone.IncaseoffailureatryusingSIGKILLisdone.

Page 12: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium12

Figure6.StoppingtheNFStore

• Status : using this operationmakes it possible to check the running status of theserver and its deployed application.A report is send to standardoutput reportingthestatusofmonitor,server,managerapplicationandNFSapplication.

Figure7.RetrievingthestatusoftheNFStore

3.2.3.3. nfsscript

This bash script gives the possibility tomanage the NF Store as a standard linux SysVinitservice.

Availableoperationsare:

start:startofnfsservicecheckingifitisstartedusingthenfsMonitor

stop:stopofnfsserviceusingthenfsMonitor

restart:restartofnfsserviceusingthenfsMonitor

Page 13: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium13

• status:retriveofnfsserviceusingthenfsMonitor

3.3. Functionaldescription

TheDashboardfront-endprovidestheT-DA-NFS interface,usedbysoftwaredeveloperstopublishtheirVNFs.

Thesupportedoperationsare:

• Publication• Modification• Removal• List

The Orchestrator front-end provides the T-OR-NFS interface, used mainly to recover theavailableVNFs.

Thesupportedoperationsare:

• Modification• Retrieve• List

EachtimeanHTTPrequestisreceivedfromtheTomEEinterface,theservermakesachecktoverifythattheURLismappedtoadeployedWebapplication.

In case of success, the request is sent to the correct application where the interface isrealizedwithanEJB.

Inordertosynchronizesomepartsoftheoperationsandincaseofconcurrentaccessfromusers, an internal Singleton EJB is used; this is needed in particular when a long runningoperationonanimagefileisoccurring.

3.3.1. Publication

The VNF is composed by a VNF descriptor and several VM images.TheVNFdescriptorcontainstheVNFmetadatainformation’sandthenthelistofVMimagescomposingtheVNF.

ForeachVMimage,afilecontainingtheMD5imagechecksumshouldbeuploadedbytheNetwork Function developer; the name of the file should be the same of the imagewithaddedthesuffixmd5.

Table2Animagefiledeployedwithitsmd5hash

filetype Name

imagefile vSBC.img

md5sumfile vSBC.img.md5

DifferentinterfacesareavailabletopublishVNFdescriptorandimagefiles.

EachtimeaVMfileoradescriptorisuploaded,theNFStorechecksiftheVNFiscomplete,namelythat(1)theVNFdescriptorisavailable,(2)allimageshavebeenuploadedwiththeirmd5 sum files, (3) and theMD5values computedby theNF Storematch theMD5valuesuploadedbytheVNFdeveloper.Incasetheseconditionsareovercome,acommunicationtoOrchestratorusingtheT-OR-NFSinterfaceissenttoadvicethatanewVNFisavailableinto

Page 14: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium14

NFStore.IfmoreVNFssharethesameimagefile,theorchestratorreceivesanotificationforeachpublishedVNF.

Figure8.UploadVNFdescriptor

Page 15: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium15

Figure9.UploadVNFfile

3.3.2. Modification

Changes canbedoneonVNFdescriptorand/orVNF images. Like inpublishoperation theorder is not important and when the upload of a VNF is complete, a notification toOrchestratorusingtheT-OR-NFSinterfaceissentinformingthattheVNFwaschanged.

IftheimageissharedbyseveralVNF,severalnotificationsaresenttotheOrchestrator,oneforeachVNF.

Page 16: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium16

Figure10.UpdateVNFdescriptor

Figure11.UpdateVNFfile

Page 17: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium17

3.3.3. Removal

EachtimeafileusedbyaVNFisremoved,theVNFisnotusableanymore.InthiscasetheNFStoresendanotificationtotheOrchestratorthoughtheT-OR-NFSinterfacetoinformthataVNFisnomoreavailable.

ThesamethinghappenswhenaVNFdescriptorisremoved.IfmorethanoneVNFssharethesameimagefile,whenthefileisremoved,anOrchestratornotificationissentforeveryVNFusingthatfile.

Whenafileisremoved,butitisrequiredbyasingleVNF,thebinaryfileisdeletedfromtherepositorybuthisdescriptionintoDBisonlyupdatedwiththefilestatustounavailable.

Figure12.RemoveVNFdescriptor

Page 18: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium18

Figure13.RemoveVNFfile

3.3.4. Retrieval

Retrievinganimagefiles isthemainoperationrequiredbytheOrchestratorandisneededtostartaVNF.

TheretrievalofaVNFdescriptorismainlyneededbytheMarketplacedashboard.

Figure14.GetVNFdescriptor

Page 19: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium19

Figure15.GetVNFfile

3.3.5. List

ThisoperationgivestotheDashboardandtheOrchestratorthepossibilitytoknowtheVNFdescriptorsandfilesthatareavailableontheNFStore.

Figure16.ListVNFdescriptors

Page 20: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium20

Figure17.ListVNFfiles

Page 21: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium21

4. INTERFACES

The NF Store provides APIs for the different T-NOVA modules to interact with it. Threeinterfaceshavebeendefined:

• T-DA-NFS -Dashboard Interface:The interfacebetweenthedashboardandtheNFStorehasthesinglefunctionalityofprovidingtheAPIfortheFunctionProviders(FP)toinserttheirVNFsofferingsandassociatedmetadataintheFunctionStore.EachFPintroduces their Functionsusing the FunctionDefinition feature in theDashboard.Fromthat,aVNFDescriptor iscreatedandtheFunctionimagesareuploadedontotheFunctionStorebymeansofthepreviouslymentionedAPI.

• T-OR-NFS - Orchestrator Interface: This interface gives to Orchestrator, when theFunctionisloadedintheNFStore,thepossibilitytoperformVNFschecksandlabeltheFunctionas"Available".Aseconduseof this interface is toextract the imagesandthemetadataoftheselectedVNFsoncetheyhavebeenpurchasedbyaServiceProviderandarereadytobedeployed.

• T-BR-NFS - Brokerage Interface: The interface between the brokerage and the NFStore has the functionality of providing the API for crawls the list of VNFs andperforms trading mechanisms to be able to offer to SP the best possible set ofoptionsgiventhefollowingparameters:1. availability=true2. trade=true3. Type,billingmodelandprice

Foradeeperbrokering,weshouldalsolookinsidethedeploymentflavor:

1. Assurance parameters. (Those include themonitoring parameters, thresholds,violations and penalties. For more details on those parameters, please checkdeliverableD6.2)

2. ConstituentVDU.

TheexpectedresponsefromtheVNFsmatchingthesearchwouldinclude:

• VNFID• Providername• Description• Billingmodel• Key-flavor/Assuranceparameters• ConstituentVDU

TheinterfacesexposedbytheNFSwebapplicationdeployedintoApacheTomEEservergivethepossibilitytooperateonVNFimagefilesandVNFmetadatadescriptor.

4.1. FilesInterface

4.1.1. UploadfiletoNFStore

ThismethodallowsuploadingafiletoNFStore.

The file should be inserted into HTML body as parts of amultipart/form-data Content.The Content-Type field of the part should be configured to application/octet-stream.

Page 22: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium22

The Content-Disposition field of the part should be configured setting name to file andfilenamewiththenameoffiletoupload.

TheresponseheaderLocationfieldreportstheURLtobeusedfortheotherrequestaboutthisobject.

Theresponsebodyreturnsthenameofthefileandthe Id listofVNFDescriptorsthatusethefiles.

Method POST

Endpoint /NFS/files

Parameters Name Type Description

SampleRequest URL https://83.212.108.105:8443/NFS/files

Body .... Content-Type: multipart/form-data;

boundary=--uuid:2e67c5cf-6c59-4011-ace3-a9d420592392

--uuid:2e67c5cf-6c59-4011-ace3-a9d420592392

Content-Type: application/octet-stream Content-Transfer-Encoding: binary Content-Disposition: form-data;

name="file"; filename="file1.img"

1 22 333 4444 55555 666666 7777777 88888888 999999999 0000000000

--uuid:2e67c5cf-6c59-4011-ace3-a9d420592392--

Sampleresponse Status Responsebody201 CREATED { "name": "file1.img",

"vnfd_id": [104,368]}

Possibleerrors Code Description

400 Bad request 500 Internal Server Error

4.1.2. DownloadfilefromNFStore

ThismethodallowsgettingthefilespecifiedintorequestfromNFStore.

ThefileisreturnedintheHTMLbodyaspartsofamultipart/form-dataContent.

TheContent-Typefieldissetconfiguredtoapplication/octet-stream.

TheContent-Dispositionfieldofthepartisconfiguredsettingnametofileandfilenamewiththenameoffile.

Response503(ServiceUnavailable)isreturnedwhenamodifyoperationonthesamefileisalreadyinprogress.

Method GET

Endpoint /NFS/files/<fileName>

Page 23: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium23

Parameters Name Type Description

fileName string Name of the file to download.

SampleRequest

URL Body

https://83.212.108.105:8443/NFS/files/file1.img

Sampleresponse

Status Responsebody200 OK --uuid:2e67c5cf-6c59-4011-ace3-a9d420592392

Content-Type: application/octet-stream Content-Transfer-Encoding: binary

Content-Disposition: form-data; name="file"; filename="file1.img"

1 22 333 4444 55555 666666 7777777 88888888

999999999 0000000000 --uuid:2e67c5cf-6c59-4011-ace3-a9d420592392-

-

Possibleerrors Code Description

400 Bad Request 404 Not Found 500 Internal Server Error 503 Service Unavailable

4.1.3. UpdateNFStorefile

ThismethodallowsupdatingafilealreadyuploadedtoNFStore.

ThefileshouldbeinsertedintoHTMLbodyaspartsofamultipart/form-dataContent.

TheContent-Typefieldofthepartshouldbeconfiguredtoapplication/octet-stream.

TheContent-Dispositionfieldofthepartshouldbeconfiguredsettingnametofile.

TheresponsereturnsthenameofthefileandtheIdlistofVNFDescriptorsthatusethefiles.

Response 503 (Service Unavailable) is returned when another operation on same file isalreadyinprogress.

Method PUT

Endpoint /NFS/files/<fileName>

Parameters Name Type Description

fileName string Name of the file to update.

SampleRequest

URL https://83.212.108.105:8443/NFS/files/file1.img

Body .... Content-Type: multipart/form-data; boundary=--

uuid:2e67c5cf-6c59-4011-ace3-a9d420592392

--uuid:2e67c5cf-6c59-4011-ace3-a9d420592392 Content-Type: application/octet-stream

Content-Transfer-Encoding: binary Content-Disposition: form-data; name="file";

Page 24: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium24

filename="file1.img"

1 22 333 4444 55555 666666 7777777 88888888 999999999 0000000000

--uuid:2e67c5cf-6c59-4011-ace3-a9d420592392--

Sampleresponse

Status Responsebody200 OK {

"name": "file1.img", "vnfd_id": [104,368]

}

Possibleerrors Code Description

400 Bad Request 404 Not Found 500 Internal Server Error 503 Service Unavailable

4.1.4. DeleteNFStorefiles

4.1.4.1. DeleteallNFStorefiles

ThismethodallowsdeletingallfilesavailableintotheNFStore.

Method DELETE

Endpoint /NFS/files

Parameters Name Type Description

SampleRequest

URL https://83.212.108.105:8443/NFS/files

Body

Sampleresponse

Status Responsebody204 No Content

Possibleerrors Code Description

500 Internal Server Error

4.1.4.2. DeleteNFStorefile

ThismethodallowsdeletingfromNFStorethefilespecifiedintorequest.

Response503(ServiceUnavailable)isreturnedwhenanotheroperationonthesamefileisalreadyinprogress.

Method DELETE

Endpoint /NFS/files/<fileName>

Parameters Name Type Description

fileName string Name of the file to delete.

Sample URL https://83.212.108.105:8443/NFS/files/file1.img

Page 25: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium25

Request Body

Sampleresponse

Status Responsebody204 No Content

Possibleerrors Code Description

400 Bad Request

404 Not Found 500 Internal Server Error

4.1.5. GetNFStorefileslist

ThismethodallowsretrievingthelistofallfilesavailableintoNFStore.

Theresponsereportforeachfile:

• filename• VNFDescriptorIdentifiersofVNFsthatusethefile

Method GET

Endpoint /NFS/files

Parameters Name Type Description

fileName string Name of the file to

download.

SampleRequest URL Body

https://83.212.108.105:8443/NFS/files

Sampleresponse Status Responsebody200 OK {

"files": [ {

"name": "file1.img", "vnfd_Id": [104]

}, {

"name": "file2.img", "vnfd_Id": [104,368]

} ]

}

Possibleerrors Code Description

500 Internal Server Error

4.2. VNFDescriptorsinterface

4.2.1. AddVNFDescriptortoNFStore

ThismethodallowsaddingoneVNFdescriptortoNFStore.

Thedescriptorshouldbeinsertedinjsonformatintotherequest.

TheContent-Typefieldofthepartshouldbeconfiguredtoapplication/json.

Page 26: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium26

Remember that the id field of VNF descriptor should not be present because the valueshouldbeinsertedbyNFStore.

TheresponsereturntheidofVNFdescriptorinserted.

Method POST

Endpoint /NFS/vnfds

Parameters Name Type Description

SampleRequest URL Body

https://83.212.108.105:8443/NFS/vnfds

Sampleresponse Status Responsebody201 CREATED { "vnfd_id":3901}

Possibleerrors Code Description

400 Bad request 500 Internal Server Error

4.2.2. GetNFStoreVNFDescriptor

ThismethodallowsgettingfromNFStoretheVNFdescriptorwithidspecifiedintorequest.

ThedescriptorisreturnedinjsonformintoHTMLbody.

TheContent-Typefieldissettoapplication/json.

Method GET

Endpoint /NFS/vnfds/<vnfd_id>

Parameters Name Type Description

vnfd_id integer Identifier of

VNF descriptor.

SampleRequest URL Body

https://83.212.108.105:8443/NFS/vnfds/3901

Sampleresponse Status Responsebody200 OK {

"id": 3901 "descriptor_version": "1.0",

"version": "1.0", "Vdu": [

{ "id": "VDU-1",

"vm_image": "file1.img" },

{ "id": "VDU-2",

"vm_image": "file2.img" } ],

...... }

Possibleerrors Code Description

Page 27: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium27

400 Bad Request

404 Not Found 500 Internal Server Error

4.2.3. ModifyNFStoreVNFDescriptor

ThismethodallowsmodifyingoneVNFdescriptoralreadyavailableintoNFStore.

Thenewdescriptorshouldbeinsertedinjsonformatintorequest.

TheContent-Typefieldofthepartshouldbeconfiguredtoapplication/json.

Remember that the id field of VNF descriptor should be present and should be the samespecifiedintorequestURL.

TheresponsereturntheidofVNFdescriptormodified.

Method PUT

Endpoint /NFS/vnfds

Parameters Name Type Description

SampleRequest URL Body

https://83.212.108.105:8443/NFS/files/3901

Sampleresponse Status Responsebody200 OK {

"vnfd_id":3901 }

Possibleerrors Code Description

400 Bad Request

404 Not Found 500 Internal Server Error

4.2.4. DeleteNFStoreVNFDescriptor

4.2.4.1. DeleteallVNFDescriptors

Thismethod allowsdeleting all VNFDescriptors fromNF Storewith all files specified intoVdusfields.

Method DELETE

Endpoint /NFS/vnfds

Parameters Name Type Description

SampleRequest

URL https://83.212.108.105:8443/NFS/files

Body

Sampleresponse

Status Responsebody204 No Content

Page 28: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium28

Possibleerrors Code Description

500 Internal Server Error

4.2.4.2. DeleteNFStoreVNFDescriptor

ThismethodallowsdeletingfromtheNFStoretheVNFDescriptorspecifiedintotherequestandallfilesspecifiedintoVdusfields.

ThefileusedbyotherVNFdescriptorswillnotberemoved.

Method DELETE

Endpoint /NFS/vnfds/<vnfd_id>

Parameters Name Type Description

vnfd_id integer Identifier of VNF descriptor.

SampleRequest

URL https://83.212.108.105:8443/NFS/files/1309

Body

Sampleresponse

Status Responsebody204 No Content

Possibleerrors Code Description

400 Bad Request

404 Not Found 500 Internal Server Error

4.2.5. GetNFStoreVNFDescriptorlist

ThismethodallowsretrievingthelistofallVNFdescriptorsavailableintotheNFStore.

Method GET

Endpoint /NFS/vnfds

Parameters Name Type Description

SampleRequest URL Body

https://83.212.108.105:8443/NFS/vnfds

Sampleresponse Status Responsebody200 OK {

"vnfd_id": [ 3901, 1309 ] }

Possibleerrors Code Description

500 Internal Server Error

4.3. ManagementInterface

ThisinterfaceisusedtomanagetheNFStore.

The deployment of the NF Store installs a standard linux SysVinit service called nfs thatenablesuserstoperformthefollowingoperations:

Page 29: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium29

• StartNFStore

Shellcommand:servicenfsstart

• StopNFStore

Shellcommand:servicenfsstop

• RestartNFStore

Shellcommand:servicenfsrestart

• GetNFStorestatus

Shellcommand:servicenfsstatus

Page 30: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium30

5. TECHNOLOGIES

TheNFStoreimplementationismadewithajavawebservicerunningonTomcatapplicationserver.

Apache Tomcat is an open source software implementation of the Java Servlet and JavaServerPages technologies; forour implementation,weuseTomEE,whichbundlesTomcatversion7withalongwithenterprisedependencieslikeCDI,EJB,JPA,JTA,BeanValidation.

Inourcase,weusetheTomEEversion+thatcontainsalsotheJAX-RSpackagesneededforimplementingtherequiredRESTinterfaces.

DatabasedataisdescribedusingJPA(JavaPersistenceAPI)andtheinterconnectionwithDBusingJDBCAPI,givingusthepossibilitytochangeitwithoutrequiringchangesinthesourcecode.

Theuseddatabase isH2,apureJavaSQLdatabasewithsmall footprint thatmatchesverywellwithjavaapplications,usedinthisprojectinembeddedmodeastheapplicationistheonlyresourcethatneedstoaccesstoDB.

Data exchangeon interfaces T-DA-NFS and T-OR-NFS are implementedby REST primitivesusing the standard JSON (JavaScript Object Notation) format. JSON is a lightweight data-interchangeformateasyforhumanstoreadandwriteandalsoeasyformachinestoparseandgenerateatextformatthatiscompletelylanguageindependentandbasedonasubsetoftheJavaScriptProgrammingLanguage.

The Java Virtual Machine is the 1.8 version and the development is made using Eclipseplatform(Lunaversion).

The build procedure use Apache ANT, a Java library and command-line tool for driveprocessesdescribedinbuildfiles.

The final production is a RPM file generated using redline, a pure Java library formanipulatingRPMPackageManagerpackages.

The deployment of RPM on target installs a standard service called nfs that can also beactivatedatserverstartupaddingittoappropriaterunlevel.

Page 31: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium31

6. DIMENSIONINGANDPERFORMANCE

DimensioningandperformancestaskswillbecarriedoutwhenintegratingwithMarketplaceandOrchestrator,pleaserefertoD6.3formoredetails.

Page 32: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium32

7. CONCLUSIONSANDFUTUREWORK

7.1. Conclusions

TheNetworkFunctionstoreplaysacrucial role indeliveringVNFs inatimely fashion,VNFimagestotheOrchestrator,andinprovidinganAPIfornetworkdeveloperstopublishtheirworkandalsoanAPIforBrokeragefunctions.

By selecting a standard JEE implementation to support a simple but robust REST API, wemitigatedthefartoocommonintegrationissueswemayfacewheninterfacingwiththerestofthesystem.

7.2. Futurework

In this deliverable, we reported on the current implementation of the network functionstore.Asintegrationtaskswillbecarriedoutwhenothermodulesareready,wedecidedtopostponetheperformancemeasurementsuntiltheinterfacesarematureenough.

Page 33: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium33

8. LISTOFACRONYMS

Acronym Explanation

[API] ApplicationProgramInterface

[CDI] ContextsandDependencyInjection

[EJB] EnterpriseJavaBeans

[FIQL] FeedItemQueryLanguage

[IDE] IntegratedDevelopmentEnvironment

[JDBC] JavaDatabaseConnectivity

[JPA] JavaPersistenceAPI

[JSON] JavaScriptObjectNotation

Page 34: Network Function Store - T-NOVA · The VNF-id is part of the VNF metadata descriptor. 5. A VNF can be versioned 2.1.2. Functional requirements 1. The NF Store informs the orchestrator

T-NOVA|DeliverableD5.1 NetworkFunctionStore

©T-NOVAConsortium34

9. REFERENCES

[ANT] Javalibrarytodriveprocesses http://ant.apache.org/

[CDI] ContextsandDependencyInjectionforJavaEE http://www.cdi-spec.org

[CXF] ApacheCXFservicesframework http://cxf.apache.org

[D2.21] T-NOVA: Overall System Architecture andInterfaces

[D2.41] SpecificationoftheNetworkFunctionframeworkandT-NOVAMarketplace

[Eclipse] JavaIDE https://eclipse.org/

[H2] H2database http://www.h2database.com/html/main.html

[EJB] EnterpriseJavaBeanshttp://www.oracle.com/technetwork/java/javaee/ejb/index.html

[JAX-RS] JavaAPIforRESTfulServices https://jax-rs-spec.java.net

[JAVAEE] JavaEnterpriseEditionhttp://www.oracle.com/technetwork/java/javaee/overview/index.html

[JDBC] Javadatabaseconnectivitytechnologyhttp://www.oracle.com/technetwork/java/javase/jDBc/index.htm

[JPA] JavaPersistenceAPI

http://www.oracle.com/technetwork/java/javaee/tech/persistence-jsp-140049.html

[OpenJPA] ApacheopenJPA http://openjpa.apache.org/

[Redline] JavaRPMPackageManagerpackages http://redline-rpm.org/index.html

[Servlet] JavaServlethttp://www.oracle.com/technetwork/java/index-jsp-135475.html

[Tomcat] Tomcatapplicationserver http://tomcat.apache.org/

[TomEE] TomcatEnterpriseEdition http://tomee.apache.org/apache-tomee.html