Project

General

Profile

Event Feed » History » Version 2

laforge, 06/22/2018 05:03 PM
formatting

1 1 laforge
{{>toc}}
2 2 laforge
3 1 laforge
h1. Event Feed
4
5
General idea: Feed of events pushed out from [each] Osmocom program                                                                                                                                                                                                                                                            
6
7
h2. Events
8
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             
9
h3. FSM creation    
10
                                                                                                                                                 
11
* timestamp                                                                                                                                         
12
* source file (string)
13
* source line (u32)
14
* ptr (u32/u64)
15
* fsm class (string)
16
* ID (string)
17
* parent ptr (if any)
18
19
h3. FSM event
20
21
* timestamp
22
* source file (string)
23
* source line (u32)
24
* ptr (u32/64)
25
* event number (u8/32)
26
* state number (u8/32)
27
* decoded/interpreted event payload? tlv?
28
29
h3. FSM state change
30
31
* timestamp
32
* source file (string)
33
* source line (u32)
34
* ptr (u32/64)
35
* old state number (u8/32)
36
* new state number (u8/32)
37
* timer number (int)
38
* timer timeout (u32)
39
** optional. old timer could also remain running!
40
41
h3. FSM termination
42
43
* timestamp
44
* source file (string)
45
* source line (u32)
46
* ptr (u32/u64)
47
* termination cause
48
49
h3. FSM rename
50
51
* timestamp
52
* source file (string)
53
* source line (u32)
54
* ptr (u32/u64)
55
* old id (string) ?
56
* new id (string)
57
58
h3. FSM reparent (change or unlink)
59
60
* timestamp
61
* ptr (u32/u64)
62
* old parent ptr (u32/u64)
63
* new parent ptr (u32/u64)
64
65
h3. non-FSM events
66
67
* measurement reports (bts/bsc)
68
* "jolly fsm" like LAPDm, CC FSMs -> maybe convert them?
69
* OsmoPCU: TBF / resoure block allocations per frame number
70
** probably needs some quite different handling?
71
72
73
h2. filtering
74
75
* ability to enable/disable generation of events per FSM class [or instance?]
76
* ability to do retroactive filtering in the visualization tool
77
78
h2. format / encoding 
79
80
* don't generate JSON directly, let's avoid all the string encoding
81
* use CTRL or other interface to query string tables of FSM events and FSM states at runtime
82
* external program can use string tables + binary protocol to generate JSON feed for browser
83
* external program can collect/aggregate feeds from multiple osmocom programs
84
85
h2. visual representation
86
87
* list of instances per FSM class
88
** sort it by "most recent", "ID" or "will expire soonest"
89
* history / time line for each FSM instance
90
* relationship of parent/child FSMs, maybe some kind of tree structure?
91
* show FSMs of different osmocom network elements in one view, i.e. BTS+BSC+MSC
92
93
94
h2. misc ideas
95
96
* pass out ptr/addr as u32/u64 to uniquely identify FSM
97
** string ID would then only be needed during creation and rename
98
** FSM class would then only be needed during creation
99
** u32/u64 would be unique identifier for all FSM instances inside one osmo-* program
100
* generate "FSM create" events with current state at start-up (optionally?)
Add picture from clipboard (Maximum size: 48.8 MB)