Skip to main content
BSS/OSS Academy
🌐
Section 9.7

NFV, MANO & NFVI

Last updated 12 Oct 2026

01

At a glance

5GC functions, and the remaining virtual EPC and IMS functions, run as virtual machines or containers. ETSI MANO (NFVO, VNFM, VIM) manages their lifecycle on top of an NFVI built on OpenStack or Kubernetes. Day 2, running the functions for years, is where most of the cost and most of the product gaps sit.

02

The picture

NFVO + VNFM + VIM = ETSI MANO

Click any layer to explore its responsibilities, interfaces, and state ownership

The NFVO orchestrates network services, the VNFM manages individual VNF/CNF lifecycle, and the VIM controls the NFVI underneath (OpenStack or Kubernetes). Toggle between the architecture and the Day-0/1/2 lifecycle views.
03

How it works

Why MANO sits with the mobile core

MANO can in theory manage any virtualised workload. In practice its dominant production use in telcos is the mobile core and IMS, with vCPE and SD-WAN a smaller footprint.

The components

ComponentResponsibilityKey inputsDay focus
NFVONetwork service lifecycle: instantiate, scale, terminate; onboards NSDs and VNF packagesNetwork Service Descriptor (NSD), VNF package, policyDay 0 design, Day 1 instantiation; coordinates Day 2 across functions
VNFMLifecycle of one VNF or CNF: instantiate, scale, heal, terminateVNF Descriptor (VNFD), Helm chart for CNFsDay 1 and Day 2
VIMAllocates compute, storage and networking to functionsNFVI capacity, placement constraintsDay 1 allocation, Day 2 reallocation under load
NFVIThe compute, storage and networking that hosts functionsServers, storage, switching, hypervisor or KubernetesThe substrate, not a lifecycle actor

Day 0, 1 and 2

  • Day 0, design: descriptors and packages are written and onboarded. Done once per function version.
  • Day 1, instantiate: the function is deployed and configured. Event-driven.
  • Day 2, operate: scaling under load, healing failed pods, patches, rolling upgrades. Runs for the life of the function.

Many MANO products were built for Day 1 first and grew Day 2 later. Day 2 is where the operating cost sits.

Two NFVI generations

AspectGen 1: OpenStackGen 2: Kubernetes
Unit of deploymentVirtual machine (VNF)Container / pod (CNF)
Startup timeMinutesSeconds
Resource efficiencyFull OS per VMShared kernel
ScalingManual or Heat templatesNative auto-scaling
Typical workloadLegacy VNFs (vEPC, vIMS)Cloud-native 5GC functions (AMF, SMF, UPF)
VNFM couplingPer-vendor VNFM, often heavyHelm-based, increasingly standard

Most operators run both: legacy VNFs on OpenStack, cloud-native functions on Kubernetes. That hybrid will last for years.

Where MANO stops

MANO manages function lifecycle on existing NFVI. It does not set up bare metal, install OpenStack or build Kubernetes clusters; that is separate infrastructure tooling, such as MAAS, Terraform, OpenStack-Ansible or a managed Kubernetes platform. Above MANO, SOM asks for network services and does not touch the NFVI directly. Service state and infrastructure state stay independent: a function MANO reports healthy may belong to a service SOM has not finished activating.

04

Who owns what

EntitySystem of RecordSystem of EngagementSystem of ReferenceNotes
Network service and VNF descriptors (NSD, VNFD, Helm charts)NFVO catalog—VNFMInfrastructure detail lives here, never in the service catalog or SOM payloads.
Network service instanceNFVO—Resource Inventory, SOMInstantiated and scaled on request from SOM or the cross-domain orchestrator.
VNF / CNF instance stateVNFM—NFVO, Resource InventoryChanges constantly under Day-2 scaling and healing; inventory is fed from the VNFM.
NFVI capacity and placementVIM—NFVOOpenStack or Kubernetes; built by infrastructure tooling outside MANO.
05

In practice

Gen-1 VNFs typically come with a per-vendor VNFM, so estates with several core vendors end up with several VNFMs under one NFVO, or with vendor stacks side by side. Cloud-native functions push towards Helm and standard Kubernetes tooling, which reduces the VNFM’s role but does not remove the need for network-service-level orchestration.

Legacy reality
MANO is often selected on Day-1 demonstrations and its Day-2 limits found later. Programmes also overrun when "set up the cluster" is folded into "deploy the function", turning a MANO project into an infrastructure build it was not scoped for.
06

The trade-off

What it solves

A standard lifecycle layer lets network functions be instantiated, scaled, healed and upgraded on shared infrastructure, separately from the services they carry.

What it does not solve

  • Building the infrastructure itself; MANO assumes NFVI already exists.
  • Service activation; a running function is not an active service.
  • Vendor VNFM fragmentation in multi-vendor cores.

What it adds

  • Two NFVI generations to run in parallel, with different scaling and packaging models.
  • Day-2 automation (scale, heal, upgrade) that must be tested as rigorously as the functions.
  • Inventory that has to follow instances that move and scale constantly.

Architecture decision

How should a new cloud-native core function be deployed and managed?

  • Through the existing NFVO and VNFM

    Choose when the estate already runs MANO for its VNFs and wants one lifecycle and inventory view across both generations.

  • Kubernetes-native tooling, NFVO for network services only

    Choose when the functions are fully cloud-native and the platform team owns Helm-based lifecycle well.

  • The core vendor’s own stack

    Choose when one vendor supplies the core and the coupling is accepted for consistency.

Breaks if the choice is made on Day-1 instantiation alone. Day-2 scaling, healing and upgrades are where the gaps appear, after the contract is signed.

07

Takeaways

Key Takeaways

  • NFVO runs network services, VNFM runs individual functions, VIM allocates infrastructure, NFVI hosts it.
  • Day 2 (scale, heal, patch, upgrade) runs for the life of the function and carries most of the cost.
  • OpenStack and Kubernetes NFVI will run side by side for years.
  • MANO does not build infrastructure, and a healthy function is not an active service.

Check yourself

  • A MANO programme’s scope includes installing the Kubernetes clusters. Why is that a risk?Show answer

    Cluster build is infrastructure tooling, outside MANO. Folding it in turns a lifecycle project into an infrastructure build, a common reason MANO programmes overrun.

  • MANO reports all UPF instances healthy, yet a new slice is not carrying traffic. Is MANO wrong?Show answer

    Not necessarily. MANO reports infrastructure state. The slice may not be fully activated: subscriber data, slice policy or the transport slice may be incomplete. Service state comes from SOM and the orchestrator.