]>
Commit | Line | Data |
---|---|---|
8bddafc9 | 1 | 1. List of "opaque-type dependent" callback functions per LSA-type. |
2 | ||
3 | <ospf_opaque_lsaN_functab> (N = 9,10,11) | |
4 | | | |
5 | | struct | |
6 | | list struct struct | |
7 | +-> +-------+ listnode listnode | |
8 | | head |-----> +------+ +------ | |
9 | | tail | | next |--------------------> | next | |
10 | | count | /--| prev |<---------------------| prev | |
11 | +-------+ | data |----+ | | |
12 | |///////| +------+ | | |
13 | +-------+ | | |
14 | | | |
15 | struct | | |
16 | ospf_opaque_tabent | | |
17 | +----------------------+ <--+ | |
18 | | opaque_type | | |
19 | +----------------------+ | |
20 | | (Callback functions) | | |
21 | +----------------------+ | |
22 | ||
6b0655a2 | 23 | |
8bddafc9 | 24 | 2. Self-originated Opaque-LSAs per LSA-type. |
25 | ||
26 | 2.1 Type-11 (AS-external) Opaque-LSAs | |
27 | ||
28 | struct | |
29 | ospf | |
30 | +---> +-------------------+ | |
31 | | |///////////////////| | |
32 | | +-------------------+ | |
33 | | | opaque | | |
34 | | +-------------------+ | |
35 | | |///////////////////| | |
36 | | +-------------------+ | |
37 | | | opaque_lsa_self |---+ | |
38 | | +-------------------+ | | |
39 | | |///////////////////| | | |
40 | | +-------------------+ | | |
41 | | | | |
42 | ......|.............................|....................................... | |
43 | : | | Almost common for type-9,10,11 LSA : | |
44 | : | +-----------------------+ : | |
45 | : | | : | |
46 | : | | struct : | |
47 | : | | list struct struct : | |
48 | : | +-> +-------+ listnode listnode : | |
49 | : | | head |-----> +------+ +------ : | |
50 | : | | tail | | next |--------------------> | next : | |
51 | : | | count | /--| prev |<---------------------| prev : | |
52 | : | +-------+ | data |---+ | : | |
53 | : | |///////| +------+ | : | |
54 | : | +-------+ | : | |
55 | : | | : | |
56 | : | struct | : | |
57 | : | opaque_info_per_type | : | |
58 | : | +-------------------+ <--------+ : | |
59 | : | | opaque_type | <------------+ : | |
60 | : | +-------------------+ | : | |
61 | : | | status | | : | |
62 | : | +-------------------+ | : | |
63 | : | | t_opaque_lsa_self | | : | |
64 | : | +-------------------+ | : | |
65 | : +-----| owner | | struct : | |
66 | : +-------------------+ | ospf_opaque_tabent : | |
67 | : | functab |-------------------> +---------------- : | |
68 | : +-------------------+ | | opaque_type : | |
69 | : | id_list |---+ | |(Callback Funcs) : | |
70 | : +-------------------+ | | | : | |
71 | : | | : | |
72 | : +-----------------------+ | : | |
73 | : | | : | |
74 | : | struct | : | |
75 | : | list struct | struct : | |
76 | : +-> +-------+ listnode | listnode : | |
77 | : | head |-----> +------+ | +------ : | |
78 | : | tail | | next |--------------------> | next : | |
79 | : | count | /--| prev |<---------------------| prev : | |
80 | : +-------+ | data |---+ | | : | |
81 | : |///////| +------+ | | : | |
82 | : +-------+ | | : | |
83 | : | | : | |
84 | : struct | | : | |
85 | : opaque_info_per_id | | : | |
86 | : +-------------------+ <--------+ | : | |
87 | : | opaque_id | | : | |
88 | : +-------------------+ | : | |
89 | : | t_opaque_lsa_self | | : | |
90 | : +-------------------+ | : | |
91 | : | opqctl_type |--------------+ : | |
92 | : +-------------------+ : | |
93 | : | lsa |---+ : | |
94 | : +-------------------+ | : | |
95 | : | : | |
96 | : struct | : | |
97 | : ospf_lsa | : | |
98 | : +-------------+ <-------+ : | |
99 | : |/////////////| struct : | |
100 | : +-------------+ lsa_header : | |
101 | : | data |--------------> +-------- : | |
102 | : +-------------+ | : | |
103 | : |/////////////| : | |
104 | : +-------------+ : | |
105 | : +--------| area | : | |
106 | : | +-------------+ : | |
107 | : --- |/////////////| : | |
108 | : +-------------+ : | |
109 | : +-----| oi | : | |
110 | : | +-------------+ : | |
111 | : --- : | |
112 | :..........................................................................: | |
6b0655a2 | 113 | |
8bddafc9 | 114 | 2.2 Type-10 (area-local) Opaque-LSAs |
115 | ||
116 | struct | |
117 | ospf | |
118 | +---------+ <-----------+ | |
119 | |/////////| | | |
120 | +---------+ | | |
121 | | | |
122 | struct | | |
123 | ospf_area | | |
124 | +--+---> +-----------------+ | | |
125 | | | | top |-----+ | |
126 | | | +-----------------+ | |
127 | | | |/////////////////| struct | |
128 | | | +-----------------+ ospf_lsa | |
129 | | | | router_lsa_self |-----------> +--------- | |
130 | | | +-----------------+ | | |
131 | | | | opaque_lsa_self |-----+ | | |
132 | | | +-----------------+ | | |
133 | | | |/////////////////| | | |
134 | | | +-----------------+ | | |
135 | | | | | |
136 | ...|..|.............................|....................................... | |
137 | : | | | Almost common for type-9,10,11 LSA : | |
138 | : | | +-----------------------+ : | |
139 | : | | | : | |
140 | : | | | struct : | |
141 | : | | | list struct struct : | |
142 | : | | +-> +-------+ listnode listnode : | |
143 | : | | | head |-----> +------+ +------ : | |
144 | : | | | tail | | next |--------------------> | next : | |
145 | : | | | count | /--| prev |<---------------------| prev : | |
146 | : | | +-------+ | data |---+ | : | |
147 | : | | |///////| +------+ | : | |
148 | : | | +-------+ | : | |
149 | : | | | : | |
150 | : | | struct | : | |
151 | : | | opaque_info_per_type | : | |
152 | : | | +-------------------+ <--------+ : | |
153 | : | | | opaque_type | <------------+ : | |
154 | : | | +-------------------+ | : | |
155 | : | | | status | | : | |
156 | : | | +-------------------+ | : | |
157 | : | | | t_opaque_lsa_self | | : | |
158 | : | | +-------------------+ | : | |
159 | : | +-----| owner | | struct : | |
160 | : | +-------------------+ | ospf_opaque_tabent : | |
161 | : | | functab |-------------------> +---------------- : | |
162 | : | +-------------------+ | | opaque_type : | |
163 | : | | id_list |---+ | |(Callback Funcs) : | |
164 | : | +-------------------+ | | | : | |
165 | : | | | : | |
166 | : | +-----------------------+ | : | |
167 | : | | | : | |
168 | : | | struct | : | |
169 | : | | list struct | struct : | |
170 | : | +-> +-------+ listnode | listnode : | |
171 | : | | head |-----> +------+ | +------ : | |
172 | : | | tail | | next |--------------------> | next : | |
173 | : | | count | /--| prev |<---------------------| prev : | |
174 | : | +-------+ | data |---+ | | : | |
175 | : | |///////| +------+ | | : | |
176 | : | +-------+ | | : | |
177 | : | | | : | |
178 | : | struct | | : | |
179 | : | opaque_info_per_id | | : | |
180 | : | +-------------------+ <--------+ | : | |
181 | : | | opaque_id | | : | |
182 | : | +-------------------+ | : | |
183 | : | | t_opaque_lsa_self | | : | |
184 | : | +-------------------+ | : | |
185 | : | | opqctl_type |--------------+ : | |
186 | : | +-------------------+ : | |
187 | : | | lsa |---+ : | |
188 | : | +-------------------+ | : | |
189 | : | | : | |
190 | : | struct | : | |
191 | : | ospf_lsa | : | |
192 | : | +-------------+ <-------+ : | |
193 | : | |/////////////| struct : | |
194 | : | +-------------+ lsa_header : | |
195 | : | | data |--------------> +-------- : | |
196 | : | +-------------+ | : | |
197 | : | |/////////////| : | |
198 | : | +-------------+ : | |
199 | : +--------| area | : | |
200 | : +-------------+ : | |
201 | : |/////////////| : | |
202 | : +-------------+ : | |
203 | : +-----| oi | : | |
204 | : | +-------------+ : | |
205 | : --- : | |
206 | :..........................................................................: | |
6b0655a2 | 207 | |
8bddafc9 | 208 | 2.3 Type-9 (link-local) Opaque-LSAs |
209 | ||
210 | struct | |
211 | ospf_area | |
212 | +------> +---------+ <---------+ | |
213 | | |/////////| | | |
214 | | +---------+ | | |
215 | | | | |
216 | | struct | | |
217 | | ospf_interface | | |
218 | | +-+-> +-----------------+ | | |
219 | | | | |/////////////////| | | |
220 | | | | +-----------------+ | | |
221 | | | | | area |---+ | |
222 | | | | +-----------------+ | |
223 | | | | |/////////////////| struct | |
224 | | | | +-----------------+ ospf_lsa | |
225 | | | | |network_lsa_self |-----------> +--------- | |
226 | | | | +-----------------+ | | |
227 | | | | | opaque_lsa_self |-----+ | | |
228 | | | | +-----------------+ | | |
229 | | | | |/////////////////| | | |
230 | | | | +-----------------+ | | |
231 | | | | | | |
232 | ...|..|.|...........................|....................................... | |
233 | : | | | | Almost common for type-9,10,11 LSA : | |
234 | : | | | +-----------------------+ : | |
235 | : | | | | : | |
236 | : | | | | struct : | |
237 | : | | | | list struct struct : | |
238 | : | | | +-> +-------+ listnode listnode : | |
239 | : | | | | head |-----> +------+ +------ : | |
240 | : | | | | tail | | next |--------------------> | next : | |
241 | : | | | | count | /--| prev |<---------------------| prev : | |
242 | : | | | +-------+ | data |---+ | : | |
243 | : | | | |///////| +------+ | : | |
244 | : | | | +-------+ | : | |
245 | : | | | | : | |
246 | : | | | struct | : | |
247 | : | | | opaque_info_per_type | : | |
248 | : | | | +-------------------+ <--------+ : | |
249 | : | | | | opaque_type | <------------+ : | |
250 | : | | | +-------------------+ | : | |
251 | : | | | | status | | : | |
252 | : | | | +-------------------+ | : | |
253 | : | | | | t_opaque_lsa_self | | : | |
254 | : | | | +-------------------+ | : | |
255 | : | | +---| owner | | struct : | |
256 | : | | +-------------------+ | ospf_opaque_tabent : | |
257 | : | | | functab |-------------------> +---------------- : | |
258 | : | | +-------------------+ | | opaque_type : | |
259 | : | | | id_list |---+ | |(Callback Funcs) : | |
260 | : | | +-------------------+ | | | : | |
261 | : | | | | : | |
262 | : | | +-----------------------+ | : | |
263 | : | | | | : | |
264 | : | | | struct | : | |
265 | : | | | list struct | struct : | |
266 | : | | +-> +-------+ listnode | listnode : | |
267 | : | | | head |-----> +------+ | +------ : | |
268 | : | | | tail | | next |--------------------> | next : | |
269 | : | | | count | /--| prev |<---------------------| prev : | |
270 | : | | +-------+ | data |---+ | | : | |
271 | : | | |///////| +------+ | | : | |
272 | : | | +-------+ | | : | |
273 | : | | | | : | |
274 | : | | struct | | : | |
275 | : | | opaque_info_per_id | | : | |
276 | : | | +-------------------+ <--------+ | : | |
277 | : | | | opaque_id | | : | |
278 | : | | +-------------------+ | : | |
279 | : | | | t_opaque_lsa_self | | : | |
280 | : | | +-------------------+ | : | |
281 | : | | | opqctl_type |--------------+ : | |
282 | : | | +-------------------+ : | |
283 | : | | | lsa |---+ : | |
284 | : | | +-------------------+ | : | |
285 | : | | | : | |
286 | : | | struct | : | |
287 | : | | ospf_lsa | : | |
288 | : | | +-------------+ <-------+ : | |
289 | : | | |/////////////| struct : | |
290 | : | | +-------------+ lsa_header : | |
291 | : | | | data |--------------> +-------- : | |
292 | : | | +-------------+ | : | |
293 | : | | |/////////////| : | |
294 | : | | +-------------+ : | |
295 | : +--|-----| area | : | |
296 | : | +-------------+ : | |
297 | : | |/////////////| : | |
298 | : | +-------------+ : | |
299 | : +-----| oi | : | |
300 | : +-------------+ : | |
301 | :..........................................................................: | |
302 | ||
6b0655a2 | 303 | |
8bddafc9 | 304 | 3. Internal structures for MPLS-TE parameter management. |
305 | ||
306 | struct | |
307 | ospf_mpls_te | |
308 | +-------------+ | |
309 | | status | | |
310 | +-------------+ | |
311 | | iflist |---+ | |
312 | +-------------+ | | |
313 | |(Router-TLV) | | | |
314 | +-------------+ | | |
315 | | | |
316 | +---------------------+ | |
317 | | | |
318 | | struct | |
319 | | list struct struct | |
320 | +---> +-------+ listnode listnode | |
321 | | head |-----> +------+ +------ | |
322 | | tail | | next |--------------------> | next | |
323 | | count | /--| prev |<---------------------| prev | |
324 | +-------+ | data |---+ | | |
325 | |///////| +------+ | | |
326 | +-------+ | | |
327 | | | |
328 | +--------------------------------+ | |
329 | | | |
330 | | struct | |
331 | | ospf_mpls_te_linkparms | |
332 | +-> +----------------+ | |
333 | | instance | struct | |
334 | +----------------+ interface | |
335 | | ifp |--------------------> +----------+ | |
336 | +----------------+ +----> |//////////| | |
337 | | area |----+ | +----------+ | |
338 | +----------------+ | | | info |-----+ | |
339 | | flags | | | +----------+ | | |
340 | +----------------+ | | |//////////| | | |
341 | | (Link-TLV) | | | +----------+ | | |
342 | +----------------+ | | | | |
343 | | (Link-SubTLVs) | | | struct | | |
344 | +----------------+ | | ospf_if_info | | |
345 | | | +----------+ <---+ | |
346 | | | |//////////| | |
347 | struct | | +----------+ | |
348 | ospf_area | | | oifs |-----+ | |
349 | +-> +--------------+ <----+ | +----------+ | | |
350 | | |//////////////| | | | |
351 | | +--------------+ | struct | | |
352 | | | route_table | | |
353 | | struct | +-----------+ <--+ | |
354 | | ospf_interface | | route_top | - - - - -. | |
355 | | +--------------+ <----+ | +-----------+ . | |
356 | | |//////////////| | | . | |
357 | | +--------------+ | | struct . | |
358 | | | ifp |------|----------+ route_node . | |
359 | | +--------------+ | +-----------+ < - - - - | |
360 | | |//////////////| | |///////////| | |
361 | | +--------------+ | +-----------+ | |
362 | +---| area | +-----------------| info | | |
363 | +--------------+ +-----------+ | |
364 | |//////////////| |///////////| | |
365 | +--------------+ +-----------+ |