1 1. List of "opaque-type dependent" callback functions per LSA-type.
3 <ospf_opaque_lsaN_functab> (N = 9,10,11)
7 +-> +-------+ listnode listnode
8 | head |-----> +------+ +------
9 | tail | | next |--------------------> | next
10 | count | /--| prev |<---------------------| prev
11 +-------+ | data |----+ |
17 +----------------------+ <--+
19 +----------------------+
20 | (Callback functions) |
21 +----------------------+
24 2. Self-originated Opaque-LSAs per LSA-type.
26 2.1 Type-11 (AS-external) Opaque-LSAs
30 +---> +-------------------+
31 | |///////////////////|
32 | +-------------------+
34 | +-------------------+
35 | |///////////////////|
36 | +-------------------+
37 | | opaque_lsa_self |---+
38 | +-------------------+ |
39 | |///////////////////| |
40 | +-------------------+ |
42 ......|.............................|.......................................
43 : | | Almost common for type-9,10,11 LSA :
44 : | +-----------------------+ :
47 : | | list struct struct :
48 : | +-> +-------+ listnode listnode :
49 : | | head |-----> +------+ +------ :
50 : | | tail | | next |--------------------> | next :
51 : | | count | /--| prev |<---------------------| prev :
52 : | +-------+ | data |---+ | :
53 : | |///////| +------+ | :
57 : | opaque_info_per_type | :
58 : | +-------------------+ <--------+ :
59 : | | opaque_type | <------------+ :
60 : | +-------------------+ | :
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 : +-------------------+ | | | :
72 : +-----------------------+ | :
75 : | list struct | struct :
76 : +-> +-------+ listnode | listnode :
77 : | head |-----> +------+ | +------ :
78 : | tail | | next |--------------------> | next :
79 : | count | /--| prev |<---------------------| prev :
80 : +-------+ | data |---+ | | :
81 : |///////| +------+ | | :
85 : opaque_info_per_id | | :
86 : +-------------------+ <--------+ | :
88 : +-------------------+ | :
89 : | t_opaque_lsa_self | | :
90 : +-------------------+ | :
91 : | opqctl_type |--------------+ :
92 : +-------------------+ :
94 : +-------------------+ | :
98 : +-------------+ <-------+ :
99 : |/////////////| struct :
100 : +-------------+ lsa_header :
101 : | data |--------------> +-------- :
102 : +-------------+ | :
105 : +--------| area | :
106 : | +-------------+ :
107 : --- |/////////////| :
110 : | +-------------+ :
112 :..........................................................................:
114 2.2 Type-10 (area-local) Opaque-LSAs
118 +---------+ <-----------+
124 +--+---> +-----------------+ |
126 | | +-----------------+
127 | | |/////////////////| struct
128 | | +-----------------+ ospf_lsa
129 | | | router_lsa_self |-----------> +---------
130 | | +-----------------+ |
131 | | | opaque_lsa_self |-----+ |
132 | | +-----------------+ |
133 | | |/////////////////| |
134 | | +-----------------+ |
136 ...|..|.............................|.......................................
137 : | | | Almost common for type-9,10,11 LSA :
138 : | | +-----------------------+ :
141 : | | | list struct struct :
142 : | | +-> +-------+ listnode listnode :
143 : | | | head |-----> +------+ +------ :
144 : | | | tail | | next |--------------------> | next :
145 : | | | count | /--| prev |<---------------------| prev :
146 : | | +-------+ | data |---+ | :
147 : | | |///////| +------+ | :
151 : | | opaque_info_per_type | :
152 : | | +-------------------+ <--------+ :
153 : | | | opaque_type | <------------+ :
154 : | | +-------------------+ | :
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 : | +-------------------+ | | | :
166 : | +-----------------------+ | :
169 : | | list struct | struct :
170 : | +-> +-------+ listnode | listnode :
171 : | | head |-----> +------+ | +------ :
172 : | | tail | | next |--------------------> | next :
173 : | | count | /--| prev |<---------------------| prev :
174 : | +-------+ | data |---+ | | :
175 : | |///////| +------+ | | :
179 : | opaque_info_per_id | | :
180 : | +-------------------+ <--------+ | :
181 : | | opaque_id | | :
182 : | +-------------------+ | :
183 : | | t_opaque_lsa_self | | :
184 : | +-------------------+ | :
185 : | | opqctl_type |--------------+ :
186 : | +-------------------+ :
188 : | +-------------------+ | :
192 : | +-------------+ <-------+ :
193 : | |/////////////| struct :
194 : | +-------------+ lsa_header :
195 : | | data |--------------> +-------- :
196 : | +-------------+ | :
197 : | |/////////////| :
198 : | +-------------+ :
199 : +--------| area | :
204 : | +-------------+ :
206 :..........................................................................:
208 2.3 Type-9 (link-local) Opaque-LSAs
212 +------> +---------+ <---------+
218 | +-+-> +-----------------+ |
219 | | | |/////////////////| |
220 | | | +-----------------+ |
222 | | | +-----------------+
223 | | | |/////////////////| struct
224 | | | +-----------------+ ospf_lsa
225 | | | |network_lsa_self |-----------> +---------
226 | | | +-----------------+ |
227 | | | | opaque_lsa_self |-----+ |
228 | | | +-----------------+ |
229 | | | |/////////////////| |
230 | | | +-----------------+ |
232 ...|..|.|...........................|.......................................
233 : | | | | Almost common for type-9,10,11 LSA :
234 : | | | +-----------------------+ :
237 : | | | | list struct struct :
238 : | | | +-> +-------+ listnode listnode :
239 : | | | | head |-----> +------+ +------ :
240 : | | | | tail | | next |--------------------> | next :
241 : | | | | count | /--| prev |<---------------------| prev :
242 : | | | +-------+ | data |---+ | :
243 : | | | |///////| +------+ | :
244 : | | | +-------+ | :
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 : | | +-------------------+ | | | :
262 : | | +-----------------------+ | :
265 : | | | list struct | struct :
266 : | | +-> +-------+ listnode | listnode :
267 : | | | head |-----> +------+ | +------ :
268 : | | | tail | | next |--------------------> | next :
269 : | | | count | /--| prev |<---------------------| prev :
270 : | | +-------+ | data |---+ | | :
271 : | | |///////| +------+ | | :
272 : | | +-------+ | | :
275 : | | opaque_info_per_id | | :
276 : | | +-------------------+ <--------+ | :
277 : | | | opaque_id | | :
278 : | | +-------------------+ | :
279 : | | | t_opaque_lsa_self | | :
280 : | | +-------------------+ | :
281 : | | | opqctl_type |--------------+ :
282 : | | +-------------------+ :
284 : | | +-------------------+ | :
288 : | | +-------------+ <-------+ :
289 : | | |/////////////| struct :
290 : | | +-------------+ lsa_header :
291 : | | | data |--------------> +-------- :
292 : | | +-------------+ | :
293 : | | |/////////////| :
294 : | | +-------------+ :
295 : +--|-----| area | :
296 : | +-------------+ :
297 : | |/////////////| :
298 : | +-------------+ :
301 :..........................................................................:
304 3. Internal structures for MPLS-TE parameter management.
316 +---------------------+
320 +---> +-------+ listnode listnode
321 | head |-----> +------+ +------
322 | tail | | next |--------------------> | next
323 | count | /--| prev |<---------------------| prev
324 +-------+ | data |---+ |
328 +--------------------------------+
331 | ospf_mpls_te_linkparms
332 +-> +----------------+
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 | | +----------+ <---+
347 struct | | +----------+
348 ospf_area | | | oifs |-----+
349 +-> +--------------+ <----+ | +----------+ |
350 | |//////////////| | |
351 | +--------------+ | struct |
353 | struct | +-----------+ <--+
354 | ospf_interface | | route_top | - - - - -.
355 | +--------------+ <----+ | +-----------+ .
356 | |//////////////| | | .
357 | +--------------+ | | struct .
358 | | ifp |------|----------+ route_node .
359 | +--------------+ | +-----------+ < - - - -
360 | |//////////////| | |///////////|
361 | +--------------+ | +-----------+
362 +---| area | +-----------------| info |
363 +--------------+ +-----------+
364 |//////////////| |///////////|
365 +--------------+ +-----------+