mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-04-28 13:20:12 +00:00
"Masahiko Endo" < endo @ suri . co . jp >
- [zebra 15475] - MPLS-TE docs
This commit is contained in:
parent
0efa4d57e3
commit
8bddafc9d4
179
doc/mpls/ChangeLog.opaque.txt
Normal file
179
doc/mpls/ChangeLog.opaque.txt
Normal file
@ -0,0 +1,179 @@
|
||||
----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
|
||||
Changes 2001.12.03
|
||||
|
||||
1. Bug fixes
|
||||
|
||||
1.1 Though a new member "oi" has added to "struct ospf_lsa" to control
|
||||
flooding scope of type-9 Opaque-LSAs, the value was always NULL
|
||||
because no one set it.
|
||||
|
||||
1.2 In the function "show_ip_ospf_database_summary()" and "show_lsa_
|
||||
detail_adv_router()", VTY output for type-11 Opaque-LSAs did not
|
||||
work properly.
|
||||
|
||||
1.3 URL for the opaque-type assignment reference has changed.
|
||||
|
||||
1.4 In the file "ospf_mpls_te.c", printf formats have changed to
|
||||
avoid compiler warning messages; "%lu" -> "%u", "%lx" -> "%x".
|
||||
Note that this hack depends on OS, compiler and their versions.
|
||||
|
||||
1.5 One of attached documentation "opaque_lsa.txt" has changed to
|
||||
reflect the latest coding.
|
||||
|
||||
2. Feature enhancements
|
||||
|
||||
2.1 Knowing that it is an ugly hack, an "officially unallocated"
|
||||
opaque-type value 0 has newly introduced as a "wildcard",
|
||||
which matches to all opaque-type.
|
||||
This value must not be flooded to the network, of course.
|
||||
|
||||
2.2 The Opaque-core module makes use of newly introduced hooks to
|
||||
dispatch every LSDB change (LSA installation and deletion) to
|
||||
preregistered opaque users.
|
||||
Therefore, by providing appropriate callback functions as new
|
||||
parameters of "ospf_register_opaque_functab()", an opaque user
|
||||
can refer to every LSA instance to be installed into, or to be
|
||||
deleted from, the LSDB.
|
||||
|
||||
----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
|
||||
Changes 2001.10.31
|
||||
|
||||
1. Bug fixes
|
||||
|
||||
1.1 Since each LSA has their own lifetime, they will remain in a
|
||||
routing domain (being stored in LSDB of each router), until their
|
||||
age naturally reach to MaxAge or explicitly being flushed by the
|
||||
originated router. Therefore, if a router restarted with a short
|
||||
downtime, it is possible that previously flooded self-originated
|
||||
LSAs might received if the NSM status is not less than Exchange.
|
||||
|
||||
There were some problems in the way of handling self-originated
|
||||
Opaque-LSAs if they are contained in a received LSUpd message,
|
||||
but not installed to the local LSDB yet.
|
||||
Regardless of some conditions to start originating Opaque-LSAs
|
||||
(there should be at least one opaque-capable full-state neighbor),
|
||||
the function "ospf_flood()" will be called to flood and install
|
||||
this brand-new looking LSA.
|
||||
As the result, when the NSM of an opaque-capable neighbor gets
|
||||
full, internal state inconsistency happens; a user of Opaque-LSA
|
||||
such as MPLS-TE can refer to self-originated LSAs in the local
|
||||
LSDB, but cannot modify their contents...
|
||||
|
||||
Above problems have fixed with a policy "flush it from the whole
|
||||
routing domain and keep silent until the flushing completed".
|
||||
By using this sweeping technique, we can be free from confusion
|
||||
caused by self-originated LSAs received via network.
|
||||
|
||||
1.2 The function "ospf_opaque_type_name()" contained massive ifdefs
|
||||
corresponding to each "opaque-type".
|
||||
These unnecessary ifdefs are removed completely.
|
||||
|
||||
1.3 In the function "ospf_delete_opaque_functab()", there was an
|
||||
improper loop control that causes illegal memory access.
|
||||
Original coding was "next = nextnode (node)".
|
||||
|
||||
1.4 The function "ospf_mpls_te_ism_change()" could not handle the
|
||||
case when the ISM changes from Waiting to DR/BDR/Other.
|
||||
So, there was a case that even if one of an ISM become
|
||||
operational and MPLS-TE module has started, the corresponding
|
||||
Opaque-LSA cannot be originated.
|
||||
|
||||
1.5 The function "ospf_opaque_lsa_reoriginate_schedule()" did not
|
||||
allow to be called multiple times, simply because handling
|
||||
module for the given "lsa-type & opaque-type" already exists.
|
||||
But this assumption seems to be wrong.
|
||||
Change the policy to allow this function to be called multiple
|
||||
times and let the caller to decide what should do when the
|
||||
corresponding callback function "(* functab->lsa_originator)()"
|
||||
is called.
|
||||
|
||||
2. Feature enhancements
|
||||
|
||||
2.1 The global bitmap "opaque" has introduced instead of former flag
|
||||
"OpaqueCapable", to store complex conditions to handle Opaque-LSAs.
|
||||
|
||||
2.2 The MPLS-TE module now referes to "draft-katz-yeung-ospf-traffic
|
||||
-06.txt", no significant changes with 05 version, though.
|
||||
|
||||
----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
|
||||
Changes 2001.08.03
|
||||
|
||||
1. Bug fixes
|
||||
|
||||
1.1 Even if the ospfd started with opaque capability enabled, when
|
||||
the ospfd receives an unknown opaque-type (unregistered by the
|
||||
function "ospf_register_opaque_functab()" beforehand), the LSA
|
||||
was discarded. As the result, only the opaque-LSAs that have
|
||||
commonly registered by opaque-capable ospf routers can be
|
||||
flooded in a routing domain.
|
||||
|
||||
This behavior has fixed so that arbitrary opaque-type LSAs can
|
||||
be flooded among opaque-capable ospf routers.
|
||||
If the ospfd has opaque-LSA capability but disabled at runtime,
|
||||
received opaque-LSAs can be accepted and registered to LSDB as
|
||||
is, but not be flooded to the network; those opaque LSAs will
|
||||
remain in LSDB until explicitly flushed by incoming LSUpd
|
||||
messages with MaxAge, or their age naturally reaches to MaxAge.
|
||||
|
||||
1.2 The function "ospf_register_opaque_functab()" did not check
|
||||
if the entry corresponding to the given "lsa-type, opaque-type"
|
||||
combination already exists or not.
|
||||
This problem has fixed not to allow multiple registration.
|
||||
|
||||
1.3 Since type-11 (AS external) LSAs will be flooded beyond areas,
|
||||
there is little relationship between "struct lsa" and "struct
|
||||
area". More specifically, the pointer address "lsa->area" can
|
||||
be NULL if the lsa-type is 11, thus an illegal memory access
|
||||
will happen. This problem has fixed.
|
||||
|
||||
1.4 When self-originated opaque-LSAs are received via network and
|
||||
if the corresponding opaque-type functions are not available
|
||||
(they have already deleted) at that time, those LSAs were
|
||||
dropped due to "unknown opaque-type" error.
|
||||
After the problem 1.1 has fixed, those "self-originated" LSAs
|
||||
were registered to LSDB and then flooded to the network, even
|
||||
if the processing functions did not exist...
|
||||
|
||||
After all, this problem has fixed so that those LSAs should
|
||||
explicitly be flushed from the routing domain immediately, if
|
||||
the processing functions cannot find at that time.
|
||||
|
||||
1.5 Some typo have fixed.
|
||||
|
||||
--- EXAMPLE ---
|
||||
static int
|
||||
opaque_lsa_originate_callback (list funclist, void *lsa_type_dependent)
|
||||
^^^^^
|
||||
--- EXAMPLE ---
|
||||
|
||||
2. Feature enhancements
|
||||
|
||||
2.1 According to the description of rfc2328 in section 10.8, any
|
||||
change in the router's optional capabilities should trigger
|
||||
the option re-negotiation procedures with neighbors.
|
||||
|
||||
--- EXCERPT ---
|
||||
If for some reason the router's optional
|
||||
capabilities change, the Database Exchange procedure should be
|
||||
restarted by reverting to neighbor state ExStart.
|
||||
--- EXCERPT ---
|
||||
|
||||
For the opaque-capability changes, this feature has implemented.
|
||||
More specifically, if "ospf opaque-lsa" or "no ospf opaque-lsa"
|
||||
VTY command is given at runtime, all self-originated LSAs will
|
||||
be flushed immediately and then all neighbor status will be
|
||||
forced to ExStart by generating SeqNumberMismatch events.
|
||||
|
||||
2.1 When we change opaque-capability dynamically (ON -> OFF -> ON),
|
||||
there was no trigger at "OFF->ON" timing to reactivate opaque
|
||||
LSA handling modules (such as MPLS-TE) that have once forcibly
|
||||
stopped at "ON->OFF" timing.
|
||||
Now this dynamic reactivation feature has added.
|
||||
|
||||
2.2 The MPLS-TE module now referes to "draft-katz-yeung-ospf-traffic
|
||||
-05.txt", no significant changes with 04 version, though.
|
||||
|
||||
----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * ----- * -----
|
||||
Changes 2001.03.28
|
||||
|
||||
Initial release of Opaque-LSA/MPLS-TE extensions for the zebra/ospfd.
|
90
doc/mpls/cli_summary.txt
Normal file
90
doc/mpls/cli_summary.txt
Normal file
@ -0,0 +1,90 @@
|
||||
Summary of CLI commands, expanded for Opaque-LSA/MPLS-TE.
|
||||
---------------------------------------------------------
|
||||
|
||||
router>
|
||||
|
||||
show ip ospf database (asbr-summary|external|max-age|network|router|self-originate|summary|opaque-link|opaque-area|opaque-external)
|
||||
|
||||
show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) (self-originate|)
|
||||
|
||||
show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) A.B.C.D
|
||||
|
||||
show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) A.B.C.D (self-originate|)
|
||||
|
||||
show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) A.B.C.D adv-router A.B.C.D
|
||||
|
||||
show ip ospf database (asbr-summary|external|network|router|summary|opaque-link|opaque-area|opaque-external) adv-router A.B.C.D
|
||||
|
||||
--> Add database items: opaque-link, opaque-area, opaque-external
|
||||
|
||||
show mpls-te interface [INTERFACE]
|
||||
|
||||
--> Show current MPLS-TE link-TLV parameters.
|
||||
If [INTERFACE] is omitted, all interfaces will be displayed.
|
||||
|
||||
show mpls-te router
|
||||
|
||||
--> Show current MPLS-TE Router-TLV parameters.
|
||||
|
||||
router> enable
|
||||
router#
|
||||
router# configure terminal
|
||||
router(config)# interface [INTERFACE]
|
||||
router(config-if)#
|
||||
|
||||
mpls-te link max-bw BANDWIDTH
|
||||
|
||||
--> Set MPLS-TE link-TLV parameter: Maximum Bandwidth (Bytes/sec).
|
||||
In integer or floating point format (1000, or 1.0e3)
|
||||
|
||||
mpls-te link max-rsv-bw BANDWIDTH
|
||||
|
||||
--> Set MPLS-TE link-TLV parameter: Maximum Reservable Bandwidth (Bytes/sec).
|
||||
In integer or floating point format (1000, or 1.0e3)
|
||||
|
||||
mpls-te link metric <0-4294967295>
|
||||
|
||||
--> Set MPLS-TE link-TLV parameter: MPLS-TE metric.
|
||||
|
||||
mpls-te link rsc-clsclr BITPATTERN
|
||||
|
||||
--> Set MPLS-TE link-TLV parameter: Resource Class/Color.
|
||||
In 32-bit hexadecimal format, with leading "0x" (0x0 - 0xffffffff)
|
||||
|
||||
mpls-te link unrsv-bw <0-7> BANDWIDTH
|
||||
|
||||
--> Set MPLS-TE link-TLV parameter: Unreserved Bandwidth (Bytes/sec).
|
||||
In integer or floating point format (1000, or 1.0e3)
|
||||
|
||||
router(config-if)# exit
|
||||
router(config)# router ospf
|
||||
router(config-router)#
|
||||
|
||||
mpls-te
|
||||
|
||||
--> Enable MPLS-TE functionality.
|
||||
Note that master-switch "ospf opaque-lsa" must also be specified.
|
||||
|
||||
mpls-te on
|
||||
|
||||
--> Alias of "mpls-te" command.
|
||||
|
||||
mpls-te router-address A.B.C.D
|
||||
|
||||
--> Set MPLS-TE Router-TLV parameter: Router Address.
|
||||
|
||||
no mpls-te
|
||||
|
||||
--> Disable MPLS-TE functionality.
|
||||
|
||||
no ospf opaque-lsa
|
||||
|
||||
--> Disable Opaque-LSAs capability.
|
||||
This node behaves Opaque-incapable node.
|
||||
|
||||
ospf opaque-lsa
|
||||
|
||||
--> Enable Opaque-LSAs capability.
|
||||
This is the master-switch to make this node Opaque-capable.
|
||||
|
||||
router# exit
|
365
doc/mpls/opaque_lsa.txt
Normal file
365
doc/mpls/opaque_lsa.txt
Normal file
@ -0,0 +1,365 @@
|
||||
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 |
|
||||
+--------------+ +-----------+
|
||||
|//////////////| |///////////|
|
||||
+--------------+ +-----------+
|
75
doc/mpls/ospfd.conf
Normal file
75
doc/mpls/ospfd.conf
Normal file
@ -0,0 +1,75 @@
|
||||
!
|
||||
! Zebra configuration saved from vty
|
||||
! 2001/03/16 22:07:53
|
||||
!
|
||||
hostname HOSTNAME
|
||||
password PASSWORD
|
||||
log file /var/log/ospfd.log
|
||||
!
|
||||
debug ospf ism
|
||||
debug ospf nsm
|
||||
debug ospf lsa
|
||||
debug ospf zebra
|
||||
debug ospf event
|
||||
debug ospf packet all detail
|
||||
!
|
||||
!
|
||||
interface fxp0
|
||||
ip ospf hello-interval 60
|
||||
ip ospf dead-interval 240
|
||||
mpls-te link metric 999
|
||||
mpls-te link max-bw 1.25e+06
|
||||
mpls-te link max-rsv-bw 1.25e+06
|
||||
mpls-te link unrsv-bw 0 1.25e+06
|
||||
mpls-te link unrsv-bw 1 1.25e+06
|
||||
mpls-te link unrsv-bw 2 1.25e+06
|
||||
mpls-te link unrsv-bw 3 1.25e+06
|
||||
mpls-te link unrsv-bw 4 1.25e+06
|
||||
mpls-te link unrsv-bw 5 1.25e+06
|
||||
mpls-te link unrsv-bw 6 1.25e+06
|
||||
mpls-te link unrsv-bw 7 1.25e+06
|
||||
mpls-te link rsc-clsclr 0xab
|
||||
!
|
||||
interface de1
|
||||
ip ospf hello-interval 60
|
||||
ip ospf dead-interval 240
|
||||
mpls-te link metric 111
|
||||
mpls-te link max-bw 1.25e+06
|
||||
mpls-te link max-rsv-bw 1.25e+06
|
||||
mpls-te link unrsv-bw 0 1.25e+06
|
||||
mpls-te link unrsv-bw 1 1.25e+06
|
||||
mpls-te link unrsv-bw 2 1.25e+06
|
||||
mpls-te link unrsv-bw 3 1.25e+06
|
||||
mpls-te link unrsv-bw 4 1.25e+06
|
||||
mpls-te link unrsv-bw 5 1.25e+06
|
||||
mpls-te link unrsv-bw 6 1.25e+06
|
||||
mpls-te link unrsv-bw 7 1.25e+06
|
||||
mpls-te link rsc-clsclr 0xcd
|
||||
!
|
||||
interface de0
|
||||
mpls-te link metric 0
|
||||
mpls-te link rsc-clsclr 0x0
|
||||
!
|
||||
interface lp0
|
||||
ip ospf network point-to-point
|
||||
!
|
||||
interface tun0
|
||||
ip ospf network point-to-point
|
||||
!
|
||||
interface sl0
|
||||
ip ospf network point-to-point
|
||||
!
|
||||
interface ppp0
|
||||
ip ospf network point-to-point
|
||||
!
|
||||
interface lo0
|
||||
!
|
||||
router ospf
|
||||
compatible rfc1583
|
||||
network 192.168.0.0/16 area 1
|
||||
ospf opaque-lsa
|
||||
mpls-te
|
||||
mpls-te router-address 1.2.3.4
|
||||
!
|
||||
line vty
|
||||
!
|
Loading…
Reference in New Issue
Block a user