Project

General

Profile

Event Feed » History » Version 1

laforge, 06/22/2018 05:03 PM
initial page importing my text notes on ideas about an event feed

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