What the MOM model actually is
Ericsson's 5G RAN configuration is a managed-object tree (MOM — Managed Object Model). On gNB-DU and gNB-CU, you interact with it through the AMOS command line, the ENM session shell, or directly via NETCONF. The commands look identical across all three contexts; the difference is the access path.
This cheatsheet covers Ericsson Cloud RAN and Baseband 6630/6648 with NR software (typically NR23.Q4 and later). I will focus on commands you will run today, not the exhaustive reference.
Core navigation commands
Listing managed objects
lt all
Loads the entire MO tree into the AMOS session. After lt all, you can reference MOs by short name in subsequent commands.
lt NRCellDU
Loads only NRCellDU instances. Use this when lt all is too slow on large nodes.
Showing attributes
get NRCellDU
Dumps all attributes of all NRCellDU MOs in the loaded tree.
get NRCellDU=NR01_1 administrativeState
Gets a single attribute on a single MO. Wildcards work:
get NRCellDU=.* operationalState
Setting attributes
set NRCellDU=NR01_1 administrativeState UNLOCKED
Locks/unlocks a cell. The cell will not transmit until UNLOCKED. Note the value is uppercase and exact — Ericsson is case-sensitive on enumerated values.
set NRSectorCarrier=NR01_1 configuredMaxTxPower 44
Sets max Tx power. Units are 0.1 dBm in many MOs — read the MOM reference before changing power.
Creating MOs
cr NRCellRelation=12 nRCellRef="MeContext=GNB02,...,NRCellCU=NR02_1"
Creates a neighbour relation. The reference DN must be exact; copy from lt NRCellCU output.
Deleting
del NRCellRelation=12
Always check with get before del. Once deleted, neighbour relations regenerate only via ANR if enabled.
Common daily workflows
Find a cell by ID or name
ma NRCellDU=.* nCI 12345
ma is match — finds MOs where the attribute matches the pattern.
ma NRCellDU=.* userLabel "SECTOR_A"
Lock and unlock for parameter changes
Most dynamic parameters can change without locking. For structural changes (PCI, root sequence index, frequency), lock first:
bl NRCellDU=NR01_1
set NRCellDU=NR01_1 physicalCellId 273
deb NRCellDU=NR01_1
bl is block (lock), deb is deblock (unlock). The shorthand keeps you fast.
Change electrical tilt
Electrical tilt lives on the antenna sub-unit:
lt AntennaSubunit
get AntennaSubunit=1 electricalAntennaTilt
set AntennaSubunit=1 electricalAntennaTilt 60
Units are 0.1 degree (so 60 = 6.0 degrees). The change takes effect immediately on Ericsson AIR units, but always verify with get after.
Check counters (PM)
Live counter snapshots are not done from AMOS directly — counters are reported via PM ROP files. But you can confirm a counter is being collected:
pmom NRCellDU pmRrcConnEstabAtt
This returns the counter description and current measurement state.
Reading alarms
alt
Lists all active alarms. Add filters:
alt -m
Major and above only. The alarm severity color coding follows ITU-T X.733.
Configuration backup before changes
cvms
cvmk before_pci_change
cvms shows existing configuration versions; cvmk makes a new named CV. Always make a CV before parameter changes you might need to roll back.
To roll back:
cvset before_pci_change
The node reboots into the named CV. Check with operations before doing this on a live cell.
Useful MOs and what lives in them
| MO | Purpose | Common attributes |
|---|---|---|
| NRCellDU | DU cell config | administrativeState, nCI, physicalCellId, nRPCI |
| NRCellCU | CU cell config | cellLocalId, plmnIdList, nRTAC |
| NRSectorCarrier | RF carrier | configuredMaxTxPower, arfcnDL, arfcnUL |
| NRCellRelation | Neighbour | nRCellRef, isHoAllowed, cellIndividualOffsetNR |
| GNBDUFunction | DU function | gNBId, gNBDUId, gNBIdLength |
| GNBCUCPFunction | CU-CP function | gNBId, plmnId, x2NodeName |
| AntennaSubunit | Antenna config | electricalAntennaTilt, mechanicalAntennaTilt |
Scripting and bulk changes
For more than a couple of cells, write a moshell script:
# bulk_pci.mos
lt NRCellDU
for x in $(get NRCellDU userLabel | grep SECTOR_A | awk '{print $1}'); do
bl $x
set $x physicalCellId 273
deb $x
done
Run with amos <node> bulk_pci.mos. Always test on one cell before running a loop across a node.
ENM CLI vs AMOS
Most engineers use AMOS via moshell. ENM CLI is similar but has session-based context. The same commands work; differences are mainly in connection setup and authorization.
amos <node-name> # opens AMOS session via OSS
bash -c "moshell <node-IP>" # direct connection if you have OAM IP
Common gotchas
> Always use get to verify your set worked. Some attributes silently reject invalid values without raising an error in AMOS.
- Attribute values must match the type exactly. Integer attributes will reject quoted values; enumerated values must match the case in the MOM.
seton an attribute that requires lock without locking will give a generic "operation not allowed" message — easy to miss if you skim output.lt allon a heavily configured node can take minutes. Scope yourltto specific MOs.- Configuration via NETCONF and AMOS share the same MO tree, but in-flight transactions can conflict. Avoid simultaneous changes from both.
lt, get, set, bl/deb, and cvmk and you can do 95% of Ericsson 5G operations work without ever opening a GUI.