AMOS/MoShell - Understanding the basics Adolfo Ivan Gonzalez Adolfo Gonzalez / Amay Umradia | EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 1 of 52 NPI NPI 2022-04-14 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: get Children to load all or parts of the MO-tree Example: get get Attribute to read the attributes of a MO Example: get Equipment=1,FieldReplaceableUnit=RRU-1 Children Equipment=1,FieldReplaceableUnit=RRU-1 fieldReplaceableUnitId acc Call Action to perform an action on a MO Example: acc Equipment=1,FieldReplaceableUnit=RRU-1 restartunit set Attribute to set (change) the value of a MO attribute Example: set Attribute Call Action 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 Attribute 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 =================================================================================== Total: 2 MOs attempted, 2 MOs deleted >>> Simulated MO deletion 490899_BLM_RNC_SC> uDelete 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 | EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 18 of 52 C:\Users\eadogon\ 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 S-RAB ARP QCI ServiceType GbrDl GbrUl ROHCenabled TtiBundlingEnabled PartitionId PpeRef ENDC 32 268496991 536976192 BbUeRef UeTraceID 0x7392de0563646778 6 E-RAB 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> | EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 19 of 52 C:\Users\eadogon\ 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 cellLocalId 49 i[0] = 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 ● Using Node Visualizer, the per-MO audit can be useful. Site name Select MOs and parameter to diff Click to see delta ● Same as diff cmd in previous slide, the per-MO audit requires – Choose the site name – 2 dates for comparison ● This will showcase as per userpreference Dates to be compared ●Click to add text – 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 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 Rollback_backup_BASEBAND_CXP9024418/15_R52B12_20220505T224100+0000 PostUPG_MTR22_17_R53B16_GOLDEN [1] = PostUPG_22Q2_0_RC1_R53C12_GOLDEN [2] = Final_backup_for_BASEBAND_CXP9024418/15_R53B16_20220505T225122+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 – It can be used to compare between 2 sites Comparing 2 nodes – Mismatch is highlighted for MOs that are node-level Mismatch is highlighted in red for node-level parameters. Pink color is highlighted for MOs present in 1 node and not in another Output is generated in excel and user can select any MO shown in the tabs | 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 (NextHop) Run COMCLI command(s) on following 1 MOs ? =================================================================================== 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 OK OK 0m16s 0m15s 0m21s BS1047 BS1078 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 ●Node Visualizer can be used for performing quick analysis on finding various values of parameter in the cluster of sites. ●Ex. In the first snapshot, we value-search crsGain in a cluster. 2 Select the parameter 3 Select the count-by enb, cell, freq Select COUNT to see various values of the parameter and its count on enb, cell and freq 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 Select your cluster and date to mobatch for 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 mr mr mr mr mr mr mr LTE_ess_carrier LTE_ess_reference LTE_dss_unlocked sc_enabled NR_ess_carrier NR_ess_reference NR_dss_unlocked nsc_enabled ################################## ###### LTE ESS Selection ################################## ma ma ma ma LTE_ess_carrier ^SectorCarrier essScLocalId !^0$ LTE_ess_reference LTE_ess_carrier reservedBy LTE_dss_unlocked LTE_ess_reference administrativeState 1 sc_enabled LTE_ess_carrier operationalState 1 ################################## ###### NR ESS Selection ################################## ma ma ma ma NR_ess_carrier NRSectorCarrier essScLocalId !^0$ NR_ess_reference NR_ess_carrier reservedBy NR_dss_unlocked NR_ess_reference administrativeState 1 nsc_enabled NR_ess_carrier operationalState 1 mr Remove an MO group or remove MOs from an MO group. 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 get get get NR_dss_unlocked cellRange nsc_enabled configuredMaxTxPower sc_enabled configuredMaxTxPower LTE_dss_unlocked crsGain set set set set NR_dss_unlocked cellRange 15000 nsc_enabled configuredMaxTxPower 2000 sc_enabled configuredMaxTxPower 2000 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 ######################### deb nsc_enabled deb NR_dss_unlocked deb LTE_dss_unlocked ############################# # configuration confirmation ############################# get get get get get NR_dss_unlocked cellRange nsc_enabled configuredMaxTxPower sc_enabled configuredMaxTxPower LTE_dss_unlocked crsGain 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 confbl- | EADOGON Adolfo Ivan Gonzalez | A | 2022-05-12 | AMOS/Moshell - Understanding the basics | Ericsson Internal | Page 46 of 52 unset all By using the command unset all, all variables are unset except the "system" variables. 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