1. List of "opaque-type dependent" callback functions per LSA-type.

 <ospf_opaque_lsaN_functab>  (N = 9,10,11)
      |
      |    struct
      |    list            struct                        struct
      +-> +-------+        listnode                      listnode
          | head  |-----> +------+                      +------
          | tail  |       | next |--------------------> | next 
          | count |    /--| prev |<---------------------| prev
          +-------+       | data |----+                 |
          |///////|       +------+    |
          +-------+                   |
                                      |
           struct                     |
           ospf_opaque_tabent         |
          +----------------------+ <--+
          | opaque_type          |
          +----------------------+
          | (Callback functions) |
          +----------------------+


2. Self-originated Opaque-LSAs per LSA-type.

2.1 Type-11 (AS-external) Opaque-LSAs

               struct
               ospf
        +---> +-------------------+
        |     |///////////////////|
        |     +-------------------+
        |     | opaque            |
        |     +-------------------+
        |     |///////////////////|
        |     +-------------------+
        |     | opaque_lsa_self   |---+
        |     +-------------------+   |
        |     |///////////////////|   |
        |     +-------------------+   |
        |                             |
  ......|.............................|.......................................
  :     |                             |   Almost common for type-9,10,11 LSA :
  :     |     +-----------------------+                                      :
  :     |     |                                                              :
  :     |     |    struct                                                    :
  :     |     |    list            struct                        struct      :
  :     |     +-> +-------+        listnode                      listnode    :
  :     |         | head  |-----> +------+                      +------      :
  :     |         | tail  |       | next |--------------------> | next       :
  :     |         | count |    /--| prev |<---------------------| prev       :
  :     |         +-------+       | data |---+                  |            :
  :     |         |///////|       +------+   |                               :
  :     |         +-------+                  |                               :
  :     |                                    |                               :
  :     |      struct                        |                               :
  :     |      opaque_info_per_type          |                               :
  :     |     +-------------------+ <--------+                               :
  :     |     | opaque_type       | <------------+                           :
  :     |     +-------------------+              |                           :
  :     |     | status            |              |                           :
  :     |     +-------------------+              |                           :
  :     |     | t_opaque_lsa_self |              |                           :
  :     |     +-------------------+              |                           :
  :     +-----| owner             |              |       struct              :
  :           +-------------------+              |       ospf_opaque_tabent  :
  :           | functab           |-------------------> +----------------    :
  :           +-------------------+              |      | opaque_type        :
  :           | id_list           |---+          |      |(Callback Funcs)    :
  :           +-------------------+   |          |      |                    :
  :                                   |          |                           :
  :           +-----------------------+          |                           :
  :           |                                  |                           :
  :           |    struct                        |                           :
  :           |    list            struct        |               struct      :
  :           +-> +-------+        listnode      |               listnode    :
  :               | head  |-----> +------+       |              +------      :
  :               | tail  |       | next |--------------------> | next       :
  :               | count |    /--| prev |<---------------------| prev       :
  :               +-------+       | data |---+   |              |            :
  :               |///////|       +------+   |   |                           :
  :               +-------+                  |   |                           :
  :                                          |   |                           :
  :            struct                        |   |                           :
  :            opaque_info_per_id            |   |                           :
  :           +-------------------+ <--------+   |                           :
  :           | opaque_id         |              |                           :
  :           +-------------------+              |                           :
  :           | t_opaque_lsa_self |              |                           :
  :           +-------------------+              |                           :
  :           | opqctl_type       |--------------+                           :
  :           +-------------------+                                          :
  :           | lsa               |---+                                      :
  :           +-------------------+   |                                      :
  :                                   |                                      :
  :            struct                 |                                      :
  :            ospf_lsa               |                                      :
  :           +-------------+ <-------+                                      :
  :           |/////////////|                 struct                         :
  :           +-------------+                 lsa_header                     :
  :           | data        |--------------> +--------                       :
  :           +-------------+                |                               :
  :           |/////////////|                                                :
  :           +-------------+                                                :
  :  +--------| area        |                                                :
  :  |        +-------------+                                                :
  : ---       |/////////////|                                                :
  :           +-------------+                                                :
  :     +-----| oi          |                                                :
  :     |     +-------------+                                                :
  :    ---                                                                   :
  :..........................................................................:

2.2 Type-10 (area-local) Opaque-LSAs

               struct
               ospf
              +---------+ <-----------+
              |/////////|             |
              +---------+             |
                                      |
               struct                 |
               ospf_area              |
     +--+---> +-----------------+     |
     |  |     | top             |-----+
     |  |     +-----------------+
     |  |     |/////////////////|              struct
     |  |     +-----------------+              ospf_lsa
     |  |     | router_lsa_self |-----------> +---------
     |  |     +-----------------+             |
     |  |     | opaque_lsa_self |-----+       |
     |  |     +-----------------+     |
     |  |     |/////////////////|     |
     |  |     +-----------------+     |
     |  |                             |
  ...|..|.............................|.......................................
  :  |  |                             |   Almost common for type-9,10,11 LSA :
  :  |  |     +-----------------------+                                      :
  :  |  |     |                                                              :
  :  |  |     |    struct                                                    :
  :  |  |     |    list            struct                        struct      :
  :  |  |     +-> +-------+        listnode                      listnode    :
  :  |  |         | head  |-----> +------+                      +------      :
  :  |  |         | tail  |       | next |--------------------> | next       :
  :  |  |         | count |    /--| prev |<---------------------| prev       :
  :  |  |         +-------+       | data |---+                  |            :
  :  |  |         |///////|       +------+   |                               :
  :  |  |         +-------+                  |                               :
  :  |  |                                    |                               :
  :  |  |      struct                        |                               :
  :  |  |      opaque_info_per_type          |                               :
  :  |  |     +-------------------+ <--------+                               :
  :  |  |     | opaque_type       | <------------+                           :
  :  |  |     +-------------------+              |                           :
  :  |  |     | status            |              |                           :
  :  |  |     +-------------------+              |                           :
  :  |  |     | t_opaque_lsa_self |              |                           :
  :  |  |     +-------------------+              |                           :
  :  |  +-----| owner             |              |       struct              :
  :  |        +-------------------+              |       ospf_opaque_tabent  :
  :  |        | functab           |-------------------> +----------------    :
  :  |        +-------------------+              |      | opaque_type        :
  :  |        | id_list           |---+          |      |(Callback Funcs)    :
  :  |        +-------------------+   |          |      |                    :
  :  |                                |          |                           :
  :  |        +-----------------------+          |                           :
  :  |        |                                  |                           :
  :  |        |    struct                        |                           :
  :  |        |    list            struct        |               struct      :
  :  |        +-> +-------+        listnode      |               listnode    :
  :  |            | head  |-----> +------+       |              +------      :
  :  |            | tail  |       | next |--------------------> | next       :
  :  |            | count |    /--| prev |<---------------------| prev       :
  :  |            +-------+       | data |---+   |              |            :
  :  |            |///////|       +------+   |   |                           :
  :  |            +-------+                  |   |                           :
  :  |                                       |   |                           :
  :  |         struct                        |   |                           :
  :  |         opaque_info_per_id            |   |                           :
  :  |        +-------------------+ <--------+   |                           :
  :  |        | opaque_id         |              |                           :
  :  |        +-------------------+              |                           :
  :  |        | t_opaque_lsa_self |              |                           :
  :  |        +-------------------+              |                           :
  :  |        | opqctl_type       |--------------+                           :
  :  |        +-------------------+                                          :
  :  |        | lsa               |---+                                      :
  :  |        +-------------------+   |                                      :
  :  |                                |                                      :
  :  |         struct                 |                                      :
  :  |         ospf_lsa               |                                      :
  :  |        +-------------+ <-------+                                      :
  :  |        |/////////////|                 struct                         :
  :  |        +-------------+                 lsa_header                     :
  :  |        | data        |--------------> +--------                       :
  :  |        +-------------+                |                               :
  :  |        |/////////////|                                                :
  :  |        +-------------+                                                :
  :  +--------| area        |                                                :
  :           +-------------+                                                :
  :           |/////////////|                                                :
  :           +-------------+                                                :
  :     +-----| oi          |                                                :
  :     |     +-------------+                                                :
  :    ---                                                                   :
  :..........................................................................:

2.3 Type-9 (link-local) Opaque-LSAs

               struct
               ospf_area
     +------> +---------+ <---------+
     |        |/////////|           |
     |        +---------+           |
     |                              |
     |         struct               |
     |         ospf_interface       |
     |  +-+-> +-----------------+   |
     |  | |   |/////////////////|   |
     |  | |   +-----------------+   |
     |  | |   | area            |---+
     |  | |   +-----------------+
     |  | |   |/////////////////|              struct
     |  | |   +-----------------+              ospf_lsa
     |  | |   |network_lsa_self |-----------> +---------
     |  | |   +-----------------+             |
     |  | |   | opaque_lsa_self |-----+       |
     |  | |   +-----------------+     |
     |  | |   |/////////////////|     |
     |  | |   +-----------------+     |
     |  | |                           |
  ...|..|.|...........................|.......................................
  :  |  | |                           |   Almost common for type-9,10,11 LSA :
  :  |  | |   +-----------------------+                                      :
  :  |  | |   |                                                              :
  :  |  | |   |    struct                                                    :
  :  |  | |   |    list            struct                        struct      :
  :  |  | |   +-> +-------+        listnode                      listnode    :
  :  |  | |       | head  |-----> +------+                      +------      :
  :  |  | |       | tail  |       | next |--------------------> | next       :
  :  |  | |       | count |    /--| prev |<---------------------| prev       :
  :  |  | |       +-------+       | data |---+                  |            :
  :  |  | |       |///////|       +------+   |                               :
  :  |  | |       +-------+                  |                               :
  :  |  | |                                  |                               :
  :  |  | |    struct                        |                               :
  :  |  | |    opaque_info_per_type          |                               :
  :  |  | |   +-------------------+ <--------+                               :
  :  |  | |   | opaque_type       | <------------+                           :
  :  |  | |   +-------------------+              |                           :
  :  |  | |   | status            |              |                           :
  :  |  | |   +-------------------+              |                           :
  :  |  | |   | t_opaque_lsa_self |              |                           :
  :  |  | |   +-------------------+              |                           :
  :  |  | +---| owner             |              |       struct              :
  :  |  |     +-------------------+              |       ospf_opaque_tabent  :
  :  |  |     | functab           |-------------------> +----------------    :
  :  |  |     +-------------------+              |      | opaque_type        :
  :  |  |     | id_list           |---+          |      |(Callback Funcs)    :
  :  |  |     +-------------------+   |          |      |                    :
  :  |  |                             |          |                           :
  :  |  |     +-----------------------+          |                           :
  :  |  |     |                                  |                           :
  :  |  |     |    struct                        |                           :
  :  |  |     |    list            struct        |               struct      :
  :  |  |     +-> +-------+        listnode      |               listnode    :
  :  |  |         | head  |-----> +------+       |              +------      :
  :  |  |         | tail  |       | next |--------------------> | next       :
  :  |  |         | count |    /--| prev |<---------------------| prev       :
  :  |  |         +-------+       | data |---+   |              |            :
  :  |  |         |///////|       +------+   |   |                           :
  :  |  |         +-------+                  |   |                           :
  :  |  |                                    |   |                           :
  :  |  |      struct                        |   |                           :
  :  |  |      opaque_info_per_id            |   |                           :
  :  |  |     +-------------------+ <--------+   |                           :
  :  |  |     | opaque_id         |              |                           :
  :  |  |     +-------------------+              |                           :
  :  |  |     | t_opaque_lsa_self |              |                           :
  :  |  |     +-------------------+              |                           :
  :  |  |     | opqctl_type       |--------------+                           :
  :  |  |     +-------------------+                                          :
  :  |  |     | lsa               |---+                                      :
  :  |  |     +-------------------+   |                                      :
  :  |  |                             |                                      :
  :  |  |      struct                 |                                      :
  :  |  |      ospf_lsa               |                                      :
  :  |  |     +-------------+ <-------+                                      :
  :  |  |     |/////////////|                 struct                         :
  :  |  |     +-------------+                 lsa_header                     :
  :  |  |     | data        |--------------> +--------                       :
  :  |  |     +-------------+                |                               :
  :  |  |     |/////////////|                                                :
  :  |  |     +-------------+                                                :
  :  +--|-----| area        |                                                :
  :     |     +-------------+                                                :
  :     |     |/////////////|                                                :
  :     |     +-------------+                                                :
  :     +-----| oi          |                                                :
  :           +-------------+                                                :
  :..........................................................................:


3. Internal structures for MPLS-TE parameter management.

       struct                         
       ospf_mpls_te
      +-------------+
      | status      |
      +-------------+
      | iflist      |---+
      +-------------+   |
      |(Router-TLV) |   |
      +-------------+   |
                        |
  +---------------------+
  |  
  |      struct                     
  |      list            struct                        struct
  +---> +-------+        listnode                      listnode
        | head  |-----> +------+                      +------
        | tail  |       | next |--------------------> | next 
        | count |    /--| prev |<---------------------| prev
        +-------+       | data |---+                  |
        |///////|       +------+   |
        +-------+                  |
                                   |
  +--------------------------------+
  |
  |    struct
  |    ospf_mpls_te_linkparms
  +-> +----------------+
      | instance       |                       struct
      +----------------+                       interface
      | ifp            |--------------------> +----------+
      +----------------+               +----> |//////////|
      | area           |----+          |      +----------+
      +----------------+    |          |      | info     |-----+
      | flags          |    |          |      +----------+     |
      +----------------+    |          |      |//////////|     |
      | (Link-TLV)     |    |          |      +----------+     |
      +----------------+    |          |                       |
      | (Link-SubTLVs) |    |          |       struct          |
      +----------------+    |          |       ospf_if_info    |
                            |          |      +----------+ <---+
                            |          |      |//////////|
       struct               |          |      +----------+
       ospf_area            |          |      | oifs     |-----+
  +-> +--------------+ <----+          |      +----------+     |
  |   |//////////////|                 |                       |
  |   +--------------+                 |       struct          |
  |                                    |       route_table     |
  |    struct                          |      +-----------+ <--+
  |    ospf_interface                  |      | route_top | - - - - -.
  |   +--------------+ <----+          |      +-----------+          .
  |   |//////////////|      |          |                             .
  |   +--------------+      |          |       struct                .
  |   | ifp          |------|----------+       route_node            .
  |   +--------------+      |                 +-----------+ < - - - - 
  |   |//////////////|      |                 |///////////|
  |   +--------------+      |                 +-----------+
  +---| area         |      +-----------------| info      |
      +--------------+                        +-----------+
      |//////////////|                        |///////////|
      +--------------+                        +-----------+
