Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
2 / 94
Contents
Contents
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Basic Concepts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Terminology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Diagnosis Module Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Start Diagnosis Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Eclipse Environment . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.1 Title Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.2 Editors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1.3 Views . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Start Diagnosis Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Display Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4 Close Diagnosis Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5 Diagnosis Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.1 Scenario Tree View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.2 Node Outline View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.3 Property View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.4 Problem View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.5 Scenario Graphical Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.6 Node Code Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.7 Menubar, Toolbar and Popup Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5.8 Customizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 The Scenario Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Create Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.3 Create Scenario by Copy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Edit Scenario/Scenario Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.5 Save Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6 Validate/Check Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 Delete Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8 Create Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.1 First Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.2 Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.8.3 External Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.9 Edit Node Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10 Edit Node Links . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10.1 Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10.2 Link with Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.10.3 Move a Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.11 Edit Link Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.12 Copy Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.13 Delete Node/Link . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Edit Node Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Open Node Code Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Node Code Template . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Import Libraries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4 Define Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.1 QoS Indicator and Parameter Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.2 Topology Navigation Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.3 Generic Library Related Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.4.4 List Manipulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.5 Test Syntax . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.6 Debug Traces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 9 10 10 13 14 15 15 15 15 17 17 18 18 19 20 22 25 30 31 35 37 38 39 43 44 45 46 47 47 47 48 49 50 50 50 51 52 52 53 54 55 56 56 57 57 58 60 62 65 66 68
3 / 94
Contents
Example Scenarios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 V2_DR (GSM Technology) Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.1 Problem of unsuccessful Directed Retry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Bad settings of Directed Retry parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.3 Congestion on Potential Target Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.4 Failures on Potential Target Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.5 Problem of external Directed Retry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.6 Problem of incorrect A_PBGT_DR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.7 Problem of incorrect FREE_LEVEL_DR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.8 Problem of incorrect L_RXLEV_NCELL_DR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.9 Problem of internal Directed Retry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.1.10 V4_TCONG.Bad settings of queuing parameters . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Scenario V2_SDROP(GSM Technology) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 SDCCH drop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.2 BSS internal problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.3 Link failure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.4 Processor restart . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.5 SDCCH drop HO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.6 SDCCH drop radio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.7 SDCCH drop system . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.8 SDCCH HO not activated . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.9 Standalone SDCCH HO problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.10 TCH HO problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.11 TCH radio problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3 WAC Cluster Configuration (WiMAX Technology) Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1 1st Node Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.2 2nd test Node Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.3 3rd Node Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Introduction to Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 Getting Start with Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.1 Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.2 Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.3 Unicode Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1.4 Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Knowing More About Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.1 First Steps Towards Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.2 if Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.3 for Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.4 The range() Function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.5 break and continue Statements and else Clauses on Loop . . . . . . . . . . . . . 6.2.6 pass Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2.7 More About Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
69 70 71 71 72 72 72 73 73 73 74 74 75 76 76 76 76 76 77 77 77 78 78 78 79 80 81 82 83 84 84 86 88 90 91 91 92 92 93 93 94 94
4 / 94
Figures
Figures
Figure 1: Diagnosis Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Figure 2: Title Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 Figure 3: Diagnosis Editor Window . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 Figure 4: Diagnosis Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Figure 5: Node Outline View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Figure 6: Node Outline View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Figure 7: Property Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 Figure 8: Node Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Figure 9: Link Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Figure 10: Link with Iteration Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Figure 11: Scenario Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Figure 12: Problem View . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Figure 13: Property View Customizing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Figure 14: Error Sorting Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Figure 15: Error Grouping Criteria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Figure 16: Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Figure 17: Set Item Limits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Figure 18: Scenario Graphical Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 Figure 19: Node tooltip example . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Figure 20: Links and links with iteration in Scenario Graphical Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Figure 21: Fly-out Palette . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 Figure 22: Fly-out Palette Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 Figure 23: Editing Node Code in Scenario graphical Editor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 Figure 24: Scenario Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 Figure 25: Node Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Figure 26: Help Menu Item . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 Figure 27: Context Menu on Scenario Tree Viewer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Figure 28: Context Menu in Scenario Graphical Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Figure 29: Node Context Menu in Graphical Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Figure 30: Context Menu on Property View - Key and Value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Figure 31: Context Menu on Property View - Value and Key . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Figure 32: Context Menu on Indicator Association in Scenario Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Figure 33: Context Menu on View Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Figure 34: Context Menu on Editor Bar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Figure 35: Create Scenario Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 Figure 36: Awaiting server response . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Figure 37: Dispatching Request to Get Scenario Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Figure 38: Edit Scenario Wizard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Figure 39: Node Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5 / 94
Figures
Figure 40: Link Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Figure 41: Link with Iteration Properties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 Figure 42: Link Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Figure 43: Link Property . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 Figure 44: V2_DR Scenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 Figure 45: Scenario V2_DR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
6 / 94
Preface
Preface
Purpose Whats New
This document describes the diagnostic solutions provided by the NPO and the Diagnosis Editor.
In Edition 10
Update the sections with information about the W-CDMA.
In Edition 09
The document administrative part is updated.
In Edition 08
Test Syntax (Section 4.5) was updated.
In Edition 07
Overall document quality was improved following an editorial review.
In Edition 06
A note was added in Edit Node Code (Section 4).
In Edition 05
The document was updated after technical validation. WiMAX information was added.
In Edition 04
Overall document quality was improved following an editorial review.
In Edition 03
Validate/Check Scenario (Section 3.6) was updated.
In Edition 02
Graphics were updated.
In Edition 01
7 / 94
Preface
This guide is intended for operators responsible for diagnosing QoS problems. You must be familiar with the radio network and Network Performance Optimizer (NPO) concepts.
8 / 94
1 Basic Concepts
1 Basic Concepts
This section provides an overview of the NPO Diagnosis architecture.
9 / 94
1 Basic Concepts
1.1 Terminology
Diagnosis Scenario A diagnosis scenario is an analysis tree that contains ways to investigate a quality of service problem using the data available in the NPO. The scenario can be system or user defined. Nodes provide code that implements checks in order to evaluate the possible cause of a problem. Links provide the association between nodes. A link is oriented from a consequence node to a causal node. Eclipse is the Diagnosis Development Tool, used to define diagnosis scenarios. The Node Code Editor is used to write the node code.
Node
Link
10 / 94
1 Basic Concepts
The operator optimizer is in charge of optimizing the radio network and launches the diagnosis scenario to discover the cause of the problem. The operator should only use the Analysis desktop. It is also possible to define Tuning Session applications in the Diagnosis Editor. These applications trigger the execution of specific checks for tuning parameter validation. Use the System Scheduler to schedule the diagnosis execution.
11 / 94
1 Basic Concepts
12 / 94
13 / 94
Figure 1: Diagnosis Editor The Diagnosis Editor is based on editors, views and perspectives.
14 / 94
2.1.2 Editors
Editors allow the user to open, edit, and save objects. They follow an open-save-close lifecycle much like file system based tools, but are more tightly integrated into the window. When active, an editor can contribute actions to the "Diagnosis Editor" window menus and tool bar. Two editors appear in tabs in the middle of the window: Scenario Graphical Editor Node Code Editor.
2.1.3 Views
Views provide information about some object that the user is working with in the "Diagnosis Editor" window. Modifications made in a view (such as changing a property value) are generally saved immediately, and the changes are reflected immediately in other related parts of the user interface. There are four views in the "Diagnosis Editor" window: Scenarios View Node Outline View Properties View Problems View. The "Properties View" and "Problems View", corresponding to Scenario Graphical Editor and Node Code Editor are also displayed in tabs. The user can rearrange a view or an editor by drag and drop and customize to better suit a particular task (resizing is possible moving to the left, to the right, to bottom or to top the splitters that separate views and editors).
15 / 94
2. Check that the "Diagnosis Editor" window appears to the user, with all parts displayed at their default location, as shown in the following figure.
Figure 3: Diagnosis Editor Window The Title bar of the "Diagnosis Editor" window displays: The Alcatel-Lucent Diagnosis Editor The user name The server IP address or server hostname. The title bar is updated once a scenario is opened with the name of scenario. Below the Title bar, the customized menus appear: Scenario Menu item, with all the options related to a scenario Nodes Menu item, with all options related to a node. Help menu item
Note:
Each item in the menu is Enabled/Disabled according to the FAD available to the current user. Below the customized menus, there are the customized toolbars that provide a quick access to the options available under the menus. To the left is the Scenario Tree Viewer. On startup, a list of available scenario names is provided from the server. A tree displaying the list of scenarios is populated and displayed under this view. On startup, these parts are empty and they are populated only when there is an active scenario: To the right - the Node Outline View On the bottom- the Properties and Problems Views In the center - the Scenario Graphical Editor.
16 / 94
Note:
Only the code for the nodes that belong to the current scenario appears. The maximum number of scenarios that can be opened in the Scenario Graphical Viewer is configurable. To display a scenario: 1. Select a Scenario from the Scenario Tree View. 2. Perform one of the following actions: From the menu bar, select Scenario->Display scenario, or Right click on the Scenario. Then, from the popup menu, select Display Name of Scenario, or Double click on the Scenario, or Click on the icon from the toolbar, or
Press [ CTRL ] + [ D ]. The following figure shows the menu option to display a scenario: , where V2_DR is the scenario name.
17 / 94
18 / 94
selected in the Scenario Graphical Viewer does not imply that the respective scenario is selected in the Scenario Tree View. By default, the Scenario Tree View part appears to the left of the Diagnosis Editor. When Link with Editor menu item from the Scenario Tree Toolbar is enabled: Selecting any scenario in the Scenario Tree would bring to the front the corresponding Graphical Editor for that scenario (if the scenario is currently opened) On Changing tabs between the Graphical Editor, the corresponding scenario name is selected in the Scenario Tree View.
Figure 5: Node Outline View Available nodes are displayed in a list view format, in this order: First Node Standard Nodes in alphabetical order External Nodes in alphabetical order. Each node has a related icon representing the node type, as follows: Type First Node Icon Displayed String Node_Name
Node
Node_Name
External Node
External_Scenario_Name.Node_Name
By Default, the Node Outline View appears to the right of the Diagnosis Editor. Once the Node Code Editor is opened for editing a node code, the Node Outline View displays the libraries and the variables defined for the node.
19 / 94
Figure 6: Node Outline View It is now possible to: Sort the elements alphabetically, by clicking on Hide the comments, by clicking on Hide the libraries, by clicking on Collapse all, by clicking on Expand all, by clicking on .
Figure 7: Property Toolbar When selecting the first icon from the Property Toolbar, a two option window opens that allows the user to select the type of properties to display: Show Categories Show Advanced Properties.
20 / 94
Figure 9: Link Property If the link is a link with iteration, along with the Rank, the property window also displays the Iteration List and the Iteration Variable.
21 / 94
Figure 11: Scenario Property The operator cannot modify the scenario properties.
Figure 12: Problem View By default, Problem View appears at the bottom of the Diagnosis Editor. When selecting the icon from the Problem Toolbar, the following options allow the user to customize the Property View:
Figure 13: Property View Customizing To sort the errors, from the toolbar menu, select window, select the sorting criteria: Sorting and in the new open
22 / 94
Errors can be sorted by these criteria (ascending or descending): Severity and Description / Path / Resource / Location / Creation Time / Id. To restore the default sorting criteria, click on [ Restore Defaults ]. To group errors, select Grouping and choose one of the following options: Type / Java Problem Type / Severity / None.
Figure 15: Error Grouping Criteria To select filters to be applied on the Problem view, from the Toolbar menu, select Filters. A list of available filters appears. Check the filters to apply. To configure filters, select the The following widow opens. icon from the Toolbar.
Figure 16: Filters To select one filter, check the box related to the filter. To select all filters, click on [ Select All ]. To deselect all filters, click on [ Deselect All ]. To add a new filter, click on [ New ] and in the window that opens, fill in the filter name, then click on [ OK ]. To remove a filter from the list, check the filter, then click on [ Remove ].
Note:
The default filter cannot be removed. Check the filter to configure, then: Select the type of elements on which the filter is configured: On any element On any element in the same project On a selected element only On a selected element and its children On a working set. To select one working set, click on [ Select... ] and in the window that opens, check one of the options: Window Working Sets / Selected Working Sets. If needed, the user can add new working sets.
23 / 94
If required, add a description of the filter type: Select comment Select comment. and fill in the following field with the appropriate
To filter errors of one type of severity, check the box attached to Where severity is, then check the box attached to the type of problem: Error Warning Info. To select the type of items, check the box(es) attached to the possible types (displayed to the right of the window). To select all types of items, click on [ Select All ]. To deselect all types of items, click on [ Deselect All ]. To restore the defaults characteristics of the filter, click on [ Restore Defaults ]. To limit visible items per group, from the Toolbar menu, select A new window opens, as shown in the following figure. Preferences....
Figure 17: Set Item Limits Check the Use marker limits field, fill in the number of visible items, then click on [ Ok ]. To restore defaults value (100 items / group), click on [ Restore Defaults ].
24 / 94
Figure 18: Scenario Graphical Editor Nodes are displayed in the Scenario Graphical Editor using the representative icons. The Node name appears below the icon. Each node appears at its respective X and Y location, retrieved from its node property. On mouse-over the node, a tool-tip appears displaying following information about node: Mode name Mode description Mode code snipped (first 100 characters). For an external node, only the node name appears on mouse-over the node.
25 / 94
Figure 19: Node tooltip example Multiple nodes can be selected in the Scenario Graphical Editor by holding down the [ Ctrl ] or [ Shift ] keys and clicking on various nodes or pressing the left mouse button and dragging the selection box over the nodes to be selected.
Note:
For a node to be selected, the node should be completely within the bounding selection rectangle. For example, in the following figure, six nodes are selected.
26 / 94
2.5.5.1 Links
Links are also known as connections. The link orientation defines the causality between two nodes (which node is the cause, which node is the consequence). A consequence node can have several causal nodes. Links between nodes are directed to visually represent the flow of execution. Rank associated with links decides the order of execution of casuality nodes. The link can also carry an iteration variable enabling to test the next node on a set of variables (for neighbor or adjacency checks provided a given cell for instance). Links with iteration are represented using dotted blue directed lines. Links can also be defined as cutoff, meaning that if the causal node proves to be true, the evaluation of all sibling nodes is skipped. Rank of a cutoff link is display in pink color.
Figure 20: Links and links with iteration in Scenario Graphical Editor.
27 / 94
Link - Create a Link Link with iteration - Create a Link with iteration Node- Create a node
First Node
External Node
Figure 21: Fly-out Palette Right clicking on the Fly-out Palette provides the user with the following options: Change the Layout to Columns, List, Icons Only and Details Display Large Icons Change Settings Pinned. If unchecked, the palette hides itself when the cursor moves out of the palette area.
28 / 94
To change the settings of the Fly-out Palette, click on Settings. A dialog box appears.
Figure 22: Fly-out Palette Settings The following settings are available. Font To change the "Diagnosis Editor" window Dialog Font, . A new window opens, which allows click on user to change the settings. To come back to the system default font settings, click on . Layout To change the Layout to Columns, check the Columns field. To change the Layout to List, check the List field. When set to List, Layout can use large icons, when the Use large icons field is checked. To change the Layout to Icons only, check the Icons only field. To change the Layout to Details, check the Details field. Drawer options Always close when opening another drawer. Always close when opening another drawer. Never close.
By default, the Fly-out Palette appears to the right of the Scenario Graphical Editor. To change the position of the Palette, right click on Palette and select Dock on> Left. To resize the Palette, right click on Palette and select Resize.
29 / 94
Editing node code opens a new Node Code Editor in place of the Scenario Graphical Editor. The user can switch between the editors by means of the tabs.
Figure 23: Editing Node Code in Scenario graphical Editor. In the case of a scenario, the Editor (Tab) title displays the name of the Scenario, while editing a nodes code the Editor title displays the name of the corresponding Node. An additional * appears if the current Editor has been modified. The* is not shown if the current Editor is saved. The Python libraries are used in the node code definition when the user wants to access to a QoS indicator, a parameter value, or to navigate in the topology. The QoS and parameters libraries are generated by the offline tools at dictionary imports. Only the topology navigation are hard coded. The use of the libraries allows completion when typing a indicator or parameter value. By default, the Node Code Editor appears in the center of the Diagnosis Editor.
30 / 94
Figure 24: Scenario Menu The following table lists the scenario menu items and their corresponding descriptions. Scenario Menu Item Scenario New Scenario Copy Scenario Name of Scenario... Display Name of Scenario Save Name of Scenario Description Accelerator
Opens the submenu under Scenario Menu Item Creates a new Scenario Copies the selected Scenario Grayed when no scenario is currently selected Displays the Scenario Grayed when no scenario is currently selected Save the currently opened Scenario Grayed when no scenario is currently opened or when no changes have been made to the scenario since last save Displays properties of the selected scenario in a wizard Grayed when no scenario is currently selected
Alt + S Ctrl + N
Ctrl + D
Ctrl + S
Ctrl + Enter
Validate/Invalidate Validates/Invalidates the currently opened scenario Name of Grayed when no scenario is currently opened or when the user does not Scenario have privilege to modify selected scenario Delete Deletes the selected Scenario Grayed when no scenario is currently selected or when the user does not have privilege to delete selected scenario Exit Exits Diagnosis Editor Alt +F4
31 / 94
Figure 25: Node Menu Node Menu Item Node Create Node Description Accelerator
Opens the submenu under Node menu item Create a new node in the currently opened scenario Grayed when the user does not have the privilege to modify the current scenario Ctrl + 2
Creates a new First Node in the currently open scenario Grayed when the user does not have the privilege to modify the current scenario or when a First Node already exists in the current scenario Creates a new External Node in the currently open scenario Grayed when the user does not have the privilege to modify the current scenario Opens PyDev Editor with the node code of the currently selected node Grayed when no node is selected Deletes the currently selected Node Grayed when the user does not have the privilege to modify the current scenario or when no nodes are selected
Ctrl + 1
Ctrl + 3
Ctrl + D
Ctrl + Delete
Copy Node
Copies the currently selected Node Grayed when no nodes are selected
Pastes the copied node in the current scenario Grayed when the user does not have the privilege to modify the current scenario or when no node was previously copied Arranges all the nodes in the current scenario in a tree form Grayed when the user does not have the privilege to modify the current scenario or when a node is selected
Auto Layout
Shift + F5
32 / 94
2.5.7.2 Toolbar
The icons on the Toolbar display associated tool tips specifying the meaning of the icon when mouse is moved over them, as described in the following table.
Icon
Grayed when ... Never No scenario is currently selected No scenario is currently selected No scenario is currently opened or no changes made since last save
Validate/Invalidate No scenario is currently opened or user is not privileged to modify selected Scenario scenario Delete Scenario No scenario is currently selected or user is not privileged to delete selected scenario The user is not privileged to modify the current scenario or a node is selected The user is not privileged to modify the current scenario The user is not privileged to modify the current scenario or a First Node already exists in the current scenario The user does is not privileged to modify the current scenario
Auto Layout Create new Node Create new First Node Create new External Node Edit Node Code Delete Node Copy Node Paste Node
No node is selected No node is selected or user is not privileges to delete the current node No node is selected The user is not privileged to modify the current scenario or no node was previously copied
33 / 94
Note:
If there are no scenarios selected when the user right clicks on the Scenario Tree View, all options on the context menu, except Create Scenario under the new menu, are disabled.
Figure 29: Node Context Menu in Graphical Editor In the last two popup menus, option Create First node appears only when the first node does not exist (it is deleted).
34 / 94
2.5.8 Customizing
You can maximize or minimize all Views and Editors, by clicking on one of the : two buttons situated in the top right corner of each window To minimize the window, click on To maximize the window, click on To restore the window, click on This option is available only if one of the first two was selected. To modify the size of each window, drag and drop the splitters that separate the windows. All windows can be moved from the default position. To move views, from the popup menu of the views, select: Move-> View to move one view Move-> Tab Group to move both Property View and Problem View. To move editors, from the popup menu of the Scenario Graphical Editor, select: Move->Editor to move one editor Move-> Tab Group to move all editors opened.
35 / 94
36 / 94
3 Scenarios
3 Scenarios
This section describes the ways that a scenario can be manipulated by the system.
37 / 94
3 Scenarios
38 / 94
3 Scenarios
Execution Modes/Context The Detailed Mode launches a diagnosis execution, specified by the user, on a single network object, at a specific date, for a given periodicity, with a given QoS requirement level (taken from the current working zone). This mode is used to interactively launch the diagnosis from the NPO application. An HTML report is generated. The Synthetic Mode is available for one or many network objects (with parameter associated), and optionally with a date and a periodicity if the input context contains the corresponding variables. The QoS requirement level is required if a date and periodicity are given. This execution mode is similar to a classical view execution for QoS or Parameter in the NPO. The Analysis Desktop basically displays a matrix of Boolean values, but it can also return string values with the status. The Synthetic mode implies that the diagnosis execution stops at the first detected problem. The Tuning Session Mode is used to launch the execution of specific scenarios (called complex rules) that are used to check parameter validity. For more information about the execution of a scenario, refer to Execute Scenario from the NPO User Guide.
Press [ CTRL ] + [ N ]. Use the two page wizard with default values and editable fields that appears (see below) to set up the mandatory preconditions of a scenario.
Figure 35: Create Scenario Wizard A default scenario name is populated based on the current user. The title area displays messages / errors, if any, while creating a scenario.
39 / 94
3 Scenarios
2. Fill in the appropriate fields, as described in the following table. Field Name Scenario Name Owner Access Dictionary Description Name of Scenario to create must be unique. Read-only No Default Value Scenario_<owner>_n
The name of the user who creates the scenario. Access rights for Public or Private Dictionary to which the scenario belongs. (Always a customer dictionary in create mode). Scenario type (Diagnosis or Complex rule) Displays whether the scenario is a system scenario. Note:Creation of system scenarios via editor is not supported.
Type System
No Yes
Severity
Error or Warning Flag, used to discriminate the complex Yes, if rules (Tuning checks) diagnosis scenario Checked, if this scenario is visible in the Analysis Desktop. Unchecked, if this scenario is not visible in the Analysis Desktop except by the Administrator. No Checked
Visible
Validated
Displays whether the user has considered that this scenario is correct and executable. Operator description for node Contains the list of object types from which the user can choose. The items in the list are based on the following rules: If the Type is Complex Rule, all the Object Type in the System are available If the Type is Diagnosis then it displays the object types of those modes for which scenario creation is allowed.
Yes
Unchecked
No No
No
Unchecked
No
Checked
No
Unchecked
No
Unchecked
40 / 94
3 Scenarios
3. If needed, add the appropriate Families. An indicator can belong to a family and sub-family hierarchy. Up to four depths of sub family are currently supported. The table cells are editable dropdown lists, proposing the existing values and it allows the user to add new values. A scroll bar appears if needed. Add new rows by right clicking on a cell and selecting Add Row. Once the mandatory fields are filled in, the [ Next ] and the [ Finish ] buttons are enabled. 4. Click on [ Next ]. The "Trigger Association Page" appears, based on the scenario type selected. For scenario type Diagnosis, the "Trigger Association Page" appears, as shown in the following figure.
A tree containing the list of available Indicators associated with the selected object type appears. For scenario type Complex Rule, the "Trigger Association Page" appears, as shown in the following figure.
41 / 94
3 Scenarios
5. For scenario type Diagnosis, double click on an Indicator from the Indicator Tree to set the selected Indicator.
Note:
To clear the currently selected Indicator, click on [ Clear ]. To search for an indicator: From the popup menu, select Search Fill in the Indicators name in the new window opened and if needed, check one of the search options Click on [ Find Next ].
For scenario type Complex Rule, click on [ Add... ] to set the Parameter. A new window opens (see the following figure), displaying the parameters divided in two trees: Design Parameters Logical Parameters.
6. For scenario type Complex Rule, double click on a Parameter from one of the lists. 7. Click on [ OK ]. The "Associate Parameter(s) with Scenario" window closes.
Note:
Click on [ Remove ] to remove the currently selected Parameter. 8. Click on [ Finish ]. The scenario is created.
42 / 94
3 Scenarios
A question dialog windows appears informing that the external nodes are not copied.
3. Click on [ Yes ]. If the scenario is not currently open in the Graphical Editor, a progress bar appears while the scenario information is retrieved from the server.
Figure 36: Awaiting server response Once the scenario information is retrieved, a two page wizard appears (one page after the other), as shown in the following figure.
43 / 94
3 Scenarios
All the scenario properties are copied, and the following properties are changed by default: The name of the scenario to oldname_copy_n, where oldname is the name of the scenario being copied and n is the copy number The owner is set to the current user name Access rights are set to Public. 4. To modify any Scenario Properties, see Create Scenario (Section 3.2). 5. Click on [ Finish ]. The scenario details are updated only in the local files. The scenario must be saved for it to be reflected on the server.
Figure 37: Dispatching Request to Get Scenario Information Once the scenario information is retrieved, a two page wizard appears (one page after the other) for editing the scenario properties.
44 / 94
3 Scenarios
Figure 38: Edit Scenario Wizard If the scenario is not currently open in the graphical editor (or if the user does not have the privilege to modify the selected scenario), the wizard displays scenario properties with all fields disabled. A user can edit the scenario if: The scenario is not a system scenario, if the user is the owner of the scenario, and if the scenario is not currently locked by another user The user is an administrator and the scenario is not currently locked by another user. 3. Edit the required Scenario Properties, if any (only fields that are enabled); see Create Scenario (Section 3.2). 4. Click on [ Finish ]. The scenario details are updated only in local files. The scenario must be saved for it to be reflected on the server.
45 / 94
3 Scenarios
Note:
Only saved scenario can be marked as validated. A scenario that is linked with an invalid scenario must be tagged invalid. After validating a scenario, if Diagnosis Scenario window was already opened in Analysis Desktop, perform a Refresh All action. To validate a scenario: 1. From the Scenario Tree View, select a scenario to validate. 2. Perform one of the following actions: From the menubar, select Scenario->Validate <Name of Scenario>..., or Click on the icon from the toolbar.
4. Click on [ OK ]. The scenario is validated. The following modifications to a Validated scenario automatically mark the scenario as Invalid: Adding / Deleting Nodes / Links Editing Node Code Modifying Scenario Properties.
46 / 94
3 Scenarios
3. Click on [ Yes ]. If the scenario had been opened in the Graphical Editor, the associate editors (including Node Code Editor) close. The scenario is deleted and removed from the Scenario Tree View.
47 / 94
3 Scenarios
2. Fill in the following fields: Name with the name for the first node Description a short description of the node. 3. Click on [ OK ]. The first node is created and displayed in the Scenario Editor and in the Node Outline View.
3.8.2 Node
To create a standard node: 1. Perform one of the following actions: From the menubar, select Node->Create Node, or Right click in the Scenario Graphical Editor and, from the popup menu, select Node->Create Node..., or Right click in the Node Outline View and, from the popup menu, select Node->Create Node..., or Click on the icon from the Fly-out Palette, then click in the Scenario Graphical Editor, or Click on icon from the toolbar, or
2. Fill in the following fields: Name with the name for the first node Description with a short description of the node. 3. Click on [ OK ]. The node is created and displayed in the Scenario Editor and in the Node Outline View.
48 / 94
3 Scenarios
For Auto completion, press at the same time the [ CTRL ] +[ Space ] keys: When the Name field is empty When the . is entered. 2. Fill in the Name field with the following: External scenario name . Its node name. An example of an external node name is: V2_DR_Copy.V2_DR_Copy_Problem of unsuccessful Directed retry. 3. Click on [ OK ]. The node is created and displayed in the Scenario Editor and in the Node Outline View.
49 / 94
3 Scenarios
Figure 39: Node Property To edit node properties, double click on the property value in the Value Column for: Node Name Description X and Y coordinate. Only these fields are editable. Fill in the new values. To save the new properties, click on [ Enter ].
3.10.1 Link
To create a new link: 1. In the Fly-out Palette in the Scenario Graphical Editor, click on Create a link. The cursor is updated to indicate that a link is selected.
50 / 94
3 Scenarios
2. Move the cursor in the Scenario Graphical Editor Node Area (white area) and put it over a node. The node selected is called Cause node. 3. Move the mouse to the target node (Consequence node). A link is made on the fly. 4. If the consequence node is valid, a dialog box to set link properties appears.
Figure 40: Link Properties Note that the Cause node name and the Consequence node name are displayed in the dialog box. 5. Fill in the Rank of the node with the appropriate value ( a default value appears). 6. If the link created is a cutoff link, then check the Cutoff field. 7. Click on [ OK ]. The link is created and reflected with a directional line between the two nodes ( from the cause node to the consequence node). The rank of the link appears closed to the target node (it is indicated in pink if the Cutoff field was checked).
Figure 41: Link with Iteration Properties Note that the Cause node name and the Consequence node name are displayed in the dialog box. 5. Fill in the Rank of the node with the approbate value (a default value appears).
51 / 94
3 Scenarios
6. If the link created is a cutoff link, then check the Cutoff field. 7. Fill in with the appropriate value: Iteration List Iteration Variable. 8. Click on [ OK ]. The link is created and reflected with a directional dotted blue line between the two nodes (from the cause node to the consequence node). The rank of the link appears closed to the target node (it is indicated in pink if the Cutoff field was checked).
Figure 43: Link Property To edit link properties, double click on the property value in the Value Column for: Rank Cutoff Iteration List ( in case of link with iteration) Iteration Variable ( in case of link with iteration). Only these fields are editable. Fill in the new values. To save the new properties, click on [ Enter ].
52 / 94
3 Scenarios
3. In the Scenario Graphical Editor, perform one of the following actions: From the menubar, select Node->Paste Node As..., or From the popup menu, select Paste Node as..., or Click on the icon from the toolbar.
A new dialog box opens that allows the user to select the type of node to paste (by default standard node).
Note:
Pasting a node as a First Node is possible only when the scenario does not already have a first node. To paste node as an External Node, paste the node as an external node linking to the scenario from which it was copied. Pasting a node as an External Node is possible only when: The current scenario is not the same as the copied node scenario, and The copied node scenario is not a system scenario. 4. Select the type of node, then click on [ OK ]. If the node type selected is External Node, an external node linking to the scenario the node was copied from is created in the existing scenario. Alternatively, the "Create new node" dialog box opens.
53 / 94
3 Scenarios
By default, the fields are filled in: Name with the name of copied node_copy number Description with the short description of the copied node. 5. Fill in the two fields with the appropriate values, then click on [ OK ]. The node is copied and pasted and displayed in the Scenario Graphical Editor and Node Outline View.
3. From the popup menu, select Delete. A new dialog box opens.
4. Click on [ OK ]. The node/link is deleted. If a node is deleted from a scenario, all the links associated to the node are also deleted (the scenario links and the links defined in other scenarios).
54 / 94
55 / 94
Note:
The popup menu available in the Node Code Editor is not used for node code development.
All words that come after the hash character # are considered to be comments.
56 / 94
All the parameters used to define a variable for a node code that are not specified are global and can be reused in its consequence node. They are also called initial context. Examples of global parameters are: object, the identifier of the network object given at the execution context object_list, the list of identifiers of all network object on which the diagnosis is executed.
57 / 94
When executing the scenario, this expression returns the list of all BSC of the given OMC-R at the execution moment. The user can also define local parameters for a variable:
bsc = N_GSM.BSCofOMC_R( omcr19 )
When executing the scenario, this expression returns the list of all BSC of the OMC-R 19. To declare a variable: 1. In the command line, type: variable_name = library_name. A list appears, displaying all the primitives available for that library, in green.
The global parameter related to that primitive appears in parenthesis. If this list disappears, press [ Ctrl+ Space ] to reload the templates. The AutoCompletion feature provides primitives filters once you start typing in the command line to select an item from the dropdown list. Due to the huge number of telecom primitives, the word completion proposition appears only when there is a unique proposition. 2. Double click on the primitive to select it. 3. If needed, fill in the parameters related to that primitive with the appropriate value.
58 / 94
To call a QoS indicator with a context that is not the initial context, use the following syntax:
Ratio_HO = I_GSM.SDCCH_drop_HO_ratio ( value )
The input parameters for radio parameters primitives are: object type The following table lists the possible syntax for the type parameter. Parameter Name OP REF REFMIN REFMAX P FC Meaning Operational Reference Reference Minimum Reference Maximum Planned Forecast
Note:
Usage of FC requires execution based on a Tuning Session, so it can only be used in a complex rule. Example: To get the minimal value of a design parameter, use the following syntax:
P_GSM.TIMER_T11(object, REFMIN)
To get the planned value of a design parameter, use the following syntax:
P_GSM.TIMER_T11(object, P)
59 / 94
get_filtered_children_objects
getObjectExternalId getObjectType
For GSM technology, the prefix is N_GSM. Refer to the following sections for the proposed primitives.
Definition Returns the list of all BSCs that belong to the same OMC-R. Returns the list of all cells that belong to the given BSC. Returns the MFS of the given BSC. Returns the OMC-R of the given BSC.
60 / 94
Name Adjancencies Adjancency FromServing AndTarget Ainterference Probability BSC BTS CellsInCircle
Definition Returns in a list the adjacencies for which the given cell is the serving cell Returns the adjacency from serving cell to target cell if it exists, or UNKNOWN.
Returns the probability of interference between serving cell and target cell, considering that the two cells use adjacent frequencies (D(ARFCN) = 1). Returns the BSC of the cell. Returns the BTS of the cell. Returns the list of cells (possibly empty) that are located inside a circle of specified radius, centred on cell. Returns the list of cells that belong to the BSC of the given cell. Returns the list of cells that belong to the BTS of the given cell. For a split cell, the main BTS is considered. Returns the list of cells that belong to the MFS of the given cell.
CellsOfBSC CellsOfBTS
CellsOfMFS
object object object object1 object2 object object object object type object type
CellsOfOMC_R Returns the list of cells that belong to the OMC-R of the given cell. CellsOfRA Cinterference Probability LA MFSofCell OMC_RofCell ServingCells Returns the list of cells that belong to the Routing Area of the given cell. Returns the probability of interference between serving cell and target cell, considering that the two cells use the same (co-channel) frequency (D(ARFCN) = 0). Returns the Location Area of the cell. Returns the MFS of the cell. Returns the OMCR of the cell. Returns the list of serving cells of a given cell, considering either the planned adjacencies or the operational adjacencies of the network. Returns the list of target cells of given cell c, considering either the planned adjacencies or the operational adjacencies of the network.
TargetCells
61 / 94
Name TRXs
TRXFromIndex Returns the TRX number of the cell (or UNKNOWN). TRX number must be an integer from 1 to n, n being the number of TRX in the cell (available with the primitive Number_Of_TRX).
Definition Returns the serving cell of the adjacency. Returns the target cell of the adjacency.
The thresholdvalue is a numerical value. The object list represents the list of identifiers of all network object on which the diagnosis is executed. The list of operators that can be used in filtering is:
62 / 94
Meaning Greater than Smaller than Equal Greater than or equal Smaller than or equal Not equal
63 / 94
Example: FilterOnQosIndicator(Ec1,"RTCH_duration_avg","=","0")
returns, from the cell list Ec1, a list of cells where the indicator RTCH_duration_avg = 0 for the given date and periodicity. FilterOnParameter(Ec1,"L_RXLEVMIN_UHL","<","-100")
returns, from the cell list Ec1, the list of cells where the parameter L_RXLEVMIN_UHL < -100. Also, the generic primitives that retrieve the data for indicators (customer indicators) and parameters (described below) are available once the Generic library is imported. Name get_indicator Description Retrieves the value of a given indicator for the object on which the scenario is executed Retrieves the values of a list of indicators in a single call for the given list of indicators for the objects on which the scenario is executed Retrieves the value of a given parameter for the object on which the scenario is executed Retrieves the value of a given parameter for the object on which the scenario is executed The given parameter name is the displayed name instead of system name get_parameter_for_tech_ Retrieves the value of a given parameter for the specifyed technology (by the displayed name) for the object on which from_displayed_name the scenario is executed The given parameter name is the displayed name instead of system name get_parameter_list Retrieves the value of a list of parameters in a single call for the given list of parameters for the objects on which the scenario is executed object name tech valueType parameter list object list tech valueType Parameters object name indicatorList objectList object name object name
get_indicator_list
get_parameter
get_parameter_from_ displayed_name
64 / 94
Report whether an element is a member of a set. (Called in response to the expression element in shelf.) Report if a is a subset of b (if every element of set a is also in set b. Return the union of two sets as a new set (i.e. all elements that are in either sets).
For example: list1 = Generic.FilterOnParameter(cells, "Class", "<>", "URBAN") list2 = Generic.FilterOnQosIndicator(cells, "Call_setup_success_rate", ">", "10") list3 = set.intersection(list, list2)
The first list filters and gets cells with Class different of URBAN. The second list gets cell with Call_setup_success_rate > 10. The third list gets only the cells with Class different of URBAN and Call_setup_success_rate > 10.
65 / 94
Note:
In Diagnosis Editor the 10% value is seen as 0.1 value. In internal Diagnosis node code, multiply the indicator with 100 in its formula.
The possible execution results are: pbfound contains the messages associated with the error found in the nodes nopbfound contains the associated messages when no error is found in the nodes unknown contains the associated messages in case there is not enough information (empty list, null variables ...) to give a status for the node. It is not an obligation to have a pbfound or nopbfound in a node. In this case, the node is considered as green.
66 / 94
Execution Results messages are provided as string lists in order to allow providing multiple messages for a node. Example: Test if WAC is active.
As seen in the examples, the output message can also contain variables that are processed during execution.
The variables are indicated with %s symbol inside the message content. After the message, the ways to indicate variables are: % primitive_name % (str(<variable_name>)) . The primitive str() is used to convert a numeral to string. In case there are more than one variables declared inside the message content, after the message content the syntax is: % (variable_1 , variable_2, ... , variabile_n). Highlighting in View is applied for a Diagnosis Executed View (report view), with the following rules: Diagnosis result is unknown - orange
67 / 94
Some traces can still appear in the window even if nothing is defined in case of execution exception.
68 / 94
5 Example Scenarios
5 Example Scenarios
69 / 94
5 Example Scenarios
Figure 44: V2_DR Scenario This scenario is a system scenario that verifies why the Directed Retry feature is not working properly. Scenario properties appear in the Property View
The list of nodes appear in the Node Outline View, once the scenario appears.
70 / 94
5 Example Scenarios
71 / 94
5 Example Scenarios
72 / 94
5 Example Scenarios
73 / 94
5 Example Scenarios
74 / 94
5 Example Scenarios
Figure 45: Scenario V2_DR This scenario is a system scenario that verifies why SDCCH channels are dropped during the signalization phase. Scenario properties are displayed in the Property View.
The list of nodes appear in the Node Outline View, once the scenario appears.
75 / 94
5 Example Scenarios
76 / 94
5 Example Scenarios
77 / 94
5 Example Scenarios
78 / 94
5 Example Scenarios
This scenario is a system scenario that verifies the WAC Cluster Configuration. Scenario properties appear in the Property View.
The list of nodes are displayed in the Node Outline View, once the scenario appears.
79 / 94
5 Example Scenarios
80 / 94
5 Example Scenarios
81 / 94
5 Example Scenarios
82 / 94
6 Introduction to Python
6 Introduction to Python
83 / 94
6 Introduction to Python
6.1.1 Numbers
The interpreter acts as a simple calculator: you can type an expression at it and it writes the value. Expression syntax is straightforward: the operators +, -, * and / work just like in most other languages (for example, Pascal or C); parentheses can be used for grouping. For example: >>> 2+2 4 >>> # This is a comment ...2+2 4 >>> 2+2 # and a comment on the same line as code 4 >>> (30-3*6)/3 4 >>> # Integer division returns the floor: ... 7/3 2 >>> 7/-3 -3 The equal sign ("=") is used to assign a value to a variable. Afterwards, no result appears before the next interactive prompt: >>> a=3 >>> b=3*10 >>> a+b 33
84 / 94
6 Introduction to Python
A value can be assigned to several variables simultaneously: >>> x=y=z=0 #x, y and z have the value 0 >>> x 0 >>> y 0 >>> z 0 There is full support for floating point; operators with mixed type operands convert the integer operand to floating point: >>> 3*1.5/2 2.25 Complex numbers are also supported; imaginary numbers are written with a suffix of "j" or "J". Complex numbers with a nonzero real component are written as "(real+imagj)", or can be created with the "complex(real, imag)" function. >>> 1j*1J (-1+0j) >>> 1j*complex(0,1) (-1+0j) >>> (1+2j)/complex(1,1) (1.5+0.5j) Complex numbers are always represented as two floating point numbers, the real and imaginary part. To extract these parts from a complex number z, use z.real and z.imag. >>> z=2.5+1.5j >>> z.real 2.5 >>> z.imag 1.5 The conversion functions to floating point and integer (float(), int() and long()) do not work for complex numbers. There is no one correct way to convert a complex number to a real number. Use abs(z) to get its magnitude (as a float) or z.real to get its real part. >>> z=3+4j >>> z.real 3 >>> float(z) Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: cant convert complex to float; use abs(z) >>> abs(z) #sqrt(z.real**2+z.imag**2) 5 In interactive mode, the last printed expression is assigned to the variable _. This means that when you are using Python as a desk calculator, it is somewhat easier to continue calculations, for example: >>> a=25 >>> b=0.025 >>> a+b 25.025 >>> round(_,2) 25.02 This variable should be treated as read-only by the user. Do not explicitly assign a value to it you would create an independent local variable with the same name masking the built-in variable with its magic behavior.
85 / 94
6 Introduction to Python
6.1.2 Strings
Besides numbers, Python can also manipulate strings, which can be expressed in several ways. They can be enclosed in single quotes or double quotes: >>> today is Monday today is Monday >>> doesn\t "doesnt" >>> "today is Monday" "today is Monday" >>> "\"today\" is Monday" "today" is Monday >>> "today\" is Monday "today\" is Monday String literals can span multiple lines in several ways. Continuation lines can be used, with a backslash as the last character on the line indicating that the next line is a logical continuation of the line: >>> hello = "This is a rather long string containing\n\ several lines of text just as you would do in C.\n\ Note that whitespace at the beginning of the line is\ significant." print hello Note that newlines still need to be embedded in the string using \n; the newline following the trailing backslash is discarded. This example would print the following: This is a rather long string containing several lines of text just as you would do in C. Note that whitespace at the beginning of the line is\ significant. If we make the string literal a raw string, however, the \n sequences are not converted to newlines, but the backslash at the end of the line, and the newline character in the source, are both included in the string as data. Thus, the example: >>> hello = r"This is a rather long string containing\n\ several lines of text just as you would do in C.\n\ print hello would print: This is a rather long string containing\n\ several lines of text just as you would do in C. Strings can be surrounded in a pair of matching triple-quotes: " " " or . End of lines do not need to be escaped when using triple-quotes, but they are included in the string. >>> print """ Usage: thingy [OPTIONS] - h Display this usage message - H hostname Hostname to connect to """ produces the following output: Usage: thingy [OPTIONS] - h Display this usage message - H hostname Hostname to connect to The interpreter prints the result of string operations in the same way as they are typed for input: inside quotes, and with quotes and other funny characters escaped by backslashes, to show the precise value. The string is enclosed
86 / 94
6 Introduction to Python
in double quotes if the string contains a single quote and no double quotes, else its enclosed in single quotes. Strings can be concatenated (glued together) with the + operator, and repeated with *: >>> word=Good + Morning >>> word GoodMorning >>> < + word*3 + > <GoodMorningGoodMorningGoodMorning Two string literals next to each other are automatically concatenated; the first line above could also have been written "word = Help A"; this only works with two literals, not with arbitrary string expressions: >>> str ing string >>> str.strip() + ing # This is ok string >>> str.strip() ing # This is invalid File "<stdin>", line 1, in ? str.strip() ing SyntaxError: invalid syntax Strings can be subscripted (indexed); like in C, the first character of a string has subscript (index) 0. There is no separate character type; a character is simply a string of size one. Like in Icon, substrings can be specified with the slice notation: two indices separated by a colon. Slice indices have useful defaults; an omitted first index defaults to zero, an omitted second index defaults to the size of the string being sliced. >>> word[2] # the second character o >>> word[0:4] # characters from the first to the fourth Good >>> word[:4] # the first four characters Good >>> word[4:] # everything except the first four characters Morning Unlike a C string, Python strings cannot be changed. Assigning to an indexed position in the string results in an error. However, creating a new string with the combined content is easy and efficient: >>> word[0:4] + Night GoodNight Here is a useful invariant of slice operations: s[:i] + s[i:] equals s. >>> word[:5] + word[5:] GoodMorning Degenerate slice indices are handled as follows: when an index that is too large is replaced by the string size, an upper bound smaller than the lower bound returns an empty string. >>> word[1:50] oodMorning >>> word[15:] >>> word[5:3]
87 / 94
6 Introduction to Python
Indices may be negative numbers, to start counting from the right. Note that -0 is really the same as 0, so it does not count from the right! For example: >>> word[-1] # the last character g >>> word[-2] # the last-but-one character g >>> word[-2:] # the last two characters ng >>> word[:-3] # everything except the last three characters GoodMorn >>> word[-0] # the first character G Out-of-range negative slice indices are truncated, but do not try this for single-element (non-slice) indices: >>> word[-100:] GoodMorning >>> word[-15] # error Traceback (most recent call last): File "<stdin>", line 1, in ? IndexError: string index out of range For non-negative indices, the length of a slice is the difference of the indices, if both are within bounds. For example, the length of word [1:3] is 2. The built-in function len() returns the length of a string: >>> len(word) 11
88 / 94
6 Introduction to Python
that is used in many Western countries, you find it convenient that the lower 256 characters of Unicode are the same as the 256 characters of Latin-1. For experts, there is also a raw mode just like the one for normal strings. You have to prefix the opening quote with ur to have Python use the Raw-Unicode-Escape encoding. It only applies the above \uXXXX conversion if there is an uneven number of backslashes in front of the small u. >>> urGood\u0020Morning ! uGood Morning ! >>> urGood\\u0020Morning ! uGood\\\\u0020Morning ! The raw mode is most useful when you have to enter lots of backslashes, as can be necessary in regular expressions. Apart from these standard encodings, Python provides a whole set of other ways of creating Unicode strings on the basis of a known encoding. The built-in function unicode() provides access to all registered Unicode codecs (COders and DECoders). Some of the more well known encodings which these codecs can convert are Latin-1, ASCII, UTF-8, and UTF-16. The latter two are variable-length encodings that store each Unicode character in one or more bytes. The default encoding is normally set to ASCII, which passes through characters in the range 0 to 127 and rejects any other characters with an error. When a Unicode string is printed, written to a file, or converted with str(), conversion takes place using this default encoding. >>> u"abc" uabc >>> str(u"abc") abc >>> u"" u\xe4\xf6\xfc >>> str(u"") Traceback (most recent call last): File "<stdin>", line 1, in ? UnicodeEncodeError: ascii codec cant encode characters in position 0-2: ordinal not in range(128) To convert a Unicode string into an 8-bit string using a specific encoding, Unicode objects provide an encode() method that takes one argument, the name of the encoding. Lowercase names for encodings are preferred. >>> u"".encode(utf-8) \xc3\xa4\xc3\xb6\xc3\xbc If you have data in a specific encoding and want to produce a corresponding Unicode string from it, you can use the unicode() function with the encoding name as the second argument. >>> unicode(\xc3\xa4\xc3\xb6\xc3\xbc, utf-8) u\xe4\xf6\xfc
89 / 94
6 Introduction to Python
6.1.4 Lists
Python knows a number of compound data types, used to group together other values. The most versatile is the list, which can be written as a list of comma-separated values (items) between square brackets. List items need not all have the same type. >>> a = [spam, eggs, 100, 1234] >>>> a [spam, eggs, 100, 1234] Like string indices, list indices start at 0, and lists can be sliced, concatenated and so on: >>> a[0] spam >>> a[-2] 100 >>> a[1:-1] [eggs, 100] >>> a[:2] + [bacon, 3*3] [spam, eggs, bacon, 9] >>> 2*a[:2] + [End!] [spam, eggs, spam, eggs, End!] Unlike strings, which are immutable, it is possible to change individual elements of a list: a[2] = a[2] + 23 a [spam, eggs, 123, 1234] Assignment to slices is also possible, and this can even change the size of the list or clear it entirely: >>> # replace some items: ... a[0:2] = [1,12] >>> a [1, 12, 123, 1234] >>> # remove some items: ... a[0:2] = [] >>> a [123, 1234] >>> # insert some items: ... a[1:1] = [yes, no] >>> a [123, yes, no, 1234] >>> # insert (a copy of) itself at the beginning ... a[:0] = a >>> a [123, yes, no, 1234, 123,yes, no, 1234 ] >>> # clear the list ... a[:] = [] >>> a [] The built-in function len() also applies to lists: >>> len(a) 8 It is possible the following >>> x = >>> y = to nest lists (create lists containing other lists). Note that in example, y[2] and x: [2, 3, 4] [1, x]
90 / 94
6 Introduction to Python
91 / 94
6 Introduction to Python
>>> while b < 100: ... print b, ... a, b = b, a+b ... 1 1 2 3 5 8 13 21 34 55 89 Note that the interpreter inserts a newline before it prints the next prompt if the last line was not completed.
6.2.2 if Statement
Besides the while statement, Python knows the usual control flow statements known from other languages, with some differnences. The most well-known statement type is the if statement. For example: >>> x = int(raw_input("Please enter an integer: ")) >>> if x < 0: ... x = 0 ... print Negative changed to zero ... elif x == 0: ... print Zero ... elif x == 1 ... print Single ... else: ... print More ... There can be zero or more elif parts, and the else part is optional. The keyword elif is short for else if, and is useful to avoid excessive indentation. An if ... elif ... elif ... sequence is a substitute for the switch or case statements found in other languages.
92 / 94
6 Introduction to Python
93 / 94
6 Introduction to Python
8 equals 2 * 4 9 equals 3 * 3
94 / 94