Sophie

Sophie

distrib > Mageia > 1 > x86_64 > by-pkgid > 53d306d827a9f1592405bc21bf43f63e > files > 48

quagga-0.99.18-1.3.mga1.x86_64.rpm

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      |
      +--------------+                        +-----------+
      |//////////////|                        |///////////|
      +--------------+                        +-----------+