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>