nexmon – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 EPAN CHILDREN
2  
3 This document is a work in progress.
4  
5 This document describes a potential interface between a master process and one or more working children.
6 The goal is to have along-running epan process without the troubles of epan reinit (leaks, mis-reinits, ...).
7 Working children are spawn to capture or read files, then terminated.
8 The long running parent process initializes epan and forks children that require no further initialization to run.
9  
10 epan_child.h in the root directory describes the C interface.
11  
12  
13 Appendix A
14 ECHLD PROTOCOL INTERACTION DIAGRAMS
15  
16 parent child dumpcap
17 | | |
18  
19  
20 A.1. creation
21 new_child() ---------->|
22 |<-----HELLO------|
23 IDLE
24  
25  
26 A.2. keepalive
27 A.2.1 p->c
28 ANY_STATE
29 |-------PING----->|
30 |<------PONG------|
31 SAME_STATE
32 A.2.2 c->p
33 ANY_STATE
34 |<------PING------|
35 |-------PONG----->|
36 SAME_STATE
37  
38  
39 A.3. destruction
40 A.3.1 normal
41 ANY_STATE
42 |---CLOSE_CHILD-->|
43 |<----CLOSING-----|
44 DYING
45 |<-- SIG_CHLD
46 delete_child()
47  
48 A.3.2 fatal error
49 ANY_STATE
50 |<-----ERROR------| (fatal_err,"reason")
51 |<---SIG_CHLD
52 delete_child()
53  
54 A.3.3 crash
55 ANY_STATE
56 |<---SIG_CHLD
57 delete_child()
58  
59  
60  
61 A.4. getting current dir
62 ANY_STATE
63 |-------PWD------>|
64 |<------CWD-------| (dirname)
65 SAME_STATE
66  
67  
68 A.5. changing current dir
69 A.5.1 dir changed ok
70 ANY_STATE
71 |------CHDIR----->| (dirname)
72 |<------CWD-------| (dirname)
73 SAME_STATE
74 A.5.2 dir changed ko
75 ANY_STATE
76 |------CHDIR----->| (dirname)
77 |<-----ERROR------| (cannot_cd, "reason")
78 SAME_STATE
79  
80 A.6. listing current directory
81 A.6.1 file list ok
82 ANY_STATE
83 |----LIST_FILES-->| ("*.*"")
84 |<---FILE_INFO----| (filename, format, encap, num_pkts, ...);
85 |<---FILE_INFO----| (filename, format, encap, num_pkts, ...);
86 .....
87 |<---FILE_INFO----| (filename, format, encap, num_pkts, ...);
88 SAME_STATE
89 A.6.2 file list ko
90 ANY_STATE
91 |----LIST_FILES-->| ("*.*"")
92 |<-----ERROR------| (no_files, "reason")
93 SAME_STATE
94  
95  
96 A.7. opening a file
97 A.7.1 opened ok
98 IDLE
99 |----OPEN_FILE---->| (filename, ...)
100 |<---FILE_OPENED---| (dirname)
101 READING
102 A.7.2 not opened
103 IDLE
104 |----OPEN_FILE---->| (filename, ...)
105 |<-----ERROR-------| (cannot_open, "reason")
106 IDLE
107  
108  
109 A.8. saving a file
110 A.8.1 save ok
111 READING/CAPTURING/DONE
112 |-----SAVE_FILE---->| ("new_filename",opts,...)
113 |<----FILE_SAVED----| (24, tree)
114 SAME_STATE
115  
116 A.8.1 save ko
117 READING/CAPTURING/DONE
118 |-----SAVE_FILE---->| ("new_filename",opts,...)
119 |<------ERROR-------| (cannot_save, "reason")
120 SAME_STATE
121  
122  
123 A.9. listing interfaces
124 A.9.1 intf list ok
125 IDLE
126 |--LIST_INTERFACES-->| ("*.*"")
127 | |-------????------>|
128 | |<------????-------|
129 |<--INTERFACE_INFO---| (name, param1=val1, ...)
130 |<--INTERFACE_INFO---| (name, param1=val1, ...)
131 .....
132 |<--INTERFACE_INFO---| (name, param1=val1, ...)
133 IDLE
134 A.9.2 intf list ko
135 |--LIST_INTERFACES-->| ("*.*"")
136 | |-------????------>|
137 | |<------????-------|
138 |<------ERROR-------| (list_intf, "reason")
139  
140  
141 A.10. opening an interface
142 A.10.1 interface opened ok
143 IDLE
144 |---OPEN_INTERFACE-->|
145 | |-------????------>|
146 | |<------????-------|
147 |<--INTERFACE_OPENED-|
148 READY
149  
150 A.10.2 interface open failure
151 IDLE
152 |--OPEN_INTERFACE--->|
153 | |-------????------>|
154 | |<------????-------|
155 |<-------ERROR-------| (intf, "reason")
156 IDLE
157  
158  
159 A.11. starting capture
160 A.11.1 started capture ok
161 READY
162 |---START_CAPTURE--->|
163 | |-------????------>|
164 | |<------????-------|
165 |<-CAPTURE_STARTED---|
166 IN_CAPTURE
167 A.11.2 capture start failure
168 READY
169 |----START_CAPTURE-->|
170 | |-------????------>|
171 | |<------????-------|
172 |<-------ERROR-------| (cannot_start, "reason")
173 READY
174  
175 A.12. capturing or reading
176 IN_CAPTURE/READING
177 | |<------????-------|
178 |<----PACKET_SUM-----| (framenum, columns)
179 IN_CAPTURE
180  
181 A.13 getting packet details
182 A.13.1 just frame
183 IN_CAPTURE/READING
184 |----GET_PACKETS--->| (framelist)
185 |<-----PACKET-------| (1, tree)
186 |<-----BUFFER-------| ("1", tvb)
187 |<-----PACKET-------| (2, tree)
188 |<-----BUFFER-------| ("2", tvb)
189 SAME_STATE
190  
191 A.13.2 frame with reassembled buffer
192 IN_CAPTURE/READING/DONE
193 |----GET_PACKETS--->| (framelist)
194 |<-----PACKET-------| (framenum, tree)
195 |<-----BUFFER-------| ("framenum", tvb)
196 |<-----BUFFER-------| ("reas_num", tvb)
197 SAME_STATE
198  
199  
200 A.13.3 frame with known reassembled buffer
201 IN_CAPTURE/READING/DONE
202 |<-----PACKET-------| (framenum+N, tree)
203 |<-----BUFFER-------| ("framenum+N", tvb)
204 |<-----BUFFER-------| ("reas_num", NULL)
205 SAME_STATE
206  
207 A.13.4 buffer request (e.g. un-cached buffer)
208 IN_CAPTURE/READING/DONE
209 |------GET_BUF----->| (bufname)
210 |<-----BUFFER-------| (bufname, NULL)
211 SAME_STATE
212  
213 A.14 stpping capture
214 IN_CAPTURE
215 |---STOP_CAPTURE--->|
216 |<-CAPTURE_STOPPED--|
217 DONE
218  
219  
220 A.15. done reading
221 READING
222 |<-- EOF
223 |<--------EOF--------|
224 DONE
225  
226 A.16 setting a note
227 A.16.1 note set ok
228 IN_CAPTURE/READING/DONE
229 |----ADD_NOTE------>| (framenum,note)
230 |<----NOTE_ADDED----|
231 SAME_STATE
232 A.16.2 note set failure
233 IN_CAPTURE/READING/DONE
234 |----ADD_NOTE------>| (framenum,note)
235 |<----NOTE_ADDED----|
236 SAME_STATE
237  
238 A.17 applying a filter
239 IN_CAPTURE/READING/DONE
240 |---APPLY_FILTER--->| (dfilter_str)
241 |<---PACKET_LIST----| (Packet-Range)
242 |<---PACKET_LIST----| (Packet-Range)
243 SAME_STATE
244  
245  
246 A.18 setting a filter
247 IDLE
248 |-----SET_FILTER---->| (dfilter_str)
249 |<---FILTER_SET------|
250 IDLE
251