You are on page 1of 52

AMOS/MoShell

- Understanding the basics

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 1 of 52 Adolfo Ivan Gonzalez NPI 2022-04-14
Adolfo Gonzalez / Amay Umradia NPI 2022-05-12
CONTENTS
1. Introduction - what is MoShell
2. Managed Object (MO) concept
3. MoShell functionality
4. Command syntax
5. MoShell command line
6. Basic MO commands
7. Basic MoShell functionalities for NPI - MoShell undo mode
8. Basic MoShell functionalities for NPI - MoShell alias
9. Native - Node Visualizer introduction
10. Basic MoShell functionalities for NPI - MoShell / Node Visualizer diff
11. Node Visualizer FULL-MO Audit

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 2 of 52
CONTENTS
12. How to pull Serving Gateway (SGW) IP address with MoShell command
13. Ping an IP address using MoShell command
14. Use of momt
15. MoShell mobatch functionality
16. Native - Node Visualizer mobatch function
17. MoShell scripting
18. Pre-set variables
19. Variable assignment
20. Variable assignment using String manipulation
21. Smart script demo
22. MoShell Installation

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 3 of 52
Introduction - what is MoShell
● MoShell is a text-based O&M client providing access to the following services:
– Configuration Service (CS)
– Alarm Service (AS)
– Performance Management (PM) Service
– Log Service (LS)
– OSE shell (COLI)
– File transfer (File Transfer Protocol (FTP) / Hypertext Transfer Protocol (HTTP))
● Access to all services is supported both in secure mode (secure Common Object Request Broker Architecture ( CORBA),
Secure Shell (SSH), Secure File Transfer Protocol (SFTP)) and unsecure mode (unsecure CORBA, Telnet, FTP).
● Advanced MO Scripting (AMOS) provides a Command-Line Interface (CLI) towards supported Connectivity Packet Platform
(CPP), and Transport-based Network Elements. It is a production-ready version of the MO Shell tool.

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 4 of 52
Introduction – MoShell architecture

● Figure 1: CPP nodes have various access methods for different services.

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 5 of 52
MO concept
● The MO is a way of modelling resources in a CPP node. The purpose of the Management Adaptation Object (MAO) is
to interface towards the various O&M services described.
● The MOs are organized in a hierarchical structure.

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 6 of 52
MoShell Functionality
Alarm Service
● The list of active alarms can be retrieved with the commands
al  to show an overview.
alt  to show overview + Date & Time
ala  the same as al, with more details.
Configuration Service
● MoShell supports the following 6 operations from the configuration service:
Children
get Children  to load all or parts of the MO-tree Example: get Equipment=1,FieldReplaceableUnit=RRU-1
Attribute
get Attribute  to read the attributes of a MO Example: get Equipment=1,FieldReplaceableUnit=RRU-1 fieldReplaceableUnitId
Call Action
acc Call Action  to perform an action on a MO Example: acc Equipment=1,FieldReplaceableUnit=RRU-1 restartunit
Attribute
set Attribute  to set (change) the value of a MO attribute Example: set
Equipment=1,FieldReplaceableUnit=RRU-1 administrativeState 0
MO to be created
cr Create MO  to create a new MO in the node Example: cr Equipment=1,FieldReplaceableUnit=RRU-4
MO to be deleted
del Delete MO  to delete a MO from the node Example: del Equipment=1,FieldReplaceableUnit=RRU-4

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 7 of 52
Command Syntax
Starting up MoShell
● A MoShell session is started from the Unix shell prompt using command: MoShell <node-name> or <node-address>.
● If connecting with node name, an entry must exist in the ipdatabase file reference the node name against an Internet
Protocol (IP) or Domain Name System (DNS) address.
Example:

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 8 of 52
Command Syntax
How MOs are Identified
● MOs can be identified using the RDN.
RDN - Relative Distinguished Name
● This is used to identify an MO in relation to its nearest parent in the MO tree.
● The RDN contains MO Class (also called MO Type), the equal sign, and MO identity. Example:
– NRCellDU is the MO Class,
– 1001047_0001_0001_01 is the identity

Identity

MO Class

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 9 of 52
MoShell command line
● The command line uses the Readline library from bash. Here are some of the supported function keys:
– right arrow or Ctrl-f  move forward one character
– left arrow or Ctrl-b  move backward one character
– up arrow  previous command in history buffer
– down arrow  next command in history buffer
– backspace  delete one character backward
– Ctrl-d or <del>  delete one character forward
– Ctrl-a or <home>  go to beginning of line
– Ctrl-e or <end>  go to end of line
– Ctrl-u  erase all characters backward
– Ctrl-k  erase all characters forward
– shift-fn-e  paste from clipboard
● Note about command history: if you type the beginning of a command and then use the up/down arrow key, you will see all previous
commands starting with this string.

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 10 of 52
Basic MO commands
● Here all the commands and their syntax which are possible using Moshell. Each of the OSE shell commands are not
mentioned specifically, but it is possible to run all of them through MoShell.
– lt all  load all MOs
– Print state of MOs (operationalState and administrativeState when applicable).
● st <moGroup>  view state of all MOs
● st all dis  view all disabled MOs
– acl  view all actions
– pr  print all MOs
– cvcu  display the current cv information only
– cvls  display both the current cv information and cv list
– sts  display current node sync

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 11 of 52
Basic MoShell Functionalities for NPI

MoShell undo mode

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 12 of 52
MoShell undo mode
Handling of undo mode (for cr/del/rdel/set/bl/deb/acc commands). Can be used for generation of MO scripts as well.
– u+  To start the undo mode
– u+s  To start the simulated undo mode
– u-  To stop the undo mode
– u?  To check if undo mode is active or not
– u!  To convert MoShell command files to NETCONF format.

When running the simulated undo mode (u+s), all MO operations (cr/del/rdel/bl/deb/set) are simulated. Two command files are
generated, one for deletions and one for creation.
The files generated by undo mode and simulated undo mode are stored in the following variables:
– $undologfile
– $undodelcommandfile (simulated undo mode only)
– $undocommandfile

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 13 of 52
MoShell undo mode
490899_BLM_RNC_SC> u+s

Starting the simulated undo mode...


Logging cr/del/rdel/set/bl/deb/acc commands to file: /ericsson/log/amos/moshell_logfiles/e_eadogon/logs_moshell/undo/undo_490899_BLM_RNC_SC_220508-131742.log

490899_BLM_RNC_SC> del GNBDUFunction=19098990001_5GDU_BLM_RNC_SC,NRSectorCarrier=49


Delete following MOs ?
===================================================================================
715 GNBDUFunction=19098990001_5GDU_BLM_RNC_SC,NRSectorCarrier=49,CommonBeamforming=1
714 GNBDUFunction=19098990001_5GDU_BLM_RNC_SC,NRSectorCarrier=49
===================================================================================
Note: Running in Simulated Undo mode. No actual deletion will be performed !!!!
Delete 2 MOs. Are you Sure [y/n] ? Y

Deleting ...
===================================================================================
715 GNBDUFunction=19098990001_5GDU_BLM_RNC_SC,NRSectorCarrier=49,CommonBeamforming=1 >>> Simulated MO deletion
714 GNBDUFunction=19098990001_5GDU_BLM_RNC_SC,NRSectorCarrier=49 >>> Simulated MO deletion
===================================================================================
Total: 2 MOs attempted, 2 MOs deleted

490899_BLM_RNC_SC> u-
Delete file: /ericsson/log/amos/moshell_logfiles/e_eadogon/logs_moshell/undo/undo_490899_BLM_RNC_SC_220508-131742_del.mos ($undodelcommandfile)

To undo, execute command: run /ericsson/log/amos/moshell_logfiles/e_eadogon/logs_moshell/undo/undo_490899_BLM_RNC_SC_220508-131742.mos ($undocommandfile)

Note: to convert command files from moshell format to NETCONF format, execute the command: u! <commandfile>

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 14 of 52
MoShell undo mode
490899_BLM_RNC_SC> l cat $undocommandfile

#DoNotEditThisLine: UndoCommandFile 2001:4888:2a3f:b199:304:401:0:1 22.0b MSRBS_NODE_MODEL_22.Q1_551.28081.127_c476 stopfile=/tmp/13566

gs+

cr GNBDUFunction=19098990001_5GDU_BLM_RNC_SC,NRSectorCarrier=49
177000 #arfcnDL
168000 #arfcnUL
10 #bSChannelBwDL
10 #bSChannelBwUL
SectorEquipmentFunction=39 #sectorEquipmentFunctionRef

gs-

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 15 of 52
MoShell undo mode
To change command format from cr to crn use next command uv use_crn=1

crn GNBDUFunction=10010470001_5GDU_BS1047,NRSectorCarrier=49
administrativeState 1
altitude
arfcnDL 177020
arfcnUL 168020
bSChannelBwDL 10
bSChannelBwUL 10
configuredMaxTxPower 3000
essScLocalId 13
essScPairId 1124
frameStartOffset 0
latitude
longitude
maxEirpPsdThresh
nRMicroSleepTxEnabled true
noOfRxAntennas 4
noOfTxAntennas 4
nullSteeringMode 0
pimAvoidDlMutingPeriod 8
rfBranchRxRef Equipment=1,AntennaUnitGroup=1,RfBranch=1 Equipment=1,AntennaUnitGroup=1,RfBranch=3 Equipment=1,AntennaUnitGroup=1,RfBranch=2 Equipment=1,AntennaUnitGroup=1,RfBranch=4
rfBranchTxRef Equipment=1,AntennaUnitGroup=1,RfBranch=1 Equipment=1,AntennaUnitGroup=1,RfBranch=3 Equipment=1,AntennaUnitGroup=1,RfBranch=2 Equipment=1,AntennaUnitGroup=1,RfBranch=4
sectorEquipmentFunctionRef SectorEquipmentFunction=1
txDirection 0
txPowerChangeRate 1
txPowerPersistentLock false
txPowerRatio 100
ueAssistedPrecodingOptEnabled false
end

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 16 of 52
Basic MoShell Functionalities for NPI

MoShell alias

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 17 of 52
MoShell alias
● One of the most common and helpful of the user-specific settings in MoShell is the use of aliases.
● This can be stored in our own home directory.
● We can define a number of aliases and save them into the /home/$USER/.moshellrc file.
● Example:
– alias 4gul ue print –bearer
– alias clr run /home/eadogon/clr.mos
– alias anr run /home/shared/e_eadogon/anr_state.mos

● Structure of alias command:

● alias 5gul /rc/nrat/ue list --state –time

Alias ID Command or script to be executed


C:\Users\eadogon\
| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 18 of 52 OneDrive - Ericsson\5G\
MoShell alias
490899_BLM_RNC_SC> 4gul
Checking available boards on node...
Collecting RCS board data ...
220502-11:55:46 2001:4888:2a3f:b199:304:401:0:1 22.0b MSRBS_NODE_MODEL_22.Q1_551.28081.127_c476 stopfile=/tmp/378
coli>/lrat/ue print -bearer
CellId RacUeRef BbUeRef UeTraceID E-RAB S-RAB ARP QCI ServiceType GbrDl GbrUl ROHCenabled TtiBundlingEnabled PartitionId PpeRef ENDC
32 268496991 536976192 0x7392de0563646778 6 X 12 8 NotDefined 0 0 0 No 0 0.0.0.0:16777215 X
32 268496991 536976192 0x7392de0563646778 5 X 9 5 NotDefined 0 0 0 No 0 0.0.0.0:16777215 X
32 268496991 536976192 0x7392de0563646778 7 X 10 1 Voip 39000 39000 1 No 0 0.0.0.0:16777215 X
32 268496991 536976192 0x7392de0563646778 X 1 X X X X X X X X X:X X
32 268496991 536976192 0x7392de0563646778 X 2 X X X X X X X X X:X X
coli>/rc/nrat/ue print -bearer
uehId:10003 ues:0
uehId:10004 ues:0
uehId:10005 ues:0
uehId:10006 ues:0
uehId:1003 ues:0
uehId:1004 ues:0
uehId:1005 ues:0
uehId:1006 ues:0
uehId:3 ues:0
uehId:4 ues:0
uehId:5 ues:0
uehId:6 ues:0
coli>/rpc/nrat/ue print -bearer
uehId:3 ues:0
uehId:4 ues:0
coli>

C:\Users\eadogon\
| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 19 of 52 OneDrive - Ericsson\5G\
Basic MoShell Functionalities for NPI

MoShell diff

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 20 of 52
MoShell dif
● Parameter auditing or MO dump comparisons.
– Syntax 1:
● Compare two or three MOs side by side. MOs must be of same MO class. All attribute values that are different between
the MOs will be printed.
● Example: Where 700 & 702 are the proxy identities of the MOs that should be compared.
BS1047> dif 700 702

220508-19:10:52 2001:1b70:4294:f770::15 22.0b MSRBS_NODE_MODEL_22.Q2_566.28126.113_c2a1 stopfile=/tmp/26701

=====================================================================================================
MO NRCellDU=1001047_0001_0001_01 NRCellDU=1001047_0001_0001_02
=====================================================================================================
bandListManual i[1] = 5 i[0] =
cellLocalId 49 20
endcDlNrQualHyst 8 5
endcUlNrLowQualThresh 10 17
endcUlNrQualHyst 8 6
maxUeSpeed 2 (UP_TO_100KMPH)
nRCellDUId 1001047_0001_0001_01 1001047_0001_0001_02
nRPCI 30 88
nRSectorCarrierRef [1] = GNBDUFunction=10010470001_5GDU_BS1047,NRSectorCarrier=49 [1] = GNBDUFunction=10010470001_5GDU_BS1047,NRSectorCarrier=50
rachPreambleFormat 2 (RACH_PREAMBLE_FORMAT_02) 0 (RACH_PREAMBLE_FORMAT_00)
rachRootSequence 30 1
ssbFrequency 177410 0
userLabel 1001047_0001_0001_01;n5_MC
=====================================================================================================

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 21 of 52
Basic Native - Node Visualizer Functionalities for NPI

Diff
Full-MO Audit
Basic Audits

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 22 of 52
Native - Node Visualizer
Config data functionalities
● Along with traditional auditing methods using moshell/mobatch, we will showcase Node Visualizer capability to perform similar activities efficiently .
● Focus areas would be Dashboard and various sub-module of Parameter validation to show the capabilities of Node Visualizer.

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 23 of 52
Native - Node Visualizer
Datewisediff Site name Dates to be compared

● Using Node Visualizer, the per-MO Select MOs and parameter to diff

audit can be useful.


Click to see delta
● Same as diff cmd in previous slide,
the per-MO audit requires
– Choose the site name
– 2 dates for comparison
●Click to add text
● This will showcase as per user-
preference
– A MO diff
– A single parameter diff
– Multiple MO selection

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 24 of 52
MoShell diff
● Parameter auditing or MO dump comparisons.
– Syntax 2:
● To compare an MO dump with a parameter baseline file or with another MO dump.
● Command Structure:
– diff <MO dump to be aligned> < MO dump to compare> <path for output files>
● Example:
BS1047> diff /home/eadogon/05092022_KS_MoShell/BS1047_modump.zip /home/eadogon/05092022_KS_MoShell/123114_5GNRLAB_CRAN36_modump.zip /home/eadogon/05092022_KS_MoShell/

220509-09:55:07 2001:1b70:4294:f770::15 22.0b MSRBS_NODE_MODEL_22.Q1_551.28081.127_c476 stopfile=/tmp/5653


unzip -ojq /home/eadogon/05092022_KS_MoShell/123114_5GNRLAB_CRAN36_modump.zip -d /home/eadogon/moshell_logfiles/logs_moshell/tempfiles/20220509-095411_5618/diffdump2

===================================================================================================================================
MO Attribute Value1 Value2
===================================================================================================================================
BrM=1,BrmBackupManager=1,BrmBackupLabelStore=1 lastCreatedBackup PostUPG_22Q2_0_RC1_R53C12_GOLDEN PostUPG_MTR22_17_R53B16_GOLDEN
BrM=1,BrmBackupManager=1,BrmBackupLabelStore=1 lastExportedBackup PreUPG_22Q2_0_RC1 PostUPG_MTR22_17_R53B16_GOLDEN
BrM=1,BrmBackupManager=1,BrmBackupLabelStore=1 lastRestoredBackup PostUPG_22Q2_0_RC1_R53C12_GOLDEN PostUPG_MTR22_15_R52B12_GOLDEN_GOLDEN_FINAL
BrM=1,BrmBackupManager=1,BrmBackupLabelStore=1 restoreEscalationList [1] = PostUPG_22Q2_0_RC1_R53C12_GOLDEN [2] = Final_backup_for_BASEBAND_CXP9024418/15_R53B16_20220505T225122+0000
Rollback_backup_BASEBAND_CXP9024418/15_R52B12_20220505T224100+0000

Saved result in csv format: /home/eadogon/05092022_KS_MoShell//BS1047_dcg_k.log.gz.csv ($diffcsvfile)

Created command file to align parameters in dump 1 against values of dump 2: /home/eadogon/05092022_KS_MoShell//BS1047_dcg_k.log.gz.mos ($diffcmdfile)

Note: for faster execution please convert the command file to trun/emas format by using the command "u! <commandfile>" then run the converted file with "truni" command.

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 25 of 52
MoShell diff
● diff MoShell script Output:
#DoNotEditThisLine: DiffCmdFile 2001:1b70:4294:f770::15 22.0b MSRBS_NODE_MODEL_22.Q2_566.28126.113_c2a1 stopfile=/tmp/5653

#Command file for comparison of modump: /home/eadogon/moshell_logfiles/logs_moshell/tempfiles/20220509-095411_5618/diffdump1/BS1047_dcg_k.log.gz against modump:


/home/eadogon/moshell_logfiles/logs_moshell/tempfiles/20220509-095411_5618/diffdump2/123114_5GNRLAB_CRAN36_dcg_k.log.gz#Comparison done on 220509-095512

lt all
gs+

lset DU5qiTable=1,DU5qi=5qi132$ schedulingProfileRef GNBDUFunction=12391140001_5GDU_5GNRLAB_CRAN36,UeCC=1,SchedulingProfile=132


lset EUtranCellFDD=123114_1_4$ acBarringForEmergency true

lset Lm=1,FeatureState=CXC4012324$ featureState 1


lset Lm=1,FeatureState=CXC4012454$ featureState 1

lset SectorCarrier=12$ configuredMaxTxPower 5000


lset UePolicyOptimization=1$ ueCapPrioList 0
gs-

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 26 of 52
Native - Node Visualizer
FULL-MO Audit
● Using Node Visualizer, the user can
perform MO audit on all the MOs.
– It can be used to compare
between 2 dates
Comparing 2 nodes
– It can be used to compare
between 2 sites
– Mismatch is highlighted for MOs
that are node-level

Output is generated in excel and user can select any MO shown in the tabs Mismatch is highlighted in red for node-level parameters. Pink color
is highlighted for MOs present in 1 node and not in another

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 27 of 52

● Disclaimer: Working with DOP/EPP to automatically add new parameter/new MTR which is currently a manual process
Advanced MoShell Functionalities for NPI

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 28 of 52
How to pull the Serving Gateway (SGW) IP address
Next MoShell command is to pull the SGW IP address.

Example: /tn/tnrh-session  View SGW IP address.


BS1047> /tn/tnrh-session

220522-20:18:31 2001:1b70:4294:f770::15 22.0b MSRBS_NODE_MODEL_22.Q2_566.28125.116_3317 stopfile=/tmp/23730


coli>/tn/tnrh-session
TNRH UDP session data:
TNRH GTP session data:
tsiTnSessionId=94083270 tnrhConnectionRef=9 tsiRatSessionId=329821 tsiRatSessionGroupId=1 dscp=0 vrd=2 localIpAddress=2001:1b70:4294:f775::b
remoteIpAddress=2001:1b70:4294:ff90::2501 Teid=94083270 tnUlPcep1=6 tnUlPcep2=0 tnDlPcep=5 ebcomRatSessionId=1 ebcomTnSessionId=102 ratType=2 peerType=1 remoteTeid=334437191
state=Normal

5G VR IP address
SGW IP address

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 29 of 52
Ping an IP address using MoShell command
Following MoShell command is to pull the SGW IP address.
Example: mcc Router=NRNSA ping6 --count 5 2001:1b70:4294:f775::1  View SGW IP address.
5G VR MO
Default Router IP
BS1047> mcc Router=NRNSA ping6 --count 5 2001:1b70:4294:f775::1
Run COMCLI command(s) on following 1 MOs ?
(NextHop)
===================================================================================
12577 Transport=1,Router=NRNSA
===================================================================================
Run COMCLI commands(s) on 1 MOs. Are you Sure [y/n] ? y
============================================================================================================
Id MO Command Result
============================================================================================================
12577 Router=NRNSA ping6 --count 5 2001:1b70:4294:f775::1
>ManagedElement=BS1047,Transport=1,Router=NRNSA
>ping6 --count 5 2001:1b70:4294:f775::1
PING 2001:1b70:4294:f775::1(2001:1b70:4294:f775::1) 56 data bytes
64 bytes from 2001:1b70:4294:f775::1: icmp_seq=1 ttl=255 time=0.202 ms
64 bytes from 2001:1b70:4294:f775::1: icmp_seq=2 ttl=255 time=0.210 ms
64 bytes from 2001:1b70:4294:f775::1: icmp_seq=3 ttl=255 time=0.222 ms
64 bytes from 2001:1b70:4294:f775::1: icmp_seq=4 ttl=255 time=0.228 ms
64 bytes from 2001:1b70:4294:f775::1: icmp_seq=5 ttl=255 time=0.194 ms

--- 2001:1b70:4294:f775::1 ping statistics ---


5 packets transmitted, 5 received, 0% packet loss, time 4147ms
rtt min/avg/max/mdev = 0.194/0.211/0.228/0.012 ms
============================================================================================================
Total: 1 MOs ● ping6  Send ICMP = Internet Control Message Protocol (ICMP) echo request

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 30 of 52 ● --count  Number of packets to be sent
Use of momt
Show MO containment relationships and cardinality. The command momt shows three tables: first table with all valid LDNs,
second table with parent MO(s), and third with children MO(s).
Example: momt GUtranFreqRelation  View all possible parents and children of the GUtranFreqRelation MO
BS1047> momt GUtranFreqRelation
--------------------------------
LDNs containing Lrat.GUtranFreqRelation
--------------------------------
ManagedElement[1],ENodeBFunction[0-1],EUtranCellFDD[0-24],GUtranFreqRelation[0-16]
ManagedElement[1],ENodeBFunction[0-1],EUtranCellFDD[0-24],GUtranFreqRelation[0-16],GUtranCellRelation[0-128]
ManagedElement[1],ENodeBFunction[0-1],EUtranCellTDD[0-24],GUtranFreqRelation[0-16]
ManagedElement[1],ENodeBFunction[0-1],EUtranCellTDD[0-24],GUtranFreqRelation[0-16],GUtranCellRelation[0-128]

--------------------------------
MO classes over Lrat.GUtranFreqRelation
--------------------------------
ManagedElement[1],ENodeBFunction[0-1],EUtranCellFDD[0-24],GUtranFreqRelation[0-16]
ManagedElement[1],ENodeBFunction[0-1],EUtranCellTDD[0-24],GUtranFreqRelation[0-16]

--------------------------------
MO classes under Lrat.GUtranFreqRelation
--------------------------------
Lrat.GUtranCellRelation[0-128]

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 31 of 52
MoShell mobatch functionality
Main purpose of mobatch functionality is to run MoShell commands on several nodes in parallel. Can be used to perform audits
or configuration changes.
5 6
Example: mobatch -t0 -p 15 gNB_site_list.txt gNB_prints.mos gNB_LOGS
1 2 3 4

Arguments
1. mobatch  command.
2. gNB_site_list.txt  file containing the list of sites to connect to. Each line in the file contains the IP addresses and/or site
names whose IP address are defined in the IP database.
3. gNB_prints.mos  file containing commands to be executed.
4. gNB_LOGS  directory where mobatch logs will be created.

Options
5. –t 0  Specify the number of minutes before timing out. Set to 0 for no timeout (default=20 minutes).
6. –p 10  Specify the maximum number of MoShell sessions that will run in parallel (default=10 parallel sessions).
| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 32 of 52
MoShell mobatch functionality
eadogon@vzw-iperf:~/05252022$ mobatch -t0 -p 15 site_list.txt audit.mos logs

Full command = /usr/moshell/mobatch -p 15 -t 0 site_list.txt audit.mos logs


Sitefile = site_list.txt. Number of sites = 3
Command file = audit.mos
Timeout disabled.
Wait interval set to 2.5 seconds
Maximum number of parallel processes set to 15

Logfiles stored in logs

###########################################################################################
>>>>> STARTED (pid)
** FINISHED (result) STATUS (started, finished, queue, running, sites running)
###########################################################################################
>>>>> BS1047 (1170) 1s 0f 2q 1r: BS1047
>>>>> BS1078 (1172) 2s 0f 1q 2r: BS1047 BS1078
>>>>> BS1048 (1174) 3s 0f 0q 3r: BS1047 BS1048 BS1078
** BS1078 (OK) 3s 1f 0q 2r: BS1047 BS1048
** BS1047 (OK) 3s 2f 0q 1r: BS1048
** BS1048 (OK) 3s 3f 0q 0r:
###########################################################################################

OK 0m16s BS1047
OK 0m15s BS1078
OK 0m21s BS1048

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 33 of 52
Native - Node Visualizer mobatch function
1 Select your cluster and date to mobatch for

Select the count-by enb, cell, freq


●Node Visualizer can be used Select the parameter
2 3

for performing quick analysis


on finding various values of Select COUNT to see various values of the parameter and its count on enb, cell and freq

parameter in the cluster of


sites.

●Ex. In the first snapshot,


we value-search crsGain in a
cluster.
Select VALUE to see various enb, cell and freq with its parameter value

●In the second snapshot, we


see the nodes having
specific value of crsGain

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 34 of 52
Advanced MoShell Functionalities for NPI

MoShell scripting

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 35 of 52
Preset variables
MoShell supports the use of variables and logical constructs. These can be used directly from the command line or within MoShell
command files.
The following variables are set immediately after MoShell startup:

Example: print $nodename  with this command we can view node name ID (managedElementId).

$ipaddress IP address of the node that MoShell is connected to.


$logdir path to the moshell_logfiles/logs_moshell directory.
$rats to show if node is LTE, 5G, or a MMBB, MSBB.

The following variables are set after running certain MO commands:

$nr_of_mos  the number of MOs that were printed on screen by the last run of the pr/st/get/prod/fro/set/del/acc commands.
$nr_of_alarms  the number of active alarms on the node. Set after the last run of the al command.
$nr_of_cvs  the number of CV:s that exist on the node, is set after the last run of the cvls command.
pv  The $nr_of_vars variable is set after running the pv command.
| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 36 of 52
Preset variables
BS1047> st cell

220525-10:32:28 2001:1b70:4294:f770::15 22.0h MSRBS_NODE_MODEL_22.Q2_566.28125.116_3317 stopfile=/tmp/24639

$ssh_pid = 20047

Connected to 2001:1b70:4294:f770::15 (SubNetwork=ONRM_ROOT_MO,SubNetwork=MKT_123,MeContext=BS1047,ManagedElement=BS1047)


===================================================================================
Proxy Adm State Op. State MO
===================================================================================
43 0 (LOCKED) 0 (DISABLED) ENodeBFunction=1,EUtranCellFDD=101047_1
97 1 (UNLOCKED) 1 (ENABLED) ENodeBFunction=1,EUtranCellFDD=101047_1_2
161 0 (LOCKED) 0 (DISABLED) ENodeBFunction=1,EUtranCellFDD=101047_1_9
217 0 (LOCKED) 0 (DISABLED) ENodeBFunction=1,EUtranCellFDD=123114_1_4
312 0 (LOCKED) 0 (DISABLED) ENodeBFunction=1,NbIotCell=101047_1_0
313 0 (LOCKED) 0 (DISABLED) ENodeBFunction=1,NbIotCell=101047_1_4
314 0 (LOCKED) 0 (DISABLED) ENodeBFunction=1,NbIotCell=101047_1_9
570 0 (DISABLED) GNBCUCPFunction=1,EUtraNetwork=1,ExternalENodeBFunction=auto311_480_3_1047,ExternalEUtranCell=14
571 0 (DISABLED) GNBCUCPFunction=1,EUtraNetwork=1,ExternalENodeBFunction=auto311_480_3_1047,ExternalEUtranCell=19
699 0 (LOCKED) 0 (DISABLED) GNBDUFunction=10010470001_5GDU_BS1047,NRCellDU=1001047_0001_0001_01
701 0 (LOCKED) 0 (DISABLED) GNBDUFunction=10010470001_5GDU_BS1047,NRCellDU=1001047_0001_0001_02
===================================================================================
Total: 11 MOs

BS1047> print $nr_of_mos

11
| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 37 of 52
Preset variables
BS1047> pv

$Me = ManagedElement=BS1047
$comcli = 2
$comtopmomversion = ComTop_10.22.3
$cpplinux = 0
$currentSW = 22.Q2
$currentUP = CXP9024418/15_R53C32
$gawk = LANG=C LC_ALL=C /usr/moshell/gawk
$gawk_pid = 24639
$globmoshellrc = /usr/moshell/jarxml/moshellrc
$ipaddress = 2001:1b70:4294:f770::15
$logdir = /home/eadogon/moshell_logfiles/logs_moshell
$logfile = /home/eadogon/moshell_logfiles/logs_moshell/tempfiles/20220525-094929_24604/nrdepLog24639
$mibprefix = SubNetwork=ONRM_ROOT_MO,SubNetwork=MKT_123,MeContext=BS1047
$momfile = /home/eadogon/jarxml/MSRBS_NODE_MODEL_22.Q2_566.28125.116_3317.xml.gz
$momversion = MSRBS_NODE_MODEL_22.Q2_566.28125.116_3317
$moshell_version = 22.0h
$moshelldir = /usr/moshell
$moshellrc = /home/eadogon/.moshellrc
$nodename = BS1047
$nodetype = RBS
$nr_of_alarms = 3
$nr_of_cvs = 13
$nr_of_mos = 20
$os = linux
$rats = LN
$ratsconfig = LTE-FDD,LTE-IoT NR-LB-FDD-ESS
$scripts = /usr/moshell/commonjars/scripts
$ssh_pid = 20479
$swName = RadioNode
$tempdir = /home/eadogon/moshell_logfiles/logs_moshell/tempfiles/20220525-094929_24604
$uname = Linux vzw-iperf 4.4.0-130-generic #156-Ubuntu SMP Thu Jun 14 08:53:28 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
$ws_ip = 2001:1b70:4294:fffe::146 (10.107.127.166)

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 38 of 52
Variable assignment
A variable value can be assigned in different ways, see below. A variable can also be unassigned, using the unset command. By using
the command unset all, all variables are unset except the "system" variables.
1. From the command line.
The variable to be assigned is on the left side of the equal sign and the value is on the right side. Each element must be separated
by spaces. Example:

$i = 3
$node = MMBB

2. From the following command: get


The MO-filter and attribute-filter must be specified, then comes the redirection sign (>), then the variable name. If several attributes
are printed, only the last attribute value gets assigned into the variable. Example:

get NRCellDU=1001047_0001_0001_01 nRCellDUId > $VARnRCellDUId  (result: $VARnRCellDUId = 1001047_0001_0001_01)

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 39 of 52
Variable assignment
BS1047> get NRCellDU=1001047_0001_0001_01 nRCellDUId > $VARnRCellDUId

220525-16:13:12 2001:1b70:4294:f770::15 22.0h MSRBS_NODE_MODEL_22.Q1_551.28081.127_c476 stopfile=/tmp/25749


=================================================================================================================
MO Attribute Value
=================================================================================================================
NRCellDU=1001047_0001_0001_01 nRCellDUId 1001047_0001_0001_01
=================================================================================================================
Total: 1 MOs

$VARnRCellDUId = 1001047_0001_0001_01

BS1047> print $VARnRCellDUId

1001047_0001_0001_01

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 40 of 52
Variable assignment using String manipulation
3. Using String manipulation
Regular expressions can be used in the string manipulations. Examples:

get NRCellDU bandListManual$ > $freqBand_source  (result: $freqBand_source = i[1] = 5 )

$freqBand_source1 = $freqBand_source -s .*=\x20


Result: $freqBand_source1 = 5, the = i[1] was removed

$freqBand_source2 = $freqBand_source1 -s \x20


Result: $freqBand_source2 = 5, the space was removed

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 41 of 52
Variable assignment using String manipulation
BS1047> get NRCellDU bandListManual$ > $freqBand_source

220525-16:21:58 2001:1b70:4294:f770::15 22.0h MSRBS_NODE_MODEL_22.Q1_551.28081.127_c476 stopfile=/tmp/25749

$ssh_pid = 5791

Connected to 2001:1b70:4294:f770::15 (SubNetwork=ONRM_ROOT_MO,SubNetwork=MKT_123,MeContext=BS1047,ManagedElement=BS1047)


=================================================================================================================
MO Attribute Value
=================================================================================================================
NRCellDU=1001047_0001_0001_01 bandListManual i[1] = 5
=================================================================================================================
Total: 1 MOs

$freqBand_source = i[1] = 5

BS1047> $freqBand_source1 = $freqBand_source -s .*=\x20

$freqBand_source1 = 5

BS1047> $freqBand_source2 = $freqBand_source1 -s \x20

$freqBand_source2 = 5

BS1047> print $freqBand_source2

5
| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 42 of 52
Advanced MoShell Functionalities for NPI

Smart script

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 43 of 52
Smart script
Smart script example for LB ESS selection and configuration.
lt all

l+ $nodename_Smart_Script_Test1.log

confb+

mr LTE_ess_carrier
mr LTE_ess_reference
mr LTE_dss_unlocked
mr sc_enabled
mr NR_ess_carrier
mr NR_ess_reference
mr NR_dss_unlocked
mr nsc_enabled

##################################
###### LTE ESS Selection
##################################

ma LTE_ess_carrier ^SectorCarrier essScLocalId !^0$


ma LTE_ess_reference LTE_ess_carrier reservedBy
ma LTE_dss_unlocked LTE_ess_reference administrativeState 1
ma sc_enabled LTE_ess_carrier operationalState 1

##################################
###### NR ESS Selection
##################################

ma NR_ess_carrier NRSectorCarrier essScLocalId !^0$


ma NR_ess_reference NR_ess_carrier reservedBy mr  Remove an MO group or remove MOs from an MO group.
ma NR_dss_unlocked NR_ess_reference administrativeState 1
ma nsc_enabled NR_ess_carrier operationalState 1 ma  Add MO(s) to an MO group.

!  attribute different from.

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 44 of 52
Smart script
#########################
# bl ESS cells
#########################

bl LTE_dss_unlocked
bl NR_dss_unlocked
bl nsc_enabled

#########################
# configuration ESS cells
#########################

get NR_dss_unlocked cellRange


get nsc_enabled configuredMaxTxPower
get sc_enabled configuredMaxTxPower
get LTE_dss_unlocked crsGain

set NR_dss_unlocked cellRange 15000


set nsc_enabled configuredMaxTxPower 2000
set sc_enabled configuredMaxTxPower 2000
set LTE_dss_unlocked crsGain 300

#########################
# featureKey Activation
#########################

unset $featureState10
get CXC4010620

get FeatureState=CXC4010620 featurestate$ > $featureState10


$featureState10 = $featureState10 -s \x20.*
print $featureState10

if $featureState10 = 0 then
set FeatureState=CXC4010620 featurestate 1
fi

get FeatureState=CXC4010620 featurestate

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 45 of 52
Smart script
#########################
# deb ESS cells
######################### unset all  By using the command unset all, all variables are unset except the "system" variables.

deb nsc_enabled

deb NR_dss_unlocked
deb LTE_dss_unlocked

#############################
# configuration confirmation
#############################

get NR_dss_unlocked cellRange


get nsc_enabled configuredMaxTxPower
get sc_enabled configuredMaxTxPower
get LTE_dss_unlocked crsGain
get FeatureState=CXC4010620 featurestate

#############################
# variable and group cleaning
#############################

mr LTE_ess_carrier
mr LTE_ess_reference
mr LTE_dss_unlocked
mr sc_enabled
mr NR_ess_carrier
mr NR_ess_reference
mr NR_dss_unlocked
mr nsc_enabled
unset $featureState10
unset all

confb-
l-
| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 46 of 52
MoShell installation

Appendix

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 47 of 52
Installation for Windows (using Cygwin)
When running on Windows, Moshell uses a UNIX emulator known as Cygwin.
Go directly to step 13, MoShell Installation, if you have already installed and configured Cygwin previously.
1. Go to the website http://www.cygwin.com/
2. Click on Install Cygwin
3. Save the setup-x86.exe file, then execute it. Make sure to use 32-bit setup (64-bit not supported by moshell).
4. Choose Install from internet, click Next
5. Root Directory C:\cygwin (It is not recommended to choose a different directory, especially if it contains spaces)
Then click Next.
6. Select Internet Connection: if connected on a corporate network without direct internet access, put the proxy settings or select "use Internet Explorer settings". Click Next.
7. Choose a Download Site. For instance, http://sourceware.mirror.tds.net is known to work well but probably others work fine too.
8. Select Packages: Add the following packages:
• under Archive select zip and unzip
• under Perl select perl and perl-XML-Simple
• under Net select inetutils, openssh, and openssl
• under Shells select rxvt VT102
• under Tcl select expect
• under Libs, select libglib2.0_0
• optional: under Editors select vim (if you want to be able to edit files with vi)
| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 48 of 52
Installation for Windows (using Cygwin)
9. Click Next, install will start. Wait for installation to complete.
10. Download the file http://utran01.au.ao.ericsson.se/moshell/cygwin_install.txt to C:/Cygwin.
11. Click on Start –> Run.
In the "Run" window, type: cmd, then press <enter>.
A DOS window opens. At the DOS prompt, execute the following commands:
c:
cd cygwin
bin\perl.exe cygwin_install.txt
This will create the following files: c:/cygwin/etc/profile, c:/cygwin/cygwin.bat,
c:/cygwin/home/youruserid/.bashrc, c:/cygwin/home/youruserid/.Xdefaults,
c:/cygwin/home/youruserid/.inputrc.
If those files already exist, they are automatically moved to the folder c:/cygwin/tmp/installbackup.
12. Open a new cygwin terminal window. The window should be black with white text and the prompt should like this: [~]$
If not, then go through all the steps again and make sure you haven’t missed out anything.
More info about Cygwin installation issues can be found at: http://cygwin.com/faq/faq0.html
Uninstall instructions for cygwin can be found at
http://cygwin.com/faq/faq.setup.html#faq.setup.uninstall-all

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 49 of 52
Installation for Windows (using Cygwin)
13. Moshell installation. Follows these steps if you already have a working Cygwin environment.
Download the file moshellxxx.zip from http://utran01.au.ao.ericsson.se/moshell to your home directory
c:/cygwin/home/youruserid
Open the cygwin shell and run:
unzip -o moshellxxx.zip
bash moshell_install
When prompted to enter the directory where you want to install moshell, it is recommended to specify your HOME directory ( ~).
If you have executed moshell_install from your home directory, then you can press the enter key and the current directory is selected.
If a previous moshell installation already exists, it is recommended to install in the same directory as the old one. This way, all your custom files (jar/xml files, site files, etc.) get copied across to
the new revision and the old revision gets moved to a different location so you can still access it if needed.
When prompted to enter the path to Java, choose either of:
/cygdrive/c/Windows/system32/java
/cygdrive/c/Progra~1/javasoft/jre/<version>/bin/java

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 50 of 52
Installation for Windows (using Cygwin)
14. Running moshell for the first time
If you have set the PATH variable correctly in your ~/.bashrc file, you should be able to run moshell from any directory. e.g:
moshell <ip-address>
If this is the first time moshell is installed on this PC, then it will download several jar files from the node. No progress indicator will be shown so just be patient as it will take a few minutes.
Progress can be seen by doing ls -l in the moshell/jarxml directory. For more information about user settings etc., check the user guide.
15. If the following error occurs when executing moshell on Vista:
fatal error - unable to remap C:\cygwin\home\xxx\moshell\commonjars\lib\file.dll to same address as parent
download the files http://utran01.epa.ericsson.se/moshell/fixvista.txt and http://utran01.epa.ericsson.se/moshell/fixvista.bat to the desktop
execute the fixvista.bat file
Known Limitation: CTRL-C may not work all the time. In this case, it is possible to do instead: CTRL-Z, then kill %1.

| EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 51 of 52

You might also like