Annotation of embedaddon/quagga/doc/mpls/opaque_lsa.txt, revision 1.1.1.1
1.1 misho 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:
23:
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: :..........................................................................:
113:
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: :..........................................................................:
207:
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:
303:
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: +--------------+ +-----------+
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>