network function store - t-nova · the vnf-id is part of the vnf metadata descriptor. 5. a vnf can...
TRANSCRIPT
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)
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.
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
T-NOVA|DeliverableD5.1 NetworkFunctionStore
©T-NOVAConsortium4
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
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.
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
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.
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.
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
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.
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
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
T-NOVA|DeliverableD5.1 NetworkFunctionStore
©T-NOVAConsortium14
NFStore.IfmoreVNFssharethesameimagefile,theorchestratorreceivesanotificationforeachpublishedVNF.
Figure8.UploadVNFdescriptor
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.
T-NOVA|DeliverableD5.1 NetworkFunctionStore
©T-NOVAConsortium16
Figure10.UpdateVNFdescriptor
Figure11.UpdateVNFfile
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
T-NOVA|DeliverableD5.1 NetworkFunctionStore
©T-NOVAConsortium18
Figure13.RemoveVNFfile
3.3.4. Retrieval
Retrievinganimagefiles isthemainoperationrequiredbytheOrchestratorandisneededtostartaVNF.
TheretrievalofaVNFdescriptorismainlyneededbytheMarketplacedashboard.
Figure14.GetVNFdescriptor
T-NOVA|DeliverableD5.1 NetworkFunctionStore
©T-NOVAConsortium19
Figure15.GetVNFfile
3.3.5. List
ThisoperationgivestotheDashboardandtheOrchestratorthepossibilitytoknowtheVNFdescriptorsandfilesthatareavailableontheNFStore.
Figure16.ListVNFdescriptors
T-NOVA|DeliverableD5.1 NetworkFunctionStore
©T-NOVAConsortium20
Figure17.ListVNFfiles
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.
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>
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";
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
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.
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
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
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:
T-NOVA|DeliverableD5.1 NetworkFunctionStore
©T-NOVAConsortium29
• StartNFStore
Shellcommand:servicenfsstart
• StopNFStore
Shellcommand:servicenfsstop
• RestartNFStore
Shellcommand:servicenfsrestart
• GetNFStorestatus
Shellcommand:servicenfsstatus
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.
T-NOVA|DeliverableD5.1 NetworkFunctionStore
©T-NOVAConsortium31
6. DIMENSIONINGANDPERFORMANCE
DimensioningandperformancestaskswillbecarriedoutwhenintegratingwithMarketplaceandOrchestrator,pleaserefertoD6.3formoredetails.
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.
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
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