Professional Documents
Culture Documents
| 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
| 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
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)
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
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
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
=====================================================================================================
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
| 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/
===================================================================================================================================
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
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
lt all
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.
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
| 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
###########################################################################################
>>>>> 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
| 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).
$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
$ssh_pid = 20047
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
| 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
$VARnRCellDUId = 1001047_0001_0001_01
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:
| 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
$ssh_pid = 5791
$freqBand_source = i[1] = 5
$freqBand_source1 = 5
$freqBand_source2 = 5
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
##################################
##################################
###### NR ESS Selection
##################################
| 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
#########################
#########################
# featureKey Activation
#########################
unset $featureState10
get CXC4010620
if $featureState10 = 0 then
set FeatureState=CXC4010620 featurestate 1
fi
| 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
#############################
#############################
# 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