blob: 7d5c7fed417d3711990323d2d70d09859443d778 [file] [log] [blame]
paul8bddafc2002-12-13 21:57:32 +000011. 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
23
242. Self-originated Opaque-LSAs per LSA-type.
25
262.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 :..........................................................................:
113
1142.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 :..........................................................................:
207
2082.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
303
3043. 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 +--------------+ +-----------+