Annotation of embedaddon/quagga/doc/mpls/opaque_lsa.txt, revision 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>