Annotation of embedaddon/quagga/doc/mpls/ChangeLog.opaque.txt, revision 1.1.1.1
1.1 misho 1: ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
2: Changes 2001.12.03
3:
4: 1. Bug fixes
5:
6: 1.1 Though a new member "oi" has added to "struct ospf_lsa" to control
7: flooding scope of type-9 Opaque-LSAs, the value was always NULL
8: because no one set it.
9:
10: 1.2 In the function "show_ip_ospf_database_summary()" and "show_lsa_
11: detail_adv_router()", VTY output for type-11 Opaque-LSAs did not
12: work properly.
13:
14: 1.3 URL for the opaque-type assignment reference has changed.
15:
16: 1.4 In the file "ospf_mpls_te.c", printf formats have changed to
17: avoid compiler warning messages; "%lu" -> "%u", "%lx" -> "%x".
18: Note that this hack depends on OS, compiler and their versions.
19:
20: 1.5 One of attached documentation "opaque_lsa.txt" has changed to
21: reflect the latest coding.
22:
23: 2. Feature enhancements
24:
25: 2.1 Knowing that it is an ugly hack, an "officially unallocated"
26: opaque-type value 0 has newly introduced as a "wildcard",
27: which matches to all opaque-type.
28: This value must not be flooded to the network, of course.
29:
30: 2.2 The Opaque-core module makes use of newly introduced hooks to
31: dispatch every LSDB change (LSA installation and deletion) to
32: preregistered opaque users.
33: Therefore, by providing appropriate callback functions as new
34: parameters of "ospf_register_opaque_functab()", an opaque user
35: can refer to every LSA instance to be installed into, or to be
36: deleted from, the LSDB.
37:
38: ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
39: Changes 2001.10.31
40:
41: 1. Bug fixes
42:
43: 1.1 Since each LSA has their own lifetime, they will remain in a
44: routing domain (being stored in LSDB of each router), until their
45: age naturally reach to MaxAge or explicitly being flushed by the
46: originated router. Therefore, if a router restarted with a short
47: downtime, it is possible that previously flooded self-originated
48: LSAs might received if the NSM status is not less than Exchange.
49:
50: There were some problems in the way of handling self-originated
51: Opaque-LSAs if they are contained in a received LSUpd message,
52: but not installed to the local LSDB yet.
53: Regardless of some conditions to start originating Opaque-LSAs
54: (there should be at least one opaque-capable full-state neighbor),
55: the function "ospf_flood()" will be called to flood and install
56: this brand-new looking LSA.
57: As the result, when the NSM of an opaque-capable neighbor gets
58: full, internal state inconsistency happens; a user of Opaque-LSA
59: such as MPLS-TE can refer to self-originated LSAs in the local
60: LSDB, but cannot modify their contents...
61:
62: Above problems have fixed with a policy "flush it from the whole
63: routing domain and keep silent until the flushing completed".
64: By using this sweeping technique, we can be free from confusion
65: caused by self-originated LSAs received via network.
66:
67: 1.2 The function "ospf_opaque_type_name()" contained massive ifdefs
68: corresponding to each "opaque-type".
69: These unnecessary ifdefs are removed completely.
70:
71: 1.3 In the function "ospf_delete_opaque_functab()", there was an
72: improper loop control that causes illegal memory access.
73: Original coding was "next = nextnode (node)".
74:
75: 1.4 The function "ospf_mpls_te_ism_change()" could not handle the
76: case when the ISM changes from Waiting to DR/BDR/Other.
77: So, there was a case that even if one of an ISM become
78: operational and MPLS-TE module has started, the corresponding
79: Opaque-LSA cannot be originated.
80:
81: 1.5 The function "ospf_opaque_lsa_reoriginate_schedule()" did not
82: allow to be called multiple times, simply because handling
83: module for the given "lsa-type & opaque-type" already exists.
84: But this assumption seems to be wrong.
85: Change the policy to allow this function to be called multiple
86: times and let the caller to decide what should do when the
87: corresponding callback function "(* functab->lsa_originator)()"
88: is called.
89:
90: 2. Feature enhancements
91:
92: 2.1 The global bitmap "opaque" has introduced instead of former flag
93: "OpaqueCapable", to store complex conditions to handle Opaque-LSAs.
94:
95: 2.2 The MPLS-TE module now referes to "draft-katz-yeung-ospf-traffic
96: -06.txt", no significant changes with 05 version, though.
97:
98: ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
99: Changes 2001.08.03
100:
101: 1. Bug fixes
102:
103: 1.1 Even if the ospfd started with opaque capability enabled, when
104: the ospfd receives an unknown opaque-type (unregistered by the
105: function "ospf_register_opaque_functab()" beforehand), the LSA
106: was discarded. As the result, only the opaque-LSAs that have
107: commonly registered by opaque-capable ospf routers can be
108: flooded in a routing domain.
109:
110: This behavior has fixed so that arbitrary opaque-type LSAs can
111: be flooded among opaque-capable ospf routers.
112: If the ospfd has opaque-LSA capability but disabled at runtime,
113: received opaque-LSAs can be accepted and registered to LSDB as
114: is, but not be flooded to the network; those opaque LSAs will
115: remain in LSDB until explicitly flushed by incoming LSUpd
116: messages with MaxAge, or their age naturally reaches to MaxAge.
117:
118: 1.2 The function "ospf_register_opaque_functab()" did not check
119: if the entry corresponding to the given "lsa-type, opaque-type"
120: combination already exists or not.
121: This problem has fixed not to allow multiple registration.
122:
123: 1.3 Since type-11 (AS external) LSAs will be flooded beyond areas,
124: there is little relationship between "struct lsa" and "struct
125: area". More specifically, the pointer address "lsa->area" can
126: be NULL if the lsa-type is 11, thus an illegal memory access
127: will happen. This problem has fixed.
128:
129: 1.4 When self-originated opaque-LSAs are received via network and
130: if the corresponding opaque-type functions are not available
131: (they have already deleted) at that time, those LSAs were
132: dropped due to "unknown opaque-type" error.
133: After the problem 1.1 has fixed, those "self-originated" LSAs
134: were registered to LSDB and then flooded to the network, even
135: if the processing functions did not exist...
136:
137: After all, this problem has fixed so that those LSAs should
138: explicitly be flushed from the routing domain immediately, if
139: the processing functions cannot find at that time.
140:
141: 1.5 Some typo have fixed.
142:
143: --- EXAMPLE ---
144: static int
145: opaque_lsa_originate_callback (list funclist, void *lsa_type_dependent)
146: ^^^^^
147: --- EXAMPLE ---
148:
149: 2. Feature enhancements
150:
151: 2.1 According to the description of rfc2328 in section 10.8, any
152: change in the router's optional capabilities should trigger
153: the option re-negotiation procedures with neighbors.
154:
155: --- EXCERPT ---
156: If for some reason the router's optional
157: capabilities change, the Database Exchange procedure should be
158: restarted by reverting to neighbor state ExStart.
159: --- EXCERPT ---
160:
161: For the opaque-capability changes, this feature has implemented.
162: More specifically, if "ospf opaque-lsa" or "no ospf opaque-lsa"
163: VTY command is given at runtime, all self-originated LSAs will
164: be flushed immediately and then all neighbor status will be
165: forced to ExStart by generating SeqNumberMismatch events.
166:
167: 2.1 When we change opaque-capability dynamically (ON -> OFF -> ON),
168: there was no trigger at "OFF->ON" timing to reactivate opaque
169: LSA handling modules (such as MPLS-TE) that have once forcibly
170: stopped at "ON->OFF" timing.
171: Now this dynamic reactivation feature has added.
172:
173: 2.2 The MPLS-TE module now referes to "draft-katz-yeung-ospf-traffic
174: -05.txt", no significant changes with 04 version, though.
175:
176: ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
177: Changes 2001.03.28
178:
179: Initial release of Opaque-LSA/MPLS-TE extensions for the zebra/ospfd.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>