Return to opaque_lsa.txt CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / quagga / doc / mpls |
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: +--------------+ +-----------+