Annotation of embedaddon/quagga/doc/mpls/opaque_lsa.txt, revision 1.1.1.2

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: 
1.1.1.2 ! misho      23: 
1.1       misho      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:   :..........................................................................:
1.1.1.2 ! misho     113: 
1.1       misho     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:   :..........................................................................:
1.1.1.2 ! misho     207: 
1.1       misho     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: 
1.1.1.2 ! misho     303: 
1.1       misho     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>