summaryrefslogtreecommitdiffstats
path: root/docs/vnf_guidelines.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/vnf_guidelines.rst')
-rw-r--r--docs/vnf_guidelines.rst1224
1 files changed, 1224 insertions, 0 deletions
diff --git a/docs/vnf_guidelines.rst b/docs/vnf_guidelines.rst
new file mode 100644
index 0000000..f083dd1
--- /dev/null
+++ b/docs/vnf_guidelines.rst
@@ -0,0 +1,1224 @@
+.. Modifications Copyright © 2017-2018 AT&T Intellectual Property.
+
+.. Licensed under the Creative Commons License, Attribution 4.0 Intl.
+ (the "License"); you may not use this documentation except in compliance
+ with the License. You may obtain a copy of the License at
+
+.. https://creativecommons.org/licenses/by/4.0/
+
+.. Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+
+
+.. contents:: Table of Contents
+ :depth: 3
+ :backlinks: entry
+
+
+VNF/PNF Guidelines
+==================
+
+
+**Purpose**
+------------------------
+- This document focuses on setting and evolving VNF/PNF standards that
+ will facilitate industry discussion, participation, alignment and evolution
+ towards comprehensive and actionable VNF/PNF best practices and standard
+ interface.
+- The goal is to accelerate adoption of VNF/PNF best practices which will
+ increase innovation, minimize customization needed to onboard VNFs/PNFs as
+ well as reduce implementation complexity, time and cost for all impacted
+ stakeholders.
+- The intent is to drive harmonization of VNFs/PNFs across VNF/PNF providers,
+ Network Cloud Service providers (NCSPs) and the overall Network Function
+ Virtualization (NFV) ecosystem by providing both long term vision as well
+ as short tem focus and clarity.
+
+**Scope**
+--------------------
+- The audience for this document are VNF/PNF providers, NCSPs and other
+ interested 3rd parties who need to know the design, build and lifecycle
+ management requirements for VNFs/PNFs to be compliant with ONAP.
+- These guidelines describe VNF environment and provide an overview of
+ what the VNF developer needs to know to operate and be compliant with ONAP.
+- These guidelines contains high level expectations and references to
+ specific requirements documentation for VNFs/PNFs which are applicable
+ to the current release of ONAP.
+- Part of the guidelines also contains visionary recommendations for
+ future functionality that could be desirable for ONAP future releases.
+- Conformance requirements are in the `VNF/PNF Requirements
+ document <http://onap.readthedocs.io/en/latest/submodules/vnfrqts/requirements.git/docs/index.html>`_.
+
+**Introduction**
+-------------------------------
+
+Motivation
+^^^^^^^^^^^^^^^^^^^^
+
+The requirements and guidelines defined herein are intended to
+facilitate industry discussion, participation alignment and evolution
+toward comprehensive and actionable VNF/PNF best practices. Integration
+costs are a significant impediment to the development and deployment of
+new services. We envision developing open source industry processes and
+best practices leading eventually to VNF/PNF standards supporting commercial
+acquisition of VNFs/PNFs with minimal integration costs. Traditional PNFs
+have all been unique like snowflakes and required expensive custom
+integration, whereas VNF products and services should be designed for
+easier integration just like Lego\ :sup:`TM` blocks. For example, by
+standardizing on common actions and related APIs supported by VNFs, plug
+and play integration is assured, jumpstarting automation with management
+frameworks. Onboarding VNFs would no longer require complex and
+protracted integration or development activities thus maximizing
+automation and minimizing integration cost. Creating VNF open source
+environments, best practices and standards provides additional benefits
+to the NFV ecosystems such as:
+
+- Larger market for VNF providers
+
+- Rapid introduction and integration of new capabilities into the
+ services providers environment
+
+- Reduced development times and costs for VNF providers
+
+- Better availability of new capabilities to NCSPs
+
+- Better distribution of new capabilities to end-user consumers
+
+- Reduced integration cost (capex) for NCSPs
+
+- Usage based software licensing for end-user consumers and NCSPs
+
+Audience
+^^^^^^^^^^^^
+
+The industry transformation associated with softwarization [1]_ results
+in a number of changes in traditional approaches for industry
+collaboration. Changes from hardware to software, from waterfall to
+agile processes and the emergence of industry supported open source
+communities imply corresponding changes in processes at many industry
+collaboration bodies. With limited operational experience and much more
+dynamic requirements, open source communities are expected to evolve
+these VNF/PNF guidelines further before final documentation of those aspects
+necessary for standardization. This document and accompanying refer documents
+provides VNF/PNF providers, NCSPs and other interested 3rd parties a set of
+guidelines and requirements for the design, build and overall lifecycle
+management of VNFs.
+
+**VNF/PNF Providers**
+
+PNF suppliers and those transitioning from providing physical network functions
+to providing VNFs as well as new market entrants should find
+these VNF/PNF requirements and guidelines a useful introduction to the
+requirements to be able to develop VNFs/PNFs for deployment into a Network
+Cloud. VNF/PNF Providers may also be interested to test their VNFs/PNFs in the
+context of an open source implementation of the environment.
+
+**Network Cloud Service Providers (NCSPs)**
+
+A NCSP provides services based on Network Cloud infrastructure as well
+as services above the infrastructure layer, e.g., platform service,
+end-to-end services.
+
+Common approaches to packaging of VNFs enable economies of scale in
+their development. As suitable infrastructure becomes deployed, NCSPs
+have a common interest in guidelines that support the ease of deployment
+of VNFs in each other's Network Cloud. After reading these VNF
+guidelines, NCSPs should be motivated to join ONAP in evolving these
+guidelines to meet the industry's collective needs.
+
+**Other interested parties**
+
+Other parties such as solution providers, open source community,
+industry standard bodies, students and researchers of network
+technologies, as well as enterprise customers may also be interested in
+the VNF/PNF Guidelines. Solution Providers focused on specific industry
+verticals may find these VNF/PNF guidelines useful in the development of
+specialized VNFs/PNFs that can better address the needs of their industry
+through deployment of these VNFs/PNFs in NCSP infrastructure. Open Source
+developers can use these VNF/PNF guidelines to facilitate the automation of
+VNF ingestion and deployment. The emergence of a market for VNFs enables
+NCSPs to more rapidly deliver increased functionality, for execution on
+white box hardware on customer's premises – such functionality may be of
+particular interest to enterprises supporting similar infrastructure.
+
+Program and Document Structure
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This document is part of a hierarchy of documents that describes the
+overall Requirements and Guidelines for ONAP. The diagram below
+identifies where this document fits in the hierarchy.
+
++-------------------------------------------------------------------------+
+| ONAP Requirements and Guidelines |
++=======================+=================================================+
+| VNF/PNF Guidelines | Future ONAP Subject Documents |
++-----------------------+-------------------------+-----------------------+
+| VNF/PNF Requirements | Future VNF/PNF | Future Requirements |
+| | Requirements Documents | Documents |
++-----------------------+-------------------------+-----------------------+
+
+Document summary:
+
+**VNF/PNF Guidelines**
+
+- Describes VNF/PNF environment and overview of requirements
+
+*VNF Requirements*
+
+- VNF development readiness requirements (Design, Resiliency, Security,
+ and DevOps)
+
+- Requirements for how VNFs interact and utilize ONAP
+
+- Provides recommendations and standards for building Heat templates
+ compatible with ONAP.
+
+- Provides recommendations and standards for building TOSCA templates
+ compatible with ONAP.
+
+
+Acronyms and Definitions
+^^^^^^^^^^^^^^^^^^^^^^^^^
+Refer to Appendix A - Glossary
+
+
+**VNF Context**
+----------------------------------------
+
+A technology trend towards softwarization is impacting the
+communications industry as it has already impacted a number of other
+industries. This trend is expected to have some significant impacts on
+the products and processes of this industry. The transformation from
+products primarily based on hardware to products primarily based on
+software has a number of impacts. The completeness of the software
+packages to ease integration, usage based licensing to reflect scaling
+properties, independence from hardware and location and software
+resilience in the presence of underlying hardware failure all gain in
+importance compared to prior solutions. The processes supporting
+software products and services are also expected to transform from
+traditional waterfall methodologies to agile methods. In agile
+processes, characteristics such as versioned APIs, rolling upgrades,
+automated testing and deployment support with incremental release
+schedules become important for these software products and services.
+Industry process related to software products and services also change
+with the rise of industrially supported open source communities.
+Engagement with these open source communities enables sharing of best
+practices and collaborative development of open source testing and
+integration regimes, open source APIs and open source code bases.
+
+The term VNF is inspired by the work [2]_ of the ETSI [3]_ Network
+Functions Virtualization (NFV) Industry Specification Group (ISG).
+ETSI's VNF definition includes both historically network functions, such
+as Virtual Provider Edge (VPE), Virtual Customer Edge (VCE), and Session
+Border Controller (SBC), as well as historically non-network functions
+when used to support network services, such as network-supporting web
+servers and databases. The VNF discussion in these guidelines applies to
+all types of virtualized workloads, not just network appliance
+workloads. Having a consistent approach to virtualizing any workload
+provides more industry value than just virtualizing some workloads. [4]_
+
+VNFs are functions that are implemented in Network Clouds. Network
+Clouds must support end-to-end high-bandwidth low latency network flows
+through VNFs running in virtualization environments. For example, a
+Network Cloud is able to provide a firewall service to be created such
+that all Internet traffic to a customer premise passes through a virtual
+firewall running in the Network Cloud.
+
+A data center may be the most common target for a virtualization
+environment, but it is not the only target. Virtualization environments
+are also supported by more constrained resources e.g., Enterprise
+Customer Premise Equipment (CPE). Virtualization environments are also
+expected to be available at more distributed network locations by
+architecting central offices as data centers, or virtualizing functions
+located at the edge of the operator infrastructure (e.g., virtualized
+Optical Line Termination (vOLT) or xRAN [5]_) and in constrained
+resource Access Nodes. Expect detailed requirements to evolve with these
+additional virtualization environments. Some VNFs may scale across all
+these environments, but all VNFs should onboard through the same process
+before deployment to the targeted virtualization environment.
+
+Business Process Impacts
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Business process changes need to occur in order to realize full benefits
+of VNF characteristics: efficiency via automation, open source reliance,
+and improved cycle time through careful design.
+
+**Efficiency via Automation**
+
+reliant on human labor for critical operational tasks don't scale. By
+aggressively automating all VNF operational procedures, VNFs have lower
+operational cost, are more rapidly deployed at scale and are more
+consistent in their operation. ONAP provides the automation
+framework which VNFs can take advantage of simply by implementing
+ONAP compatible interfaces and lifecycle models. This enables
+automation which drives operational efficiencies and delivers the
+corresponding benefits.
+
+**Open Source**
+
+VNFs are expected to run on infrastructure largely enabled by open
+source software. For example, OpenStack [6]_ is often used to provide
+the virtualized compute, network, and storage capabilities used to host
+VNFs. OpenDaylight (ODL) [7]_ can provide the network control plane. The
+OPNFV community [8]_ provides a reference platform through integration
+of ODL, OpenStack and other relevant open source projects. VNFs also run
+in open source operating systems like Linux. VNFs might also utilize
+open source software libraries to take advantage of required common but
+critical software capabilities where community support is available.
+Automation becomes easier, overall costs go down and time to market can
+decrease when VNFs can be developed and tested in an open source
+reference platform environment prior to on-boarding by the NCSP. All of
+these points contribute to a lower cost structure for both VNF providers
+and NCSPs.
+
+**Improved Cycle Time through Careful Design**
+
+Today's fast paced world requires businesses to evolve rapidly in order
+to stay relevant and competitive. To a large degree VNFs, when used with
+the same control, orchestration, management and policy framework (e.g.,
+ONAP), will improve service development and composition. VNFs
+should enable NCSPs to exploit recursive nesting of VNFs to acquire VNFs
+at the smallest appropriate granularity so that new VNFs and network
+services can be composed. The ETSI NFV Framework [9]_ envisages such
+recursive assembly of VNFs, but many current implementations fail to
+support such features. Designing for VNF reuse often requires that
+traditional appliance based PNFs be refactored into multiple individual
+VNFs where each does one thing particularly well. While the original
+appliance based PNF can be replicated virtually by the right combination
+and organization of lower level VNFs, the real advantage comes in
+creating new services composed of different combinations of lower level
+VNFs (possibly from many providers) organized in new ways. Easier and
+faster service creation often generates real value for businesses. As
+softwarization trends progress towards more agile processes, VNFs,
+ONAP and Network Clouds are all expected to evolve towards
+continuous integration, testing and deployment of small incremental
+changes to de-risk the upgrade process.
+
+ETSI Network Function Virtualization (NFV) comparison
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+ETSI defines a VNF as an implementation of a network function that can
+be deployed on a Network Function Virtualization Infrastructure (NFVI).
+Service instances may be composed of an assembly of VNFs. In turn, a VNF
+may also be assembled from VNF components (VNFCs) that each provide a
+reusable set of functionality. VNFs are expected to take advantage of
+platform provided common services.
+
+VNF management and control under ONAP is different but remain compatible
+with the management and control exposed in the ETSI MANO model. With ONAP,
+there are two ways to manage and control VNF. One is asking all VNF providers
+to take advantage of and interoperate with common control software, as
+loop indicates by the black arrows in figure 1. At the same time a
+management and control architectural option exists for preserving legacy
+systems, e.g., ETSI MANO compatible VNFs can be controlled by third-party or
+specific VNF Managers(VNFMs) and Element Management Systems (EMSs) provided
+outside ONAP,as the loop indicates by the red arrows in figure 1.
+The ONAP is being made available as an open source project to reduce
+friction for VNF providers and enable new network functions to get to
+market faster and with lower costs.
+
+
+**Figure 1** shows a simplified ONAP and Infrastructure view to
+highlight how individual Virtual Network Functions plug into the
+ONAP control loops.
+
+|image0|
+
+\ **Figure 1. Control Loop**
+
+In the control loop view in **Figure 1**, the VNF provides an event
+data stream via an API to Data Collection, Analytics and Events (DCAE).
+DCAE analyzes and aggregates the data stream and when particular
+conditions are detected, uses policy to enable what, if any, action
+should be triggered. Some of the triggered actions may require a
+controller to make changes to the VNF through a VNF provided API.
+
+For a detailed comparison between ETSI NFV and ONAP, refer to
+Appendix C - Comparison between VNF Guidelines and ETSI GS NFV-SWA 001.
+
+
+Evolving towards VNFs
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In order to deploy VNFs, a target virtualization environment must
+already be in place. The NCSPs scale necessitates a phased rollout of
+virtualization infrastructure and then of VNFs upon that infrastructure.
+Some VNF use cases may require greenfield infrastructure deployments,
+others may start brownfield deployments in centralized data centers and
+then scale deployment more widely as infrastructure becomes available.
+Some service providers have been very public and proactive in setting
+transformation targets associated with VNFs.
+
+Because of the complexity of migration and integration issues, the
+requirements for VNFs in the short term may need to be contextualized to
+the specific service and transition planning.
+
+Much of the existing VNF work has been based on corresponding network
+function definitions and requirements developed for PNFs. Many of the
+assumptions about PNFs do not apply to VNFs and the modularity of the
+functionality is expected to be significantly different. In addition,
+the increased service velocity objectives of NFV are based on new types
+of VNFs being developed to support new services being deployed in
+virtualized environments. Much of the functionality associated with 5G
+(e.g., IoT, augmented reality/virtual reality) is thus expected to be
+deployed as VNFs in targeted virtualization infrastructure towards the
+edge of the network.
+
+**VNF Characteristics**
+-------------------------------------------------------
+
+VNFs need to be constructed using a distributed systems architecture
+that we will call "Network Cloud Ready". They need to interact with the
+orchestration and control platform provided by ONAP and address the
+new security challenges that come in this environment.
+
+The main goal of a Network Cloud Ready VNF is to run 'well' on any
+Network Cloud (public or private) over any network (carrier or
+enterprise). In addition, for optimal performance and efficiency, VNFs
+will be designed to take advantage of Network Clouds. This requires
+careful engineering in both VNFs and candidate Network Cloud computing
+frameworks.
+
+To ensure Network Cloud capabilities are leveraged and VNF resource
+consumption meets engineering and economic targets, VNF performance and
+efficiency will be benchmarked in a controlled lab environment. In line
+with the principles and practices laid out in ETSI GS NFV-PER 001,
+efficiency testing will consist of benchmarking VNF performance with a
+reference workload and associated performance metrics on a reference
+Network Cloud (or, when appropriate, additional benchmarking on a bare
+metal reference platform).
+
+Network Cloud Ready VNF characteristics and design consideration can be
+grouped into three areas:
+
+- VNF Development
+
+- ONAP Ready
+
+- Virtualization Environment Ready
+
+Detailed requirements are contained in the reference documents that are
+listed in Appendix B - References.
+
+VNF Development
+^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+VNFs should be designed to operate within a cloud environment from the
+first stages of the development. The VNF provider should think clearly
+about how the VNF should be decomposed into various modules. Resiliency
+within a cloud environment is very different than in a physical
+environment and the developer should give early thought as to how the
+Network Cloud Service Provider will ensure the level of resiliency
+required by the VNF and then provide the capabilities needed within that
+VNF. Scaling and Security should also be well thought out at design time
+so that the VNF runs well in a virtualized environment. Finally, the VNF
+Provider also needs to think about how they will integrate and deploy
+new versions of the VNF. Since the cloud environment is very dynamic,
+the developer should utilize DevOps practices to deploy new software.
+
+Detailed requirements for VNF Development can be found in the
+*VNF Requirements* document.
+
+VNF Design
+~~~~~~~~~~
+
+A VNF may be a large construct and therefore when designing it, it is
+important to think about the components from which it will be composed.
+The ETSI SWA 001 document gives a good overview of the architecture of a
+VNF in Chapter 4 as well as some good examples of how to compose a VNF
+in its Annex B. When laying out the components of the VNF it is
+important to keep in mind the following principles: Single Capability,
+Independence, State and the APIs.
+
+Many Network Clouds will use Heat and TOSCA to describe orchestration
+templates for instantiating VNFs and VNFCs. Heat and TOSCA has a useful
+abstraction called a "module" that can contain one or more VNFCs. A
+module can be thought of as a deployment unit. In general the goal should
+be for each module to contain a single VNFC.
+
+Single Capability
++++++++++++++++++++
+
+VNFs should be carefully decomposed into loosely coupled, granular,
+re-usable VNFCs that can be distributed and scaled on a Network Cloud.
+VNFCs should be responsible for a single capability.
+
+The Network Cloud will define several flavors of VMs for a VNF designer
+to choose from for instantiating a VNFC. The best practice is to keep
+the VNFCs as lightweight as possible while still fulfilling the business
+requirements for the "single capability", however the VNFC should not be
+so small that the overhead of constructing, maintaining, and operating
+the service outweighs its utility.
+
+Independence
++++++++++++++++
+
+VNFCs should be independently deployed, configured, upgraded, scaled,
+monitored, and administered (by ONAP). The VNFC must be a
+standalone executable process.
+
+API versioning is one of the biggest enablers of independence. To be
+able to independently evolve a component, versioning must ensure
+existing clients of the component are not forced to flash-cut with each
+interface change. API versioning enables smoother evolution while
+preserving backward compatibility.
+
+Scaling
++++++++++++
+
+Each VNFC within a VNF must support independent horizontal scaling, by
+adding/removing instances, in response to demand loads on that VNFC. The
+Network Cloud is not expected to support adding/removing resources
+(compute, memory, storage) to an existing instance of a VNFC (vertical
+scaling). A VNF should be designed such that its components can scale
+independently of each other. Scaling one component should not require
+another component to be scaled at the same time. All scaling will be
+controlled by ONAP.
+
+Managing State
+++++++++++++++++++++++++
+
+VNFCs and their interfaces should isolate and manage state to allow for
+high-reliability, scalability, and performance in a Network Cloud
+environment. The use of state should be minimized as much as possible to
+facilitate the movement of traffic from one instance of a VNFC to
+another. Where state is required it should be maintained in a
+geographically redundant data store that may in fact be its own VNFC.
+
+This concept of decoupling state data can be extended to all persistent
+data. Persistent data should be held in a loosely coupled database.
+These decoupled databases need to be engineered and placed correctly to
+still meet all the performance and resiliency requirements of the
+service.
+
+Lightweight and Open APIs
+++++++++++++++++++++++++++++++++++++++++++++++++
+
+Key functions are accessible via open APIs, which align to Industry API
+Standards and supported by an open and extensible information/data
+model.
+
+Reusability
+++++++++++++++++++++++++
+
+Properly (de)composing a VNF requires thinking about "reusability".
+Components should be designed to be reusable within the VNF as well as
+by other VNFs. The "single capability" principle aids in this
+requirement. If a VNFC could be reusable by other VNFs then it should be
+designed as its own single component VNF that may then be chained with
+other VNFs. Likewise, a VNF provider should make use of other common
+platform VNFs such as firewalls and load balancers, instead of building
+their own.
+
+Resiliency
+~~~~~~~~~~
+
+The VNF is responsible for meeting its resiliency goals and must factor
+in expected availability of the targeted virtualization environment.
+This is likely to be much lower than found in a traditional data center.
+The VNF developer should design the function in such a way that if there
+is a platform problem the VNF will continue working as needed and meet
+the SLAs of that function. VNFs should be designed to survive single
+failure platform problems including: hypervisor, server, datacenter
+outages, etc. There will also be significant planned downtime for the
+Network Cloud as the infrastructure goes through hardware and software
+upgrades. The VNF should support tools for gracefully meeting the
+service needs such as methods for migrating traffic between instances
+and draining traffic from an instance. The VNF needs to rapidly respond
+to the changing conditions of the underlying infrastructure.
+
+VNF resiliency can typically be met through redundancy often supported
+by distributed systems architectures. This is another reason for
+favoring smaller VNFCs. By having more instances of smaller VNFCs it is
+possible to spread the instance out across servers, racks, datacenters,
+and geographic regions. This level of redundancy can mitigate most
+failure scenarios and has the potential to provide a service with even
+greater availability than the old model. Careful consideration of VNFC
+modularity also minimizes the impact of failures when an instance does
+fail.
+
+Security
+~~~~~~~~
+
+Security must be integral to the VNF through its design, development,
+instantiation, operation, and retirement phases. VNF architectures
+deliver new security capabilities that make it easier to maximize
+responsiveness during a cyber-attack and minimize service interruption
+to the customers. SDN enables the environment to expand and adapt for
+additional traffic and incorporation of security solutions. Further,
+additional requirements will exist to support new security capabilities
+as well as provide checks during the development and production stages
+to assure the expected advantages are present and compensating controls
+exist to mitigate new risks.
+
+New security requirements will evolve along with the new architecture.
+Initially, these requirements will fall into the following categories:
+
+- VNF General Security Requirements
+
+- VNF Identity and Access Management Requirements
+
+- VNF API Security Requirements
+
+- VNF Security Analytics Requirements
+
+- VNF Data Protection Requirements
+
+DevOps
+~~~~~~
+
+The ONAP software development and deployment methodology is
+evolving toward a DevOps model. VNF development and deployment should
+evolve in the same direction, enabling agile delivering of end-to-end
+services.
+
+Testing
+++++++++++++++++++++++++
+
+VNF packages should provide comprehensive automated regression,
+performance and reliability testing with VNFs based on open industry
+standard testing tools and methodologies. VNF packages should provide
+acceptance and diagnostic tests and in-service instrumentation to be
+used in production to validate VNF operation.
+
+Build and Deployment Processes
+++++++++++++++++++++++++++++++++++++++++++++++++
+
+VNF packages should include continuous integration and continuous
+deployment (CI/CD) software artifacts that utilize automated open
+industry standard system and container build tools. The VNF package
+should include parameterized configuration variables to enable automated
+build customization. Don't create unique (snowflake) VNFs requiring any
+manual work or human attention to deploy. Do create standardized (Lego™)
+VNFs that can be deployed in a fully automated way.
+
+ONAP will orchestrate updates and upgrades of VNFs. One method for updates
+and upgrades is to onboard and validate the new version, then build a new
+instance with the new version of software,transfer traffic to that instance
+and kill the old instance. There should be no need for the VNF or its
+components to provide an update/upgrade mechanism.
+
+Automation
+++++++++++++++++++++++++
+
+Increased automation is enabled by VNFs and VNF design and composition.
+VNF and VNFCs should provide the following automation capabilities, as
+triggered or managed via ONAP:
+
+- Events and alarms
+
+- Lifecycle events
+
+- Zero-Touch rolling upgrades and downgrades
+
+- Configuration
+
+ONAP Ready
+^^^^^^^^^^^^^^^^^^^^^^
+
+ONAP is the "brain" providing the lifecycle management and control
+of software-centric network resources, infrastructure and services.
+ONAP is critical in achieving the objectives to increase the value
+of the Network Cloud to customers by rapidly on-boarding new services,
+enabling the creation of a new ecosystem of consumer and enterprise
+services, reducing capital and operational expenditures, and providing
+operations efficiencies. It delivers enhanced customer experience by
+allowing them in near real-time to reconfigure their network, services,
+and capacity.
+
+One of the main ONAP responsibilities is to rapidly onboard and
+enrich VNFs to be cataloged as resources to allow composition and
+deployment of services in a multi-vendor plug and play environment. It
+is also extremely important to be able to automatically manage the VNF
+run-time lifecycle to fully realize benefits of NFV. The VNF run-time
+lifecycle includes aspects such as instantiation, configuration, elastic
+scaling, automatic recovery from resource failures, and resource
+allocation. It is therefore imperative to provide VNFs that are equipped
+with well-defined capabilities that comply with ONAP standards to
+allow rapid onboarding and automatic lifecycle management of these
+resources when deploying services as depicted in **Figure 2**.
+
+|image1|
+
+\ **Figure 2. VNF Complete Lifecycle Stages**
+
+In order to realize these capabilities within the ONAP platform, it
+is important to adhere to a set of key principles (listed below) for
+VNFs to integrate into ONAP.
+
+Requirements for ONAP Ready can be found in the *VNF Requirements* document.
+
+Design Definition
+~~~~~~~~~~~~~~~~~
+
+Onboarding automation will be facilitated by applying standards-based
+approaches to VNF packaging to describe the VNF's infrastructure
+resource requirements, topology, licensing model, design constraints,
+and other dependencies to enable successful VNF deployment and
+management of VNF configuration and operational behavior.
+
+The current VNF Package Requirement is based on a subset of the
+Requirements contained in the ETSI Document: ETSI GS NFV-MAN 001 v1.1.1
+and GS NFV IFA011 V0.3.0 (2015-10) - Network Functions Virtualization
+(NFV), Management and Orchestration, VNF Packaging Specification.
+
+Configuration Management
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+ONAP must be able to orchestrate and manage the VNF configuration
+to provide fully automated environment for rapid service provisioning
+and modification. VNF configuration/reconfiguration could be allowed
+directly through standardized APIs or through EMS and VF-C.
+
+Monitoring and Management
+~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The end-to-end service reliability and availability in a virtualized
+environment will greatly depend on the ability to monitor and manage the
+behavior of Virtual Network Functions in real-time. ONAP platform
+must be able to monitor the health of the network and VNFs through
+collection of event and performance data directly from network resources
+utilizing standardized APIs or through EMS. The VNF provider must provide
+visibility into VNF performance and fault at the VNFC level (VNFC is the
+smallest granularity of functionality in our architecture) to allow ONAP
+to proactively monitor, test, diagnose and trouble shoot the health and
+behavior of VNFs at their source.
+
+Virtualization Environment Ready
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Every Network Cloud Service Provider will have a different set of
+resources and capabilities for their Network Cloud, but there are some
+common resources and capabilities that nearly every NCSP will offer.
+
+Network Cloud
+~~~~~~~~~~~~~
+
+VNFCs should be agnostic to the details of the Network Cloud (such as
+hardware, host OS, Hypervisor or container technology) and must run on
+the Network Cloud with acknowledgement to the paradigm that the Network
+Cloud will continue to rapidly evolve and the underlying components of
+the platform will change regularly. VNFs should be prepared to move
+VNFCs across VMs, hosts, locations or datacenters, or Network Clouds.
+
+Overlay Network
+~~~~~~~~~~~~~~~
+
+VNFs should be compliant with the Network Cloud network virtualization
+platform including the specific set of characteristics and features.
+
+The Network Cloud is expected to be tuned to support VNF performance
+requirements. Initially, specifics may differ per Network Cloud
+implementation and are expected to evolve over time, especially as the
+technology matures.
+
+Guest Operating Systems
+~~~~~~~~~~~~~~~~~~~~~~~~
+
+All components in ONAP should be virtualized, preferably with support for
+both virtual machines and containers. All components should be software-based
+with no requirement on a specific hardware platform.
+
+To enable the compliance with security, audit, regulatory and
+other needs, NCSPs may operate a limited set of guest OS and
+CPU architectures and families, virtual machines, etc.
+
+VNFCs should be agnostic to the details of the Network Cloud (such as
+hardware, host OS, Hypervisor or container technology) and must run on
+the Network Cloud with acknowledgement to the paradigm that the Network
+Cloud will continue to rapidly evolve and the underlying
+components of the platform will change regularly.
+
+
+Compute Flavors
+~~~~~~~~~~~~~~~
+
+VNFs should take advantage of the standard Network Cloud capabilities in
+terms of VM characteristics (often referred to as VM Flavors), VM sizes
+and cloud acceleration capabilities aimed at VNFs such as Linux Foundation
+project Data Plane Development Kit (DPDK).
+
+**PNF Characteristics**
+----------------------------------------
+
+Physical Network Functions (PNF) are a vendor-provided Network Function(s)
+implemented using a set of software modules deployed on a dedicated
+hardware element while VNFs utilize cloud resources to provide Network
+Functions through virtualized software modules.
+
+PNFs can be supplied by a vendor as a Black Box (provides no knowledge
+of its internal characteristics, logic, and software design/architecture)
+or as a White Box (provides detailed knowledge and access of its internal
+components and logic) or as a Grey Box (provides limited knowledge and
+access to its internal components). Also note that the PNF hardware and
+the software running on it could come from the same vendor or different
+vendors.
+
+PNFs need to be chained with VNFs to design and deploy more complex end
+to end services that span across Network Clouds. PNF should have the
+following characteristics.
+
+Cloud Integration
+^^^^^^^^^^^^^^^^^^^
+
+Although the goal is to virtualize network functions within a service
+chain, there will be certain network functions in the near term or even
+in the end state that would remain physical (e.g., 5G radio functions,
+ROADM, vOLT, AR/CR appliances etc.). PNFs must be designed to allow
+their seamless integration with Network Clouds and complement end to
+end service requirements for resiliency, scalability, upgrades, and
+security.
+
+
+PNF Design
+^^^^^^^^^^^^^^^^^^^
+
+A PNF provides one or more network functions on a dedicated hardware
+box. PNFs are expected to evolve to Virtualized Network Functions and
+their current design should facilitate their future virtualization.
+The software modules and corresponding hardware should be packaged
+together to provide the desired Network Functions. However, it is not
+required for the software modules and hardware to be provided by a
+single vendor. PNFs are deployed through Service Provider's installation
+and commission procedure. Virtualized instantiation processes flows
+such as OpenStack HHEAT are not utilized and PNFs are instantiated
+when they are powered up and connected to ONAP. PNFs must provide
+access to its software modules and management functions through
+open APIs.
+
+
+Scaling
+^^^^^^^^^^^
+
+Horizontal scaling for PNFs would not be the logical approach and they
+need to be scaled up vertically by increasing computing hardware
+resources (e.g. cpu, memory). Vertical scaling of PNFs will need to
+follow Service Provider's hardware upgrade processes and procedures.
+
+Managing State
+^^^^^^^^^^^^^^^^^
+
+Software modules and their interfaces should be able to monitor and
+manage their state to allow high-reliability, performance, and
+high-availability (active-active or stand by) as needed by overriding
+services. At this time, PNF data store should be replicated in the back
+up hardware to allow fail overs for both active-active and stand by
+high-availability methods.
+
+Resiliency
+^^^^^^^^^^^^^
+
+The PNF is responsible for meeting its resiliency goals with the use
+of redundant physical infrastructure. The PNF developer should design
+the function in such a way that if there is a physical platform problem
+the PNF will continue working as needed and meet the SLAs of that
+function. PNFs should be designed to survive single failure platform
+problems including: processor, memory, NIC, datacenter outages, etc.
+The PNF should support tools for gracefully meeting the service needs
+such as methods for migrating traffic between PNF's and draining
+traffic from a PNF.
+
+DevOps
+^^^^^^^^
+
+The ONAP software development and deployment methodology is evolving
+toward a DevOps model. PNF development and deployment should evolve in the
+same direction, enabling agile delivering of end-to-end services.
+
+Testing
+^^^^^^^^^^^
+
+PNF packages should provide comprehensive automated regression, performance
+and reliability testing with PNFs based on open industry standard testing
+tools and methodologies. PNF packages should provide acceptance and diagnostic
+tests and in-service instrumentation to be used in production to validate
+PNF operation.
+
+Build and Deployment Processes
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+PNF packages should include continuous integration and continuous deployment
+(CI/CD) software artifacts that utilize automated open industry standard
+system and container build tools. The PNF package should include
+parameterized configuration variables to enable automated build
+customization. Don't create unique (snowflake) PNFs requiring any
+manual work or human attention to deploy. Do create standardized
+(Lego™) PNFs that can be deployed in a fully automated way.
+ONAP will orchestrate updates and upgrades of PNFs. One method
+for updates and upgrades is to onboard and validate the new version,
+then build a new instance with the new version of software, transfer
+traffic to that instance and kill the old instance. There should be
+no need for the PNF or its components to provide an update/upgrade
+mechanism.
+
+Automation
+^^^^^^^^^^^^^^^^^^^
+
+Increased automation is enabled by PNFs and PNF design and composition.
+PNF should provide the following automation capabilities, as triggered
+or managed via ONAP:
+
+- Events and alarms
+- Lifecycle events
+- Zero-Touch rolling upgrades and downgrades
+- Configuration
+
+ONAP Ready
+^^^^^^^^^^^^^^^^^^^
+
+PNF and VNF lifecycles are fundamentally managed the same way utilizing
+ONAP onboarding, configuration, and monitoring capabilities. The main
+difference is related to the processes and methods used for deployment
+and instantiation of these resources. PNFs are first installed in the
+target location utilizing Service Provider's installation and commission
+procedures that includes manual activities. Next, any additional software
+module will be downloaded to the physical hardware and started utilizing
+the required APIs. On the other had VNF deployment and instantiation are
+orchestrated by ONAP utilizing the underlying Network Cloud orchestration
+and APIs.
+
+Design Definition
+^^^^^^^^^^^^^^^^^^^
+
+It is intended to onboard PNF packages into ONAP using the same processes
+and tools as VNFs to reduce the need for customization based on the Network
+Function underlying infrastructure. The main difference is associated with
+the content of the Package that describes the required information for
+lifecycle management of the Network Function. For instance, PNF packages
+will not include any information related to the Network Cloud infrastructure
+such as HEAT templates.
+
+Configuration Management
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The configuration for both PNFs and VNFs are managed utilizing common
+orchestration capabilities and standardized resource interfaces supported
+by ONAP. PNFs must allow direct configuration management interfaces to
+ONAP without any needs for an EMS support.
+
+Monitoring and Management
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+PNFs must allow ONAP to directly collect event and performance data without
+the aid of any EMSs to monitor PNF health and behavior. ONAP requires common
+standardized models and interfaces to support collection of events and data
+streams for both VNFs and PNFs and the vendors must be able to support these
+requirements.
+
+Computing Environment
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Network functions implemented over dedicated physical hardware will
+eventually be virtualized over Network Cloud infrastructure. However,
+this transition will take place over time and there is a need to support
+this integrated network functions in various forms until complete
+virtualization is achieved. The integrated solution may come in the
+form of a tightly bundled package from a single provider referred to
+as black box in this document. In this configuration, the software
+modules will not be directly managed by an external management
+system and the bundled package is managed utilizing standardized open
+APIs provided by the vendor.
+
+In an alternative configuration, the internal software modules are
+not tightly coupled with physical hardware and can be directly
+accessed, extended, and managed by an external management system
+through standardized interfaces. Each software module can be provided
+by different vendors and loaded onto the underlying hardware. This
+configuration is referred to as a white box in this document.
+
+A gray box configuration provides direct access and manageability
+only to a subset of software modules that are loaded on top of a
+basic bundled package.
+
+
+**Summary**
+---------------------------------------
+
+The intent of these guidelines and requirements is to provide long term
+vision as well as short term focus and clarity where no current open
+source implementation exists today. The goal is to accelerate the
+adoption of VNFs which will increase innovation, minimize customization
+to onboard VNFs, reduce implementation time and complexity as well as
+lower overall costs for all stakeholders. It is critical for the
+Industry to align on a set of standards and interfaces to quickly
+realize the benefits of NFV.
+
+This VNF guidelines document provides a general overview and points to
+more detailed requirements documents. The subtending documents provide
+more detailed requirements and are listed in Appendix B - References.
+All documents are expected to evolve.
+
+Some of these VNF/PNF guidelines may be more broadly applicable in the
+industry, e.g., in other open source communities or standards bodies.
+The art of VNF architecture and development is expected to mature
+rapidly with practical deployment and operations experience from a
+broader ecosystem of types of VNFs and different VNF providers.
+Individual operators may also choose to provide their own extensions and
+enhancements to support their particular operational processes, but
+these guidelines are expected to remain broadly applicable across a
+number of service providers interested in acquiring VNFs.
+
+We invite feedback on these VNF/PNF Guidelines in the context of the
+ONAP Project. We anticipate an ongoing project within the ONAP community
+to maintain similar guidance for VNF developers to ONAP.Comments on these
+guidelines should be discussed there.
+
+**Appendix**
+-----------------------------------
+
+Glossary
+^^^^^^^^^^^^^^^^^^
+
++--------------------+-------------------------------------------------------+
+| Heat | Heat is a service to orchestrate composite cloud |
+| | applications using a declarative template format |
+| | through an OpenStack-native REST API. |
++--------------------+-------------------------------------------------------+
+| HPA | Hardware Platform Awareness (HPA) is the means by |
+| | which the underlying NFV-I hardware platform |
+| | capabilities are exposed to the network service |
+| | orchestration and management functionality, for the |
+| | purpose of fulfilling VNF instantiation-time hardware |
+| | platform |
++--------------------+-------------------------------------------------------+
+| NC | Network Cloud (NC) are built on a framework containing|
+| | these essential elements: refactoring hardware |
+| | elements into software functions running on commodity |
+| | cloud computing infrastructure; aligning access, core,|
+| | and edge networks with the traffic patterns created by|
+| | IP based services; integrating the network and cloud |
+| | technologies on a software platform that enables |
+| | rapid, highly automated, deployment and management of |
+| | services, and software defined control so that both |
+| | infrastructure and functions can be optimized across |
+| | change in service demand and infrastructure |
+| | availability; and increasing competencies in software |
+| | integration and a DevOps operations model. |
++--------------------+-------------------------------------------------------+
+| NCSP | Network Cloud Service Provider (NCSP) is a company or |
+| | organization, making use of a communications network |
+| | to provide Network Cloud services on a commercial |
+| | basis to third parties. |
++--------------------+-------------------------------------------------------+
+| NFV | Network functions virtualization (NFV) defines |
+| | standards for compute, storage, and networking |
+| | resources that can be used to build virtualized |
+| | network functions. |
++--------------------+-------------------------------------------------------+
+| NFV-I | NFV Infrastructure (NFVI) is a key component of the |
+| | NFV architecture that describes the hardware and |
+| | software components on which virtual networks are |
+| | built. |
++--------------------+-------------------------------------------------------+
+| PNF | PNF is a vendor-provided Network Function(s) |
+| | implemented using a bundled set of hardware and |
+| | software. |
++--------------------+-------------------------------------------------------+
+| SDOs | Standards Developing Organizations are organizations |
+| | which are active in the development of standards |
+| | intended to address the needs of a group of affected |
+| | adopters. |
++--------------------+-------------------------------------------------------+
+| Softwarization | Softwarization is the transformation of business |
+| | processes to reflect characteristics of software |
+| | centric products, services, lifecycles, and methods. |
++--------------------+-------------------------------------------------------+
+| Targeted | Targeted Virtualization Environment is the execution |
+| Virtualization | environment for VNFs. While Network Clouds located in |
+| Environment | datacenters are a common execution environment, VNFs |
+| | can and will be deployed in various locations (e.g., |
+| | non-datacenter environments) and form factors (e.g., |
+| | enterprise Customer Premise Equipment). Non-datacenter|
+| | environments are expected to be available at more |
+| | distributed network locations including central |
+| | offices and at the edge of the NCSP's infrastructure. |
++--------------------+-------------------------------------------------------+
+| TOSCA | Topology and Orchestration Specification for Cloud |
+| | Applications (OASIS spec) |
++--------------------+-------------------------------------------------------+
+| VM | Virtual Machine (VM) is a virtualized computation |
+| | environment that behaves very much like a physical |
+| | computer/server. A VM has all its ingredients |
+| | (processor, memory/storage, interfaces/ports) of a |
+| | physical computer/server and is generated by a |
+| | hypervisor, which partitions the underlying physical |
+| | resources and allocates them to VMs. Virtual Machines |
+| | are capable of hosting a virtual network function |
+| | component (VNFC). |
++--------------------+-------------------------------------------------------+
+| VNF | Virtual Network Function (VNF) is the software |
+| | implementation of a function that can be deployed on a|
+| | Network Cloud. It includes network functions that |
+| | provide transport and forwarding. It also includes |
+| | other functions when used to support network services,|
+| | such as network-supporting web servers and database. |
++--------------------+-------------------------------------------------------+
+| VNFC | Virtual Network Function Component (VNFC) are the |
+| | sub-components of a VNF providing a VNF Provider a |
+| | defined sub-set of that VNF's functionality, with the |
+| | main characteristic that a single instance of this |
+| | component maps 1:1 against a single Virtualization |
+| | Container. See Figure 3 for the relationship between |
+| | VNFC and VNFs. |
+| | |
+| | |image2| |
++--------------------+-------------------------------------------------------+
+
+
+References
+^^^^^^^^^^^^^
+
+1. VNF Requirements
+
+Comparison between VNF Guidelines and ETSI GS NFV-SWA 001
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
+The VNF guidelines presented in this document (VNF Guidelines) overlap
+with the ETSI GS NFV-SWA 001 (Network Functions Virtualization (NFV);
+Virtual Network Function Architecture) document. For convenience we will
+just refer to this document as SWA 001.
+
+The SWA 001 document is a survey of the landscape for architecting a
+VNF. It includes many different options for building a VNF that take
+advantage of the ETSI MANO architecture.
+
+The Network Cloud and ONAP have similarities to ETSI's MANO, but
+also have differences described in earlier sections. The result is
+differences in the VNF requirements. Since these VNF Guidelines are for
+a specific implementation of an architecture they are narrower in scope
+than what is specified in the SWA 001 document.
+
+The VNF Guidelines primarily overlaps the SWA 001 in Sections 4 and 5.
+The other sections of the SWA 001 document lie outside the scope of the
+VNF Guidelines.
+
+This appendix will describe the differences between these two documents
+indexed on the SWA 001 sections.
+
+Section 4 Overview of VNF in the NFV Architecture
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This section provides an overview of the ETSI NFVI architecture and how
+it interfaces with the VNF architecture. Because of the differences
+between infrastructure architectures there will naturally be some
+differences in how it interfaces with the VNF.
+
+A high level view of the differences in architecture can be found in the
+main body of this document.
+
+Section 5 VNF Design Patterns and Properties
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+This section of the SWA 001 document gives a broad view of all the
+possible design patterns of VNFs. The VNF Guidelines do not generally
+differ from this section. The VNF Guidelines address a more specific
+scope than what is allowed in the SWA 001 document.
+
+Section 5.1 VNF Design Patterns
++++++++++++++++++++++++++++++++++++++++
+
+The following are differences between the VNF Guidelines and SWA-001:
+
+- 5.1.2 - The Network Cloud does not recognize the distinction between
+ "parallelizable" and "non-parallelizable" VNFCs, where parallelizable
+ means that there can be multiple instances of the VNFC. In the VNF
+ Guidelines, all VNFCs should support multiple instances and therefore
+ be parallelizable.
+
+- 5.1.3 - The VNF Guidelines encourages the use of stateless VNFCs.
+ However, where state is needed it should be kept external to the VNFC
+ to enable easier failover.
+
+- 5.1.5 - The VNF Guidelines only accepts horizontal scaling (scale
+ out/in) by VNFC. Vertical scaling (scale up/down) is not supported by
+ ONAP.
+
+Section 5.2 VNF Update and Upgrade
++++++++++++++++++++++++++++++++++++++++
+
+- 5.2.2 - ONAP will orchestrate updates and upgrades. The
+ preferred method for updates and upgrades is to build a new instance
+ with the new version of software, transfer traffic to that instance
+ and kill the old instance.
+
+Section 5.3 VNF Properties
++++++++++++++++++++++++++++++++++++++++
+
+The following are differences between the VNF Guidelines and SWA-001:
+
+- 5.3.1 - In a Network Cloud all VNFs must be only "COTS-Ready". The
+ VNF Guidelines does not support "Partly COTS-READY" or "Hardware
+ Dependent".
+
+- 5.3.2 – The only virtualization environment currently supported by
+ ONAP is "Virtual Machines". The VNF Guidelines state that all
+ VNFs should be hypervisor agnostic. Other virtualized environment
+ options such as containers are not currently supported. However,
+ container technology is targeted to be supported in the future.
+
+- 5.3.3 - All VNFs must scale horizontally (scale out/in) within the
+ Network Cloud. Vertical (scale up/down) is not supported.
+
+- 5.3.5 - The VNF Guidelines state that ONAP will provide full
+ policy management for all VNFs. The VNF will not provide its own
+ policy management for provisioning and management.
+
+- 5.3.7 - The VNF Guidelines recognizes both stateless and stateful
+ VNFCs but it encourages the minimization of stateful VNFCs.
+
+Section 5.4 Attributes describing VNF Requirements
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Attributes described in the VNF Guidelines and reference documents
+include those attributes defined in this section of the SWA 001 document
+but also include additional attributes.
+
+
+
+.. [1]
+ Softwarization is the transformation of business processes to reflect
+ characteristics of software centric products, services, lifecycles
+ and methods.
+
+.. [2]
+ "Virtual Network Functions Architecture" ETSI GS NFV-SWA 001 v1.1.1
+ (Dec 2012)
+
+.. [3]
+ European Telecommunications Standards Institute or `ETSI
+ <http://www.etsi.org>`_ is a respected standards body providing
+ standards for information and communications technologies.
+
+.. [4]
+ Full set of capabilities of Network Cloud and/or ONAP might not
+ be needed to support traditional IT like workloads.
+
+.. [5]
+ `xRAN <http://www.xran.org/>`_
+
+.. [6]
+ `OpenStack <http://www.openstack.org>`_
+
+.. [7]
+ `OpenDaylight <http://www.opendaylight.org>`_
+
+.. [8]
+ `OPNFV <http://www.opnfv.org>`_
+
+.. [9]
+ See, e.g., Figure 3 of GS NFV 002, Architectural Framework
+
+.. |image0| image:: ONAP_VNF_Control_Loop.jpg
+ :width: 6.56250in
+ :height: 3.69167in
+.. |image1| image:: VNF_Lifecycle.jpg
+ :width: 6.49000in
+ :height: 2.23000in
+.. |image2| image:: VNF_VNFC_Relation.jpg
+ :width: 4.26087in
+ :height: 3.42514in