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>