Bandwidth Reservation Sharing between Primary

advertisement
Bandwidth Reservation Sharing between Primary and Backup Paths within the NPP Framework
Definitions:

node j
B:FTL I M uv
:
Total bandwidth reserved on link (u, v) for backup paths that belong to the activation set of node j. It is
maintained at node j.

f i; j g
B:FTL I M uv
:
Total bandwidth reserved on (u, v) for backup paths that belong to the activation set of link {i, j}. It is
maintained at node i and at node j.

node j
B:L TFI M uv
:
Total bandwidth required on (u, v) for backup paths that belong to the activation set of node j. It is
maintained on node u.

f i; j g
B:L TFI M uv
:
Total bandwidth required on (u, v) for backup paths that belong to the activation set of link {i, j}. It is
maintained on node u

node j
P:FTL I M uv
:
Total bandwidth reserved on (u, v) for primary paths that originate or terminates at node j. It is
maintained on node j

node j
P:L TFI M uv
:
Total bandwidth reserved on (u, v) for primary paths that originate or terminates at node j. It is
maintained on node u

F*ij:
Total bandwidth on (i, j) reserved for primary paths (Some backup paths may also use this bandwidth)

G*ij:
Total bandwidth on (i, j) reserved exclusively for backup paths (Some backup paths may be using
bandwidth other than G*ij).

bold: Old backup path protecting the facility whose backup to be recomputed

bnew = b + bold

} : New backup path to be made for the protection of the facility in question.
We preserve the equality:
Cij = Rij + F*ij + G*ij
Guide Lines (used for writing this document)
Computation
 Define } (and what it protects)
 Define that when } gets activated
 Relevant data used for } computation
o Where above data structure is store?
 When to prune links?
 Cost used in computing } using not pruned links.
 Any relevant updates in the data used for } computation
Signaling
 Define }
 What information is advertised?
 What are the local states?
 How that information advertised is used to update local states?
NPP without improvements
} Computation
 Case 1: } is an NHOP path that span link (i, j)
o } gets activated if link f i ; j g fails
o B.FTLIM is maintained on node i as well as on link j .
o
Question: What is the reason of maintaining same B.FTLIM on both nodes, when FBC draft
says that if the links are bidirectional then it should be maintained by node with
lowest (or highest) id?
Answer: It is only because we provide element protection. In other case FBC draft proposal
works but not in case of element protection.
Node j computes the route for }
o
Prune Link (u, v):
o
Node
j
f i ;j g
Ruv < bnew à ( Guv à B:FTL I M uv
computes
using
cost:
Node j increment the entries corresponding to (u, v) in B.FTLIM by an
old
I new
uv bnew à I uv bold
 And corresponding same updates are made on node i B.FTLIM during signaling.
amount
Max (0; bnew à ( Guv à
o

route
using
f i ;j g
B:FTL I M uv
old
I uv bold))
pruned
links
f i ;j g
node j
o
Let bã =
o
Prune Link (u, v):
o
Node j computes route using not pruned links using cost:
o
Node j increment the entries corresponding to (u, v) by an amount
} Signaling

+
not
Case 2: } is an NNHOP path that span link (i, j) and link (j, k)
o } gets activated if either link f i ; j g or node j fails
o Relevant B.FTLIM is maintained on node j , for each link (u, v) which is part of
o Node j computes the route for }
Max ( B:FTL I M uv ; B:FTL I M uv
B:FTL I M uv
}
)
Ruv < bnew à (Guv à bã + I old
uv bold)
nodej as well as in


+ I old
uv bold)
M ax(0; bnew à (Guv à bã + I old
uv bold))
old
I new
uv bnew à I uv bold
in
f i ;j g
f i ;j g
B:FTL I M uv . During signaling node i also updates B:FTL I M uv .
For each link (u, v) of } , corresponding LTFIM is maintained on node u
If } is an NNHOP path that span link (i, j) and (j, k) then we advertise f node j ; f i ; j g; bnewg else if }
is an NHOP path that span link (i, j) then we advertise f f i; j g; bnewg
When a reservation request arrives at node u (for link (u, v)) the entries corresponding to facilities
advertised are located in LTFIM. Let bf aci li ty is the maximum in those entries then Guv is set to
old
Max (Guv; bf aci li ty + bnew à I uv bold) . (Unresolved Problem: We yet have to decide a solution about

bold??)
Now LTFIM corresponding to the facility advertised (or two facilities in case of NNHOP path) is
incremented by bnew à I old
uv bold
NPP WITH IMPROVEMENTS
Case 1: } is an NHOP path that span link (i, j)
 We cannot have any improvement in this case, so primary path computation is same as in original NPP.
It is because, when link {i, j} fails then no primary path get effected (stop functioning).
Case 2:
} is an NNHOP path that span link (i, j) and link (j, k)
} Computation
Let } is an NNHOP path that span link (i, j) and link (j, k)







Activate if either link {i, j} or node j fails
Node j will now maintain P.FTLIM besides maintaining B.FTLIM.
Prune Link (u, v): R uv < bnew à ( P:FTL I M juv + Guv à bã + I old
uv bold))
Node j computes route using not pruned links.
Cost of using a link: M ax(0; bnew à (P:FTL I M j
uv
d
+ Guv à bã + I ol
uv bol d))
Node j increment the B.FTLIM entries corresponding to (u, v) by an amount
old
I new
uv bnew à I uv bold
} Signaling


For each link (u, v) in path } , corresponding B.LTFIM and P.LTFIM are maintained on node u
As } is an NNHOP path that span link (i, j) and (j, k), we advertise f node j ; f i ; j g; bnewg

Now each

When a reservation request arrives at node u (for link (u, v)) the entries corresponding to facilities
node j
B:L TFI M uv
and
f i ;j g
B:L TFI M uv
are incremented by
node j
advertised are located in LTFIM (i.e.
old
bnew à I uv bold
f i ;j g
B:L TFI M uv , B:L TFI M uv ). Let bf aci li ty is
node j
f i ;j g
j
M ax ( B:L TFI M uv , B:L TFI M uv ) then Guv is set to Max (8j (bf aci li ty j à P:L TFI M uv))
Primary Path signaling and computation
 Primary path computation is same as was in normal NPP
 Let í is the primary path with (src, dst, demand) = (s, t, d), then its signaling is described below:
í Signaling


Note 1: During signaling of the primary path, P.FTLIM and P.LTFIM are updated. They are never updated
during computation or signaling of backup paths.
o Note 2: P.FTLIM and P.LTFIM contains aggregated information about a link i.e. in worse case a
node can have one entry corresponding to a link in a P.FTLIM and P.LTFIM.
P.FTLIM is maintained on node s and node t, whereas P.LTFIM is maintained on each intermediate node
of the primary path.
s
During signaling node s increments its P:FTL I M node
for each link (u, v) in the primary path by d
uv

Each intermediate nodes (u, v) increments its

Finally destination node t increments its

Optimization during Signaling: During signaling, after updating local data-structures (as explained
above),
each
intermediate
node
u
recalculates
Guv. That is, Guv is set to
j
.
During
step-4,
two
of
the
P.LTFIMs
have been increased hence it is
Max (8j (bf aci li ty j à P:L TFI M uv))

probable that
node s
P:L TFI M uv
node t
P:FTL I M uv
and
node t
P:L TFI M uv
by d
for each link (u, v) in the primary path by d
Guv drops and it results in increasing of Ruv .
Coding Blog
Version 1.4.1
===================================================================
====
IMPORTANT: The changes in this version are based on the short comments available
in model.SharingWithPrimary.Comments and what has been written above
----------------ByPassLoadBalancer
------------------Add a Todo ****
Change main from accomodateallbandwidthonpath...
-----------Router.java
-----------I have introduce a new function named workAfterPlacingPrimaryPath so that its subclass can overwrite this
function
--PFTLIM has been added and it is a private variable with key same as for FBC set and get functions are
provided for this.
--Change toString() function
So that it does not print links details information
-----------JPRouter.java
-----------Change Save information functions so that they do not save against link in case of node protection only (no
element protection)
---Write tostring() so that it prints FTLIM (kiniLocalinformation) beside printing what Router.java has to print
---------Link.java
---------In this version I have done changes in Link class.
Basically I have added function named checkValueLessThanZero and made use of it
--PLTFIM has been added and it is a private variable with key same as for kinilocalinformation
set and get functions are provided for this
--Made kinilocalinfromation a private variable and have written 4 new functions to manipulate this private
variable
Have to change in many classes that was accessing old public variable
-----------------------------NoPoolCSPFFacilityNodeBkAlgo.java
---------------------------------Change makereservation and removereservation information functions so that they do not save for against
link in case of node protection only (no element protection)
---Made three function non-static. That is getMineReservedInCaseofLink, getMineReservedInCaseofNode and
getMineReserved The reason to do so was that static method have difficulty in overriding in the subclasses.
Also I have made them public.
---
I have to made changes in DynamicCostNPPBkAlgo and CSPFFacilityNodeBKAlgo as these classes were
calling them statically.
--Also
Add new functions named getNNHOP_LTFIM and getNHOP_LTFIM. These function take code away from
getMineReservedInCaseofNode so that it is easy to override
--incDecKiniValueForPf is made public
--Add a new function updateLinkGuv and call it from makeReservationOnLink and removeReservationOnLink
so that it can be override in subclasses
--Add a new function caclulateNewGuv and call it from makeReservationOnLink and removeReservationOnLink
so that it can be override in subclasses
--------------------------------New Package (SharingWithPrimary)
--------------------------------Added classes named SWPRouter and V1BackupAlgorithm
-------------------------------View.gui.MainFrame
-------------------------------Make changes in the front end view so that it can generate configuration file
Download