hi peter,

how is the computing router supposed to know that the downstream router
supports this per-algo partitioning of the label-space ?

i mena by looking at the downstream routers announcment, how can it "see"
that the downstream router is bringing indeed the packet closer
to the destination and is not just a "ordinary" router with a large
SRGB space ? and how do you want to detect misconfigurations e.g.
"dislike offsets for algos".


lets say we have the following sample network.

    R1----R2----R3

each router is advertising a SRGB [16000, 17999].
we have two algorithms (0 and 2 (latency based SPF))
now there is a misconfiguration such that R2 maps the algo2
to SRGB offset 750, where everybody else does it to 500.

so when R1 calculates the algo 2 destination to R3 it
pushes an outgoing label of 16000+500+R3Idx which
R2 does not understand (R2 has a per-algo offset of 750)
result is blackhole, worst case forward somewhere where it
loops.

thoughts ?

/hannes

On Mon, Jul 27, 2015 at 11:11:29AM +0200, Peter Psenak wrote:
| Hi Hannes,
| 
| On 7/27/15 10:47 , Hannes Gredler wrote:
| >hi les,
| >
| >assuming option 1 and a local knob e.g. 'algorithm <n> offset <x>'
| >as per your example below i got the following question(s):
| >
| >1) how does a computing router know that a downstream router has got
| >    the 'offset per-algo knob' configured, such that it can map outgoing 
label values
| >    to the correct label value (SRGB + algo offset) of the downstream 
routers ? -
| 
| there is no need for the computing node to know.
| 
| Let's assume we have a node N that has single SRGB (16000-23999) and it
| supports 4 algorithms. Internally the node splits its SRGB to 4 blocks, one
| per algorithm:
| 
| alg 0: [16000, 17999]
| alg 1: [18000, 19999]
| alg 2: [20000, 21999]
| alg 3: [22000, 23999]
| 
| For prefix P1 on node N, user configures single index 25. Node N then
| advertises:
| 
| SID 16025 - alg 0
| SID 18025 - alg 1
| SID 20025 - alg 2
| SID 22025 - alg 3
| 
| thanks,
| Peter
| 
| >
| >2) is the expectation that 'algorithm <n> offset <x>' is configured identical
| >    on all the routers in the network ?
| >
| >3) if so - isn't this considered a rather 'fragile / error prone'
| >    approach to operating a network ?
| >
| >/hannes
| >
| >On Tue, Jul 21, 2015 at 08:58:51PM +0000, Les Ginsberg (ginsberg) wrote:
| >|    Stephane/Chris -
| >|
| >|
| >|
| >|    Defining an offset, whether explicitly as Ahmed/Jon have suggested or
| >|    implicitly as the draft Option #2 defines can be problematic in either
| >|    case.
| >|
| >|
| >|
| >|    If you don't plan for as many labels as you might need in the future 
then
| >|    when the day comes when you run out of labels you need to allocate more.
| >|
| >|
| >|
| >|    If I use one SRGB for all algorithms, then I have the (non-disruptive)
| >|    options of:
| >|
| >|
| >|
| >|    .         Extending the existing SRGB space
| >|
| >|    .         Reserving an additional SRGB space
| >|
| >|
| >|
| >|    If I use one SRGB for each algorithm, then if I run out of
| >|    labels/algorithm I have the same options - but now I have to do this for
| >|    each algorithm specific set of SRGBs.
| >|
| >|
| >|
| >|    (There are disruptive ways to address this by completely redefining the
| >|    SRGBs w/o regard to the existing config - but I think we all understand
| >|    that this option is very undesirable and this is true in both options.)
| >|
| >|
| >|
| >|    Of course it is better to be generous enough with your initial SRGB
| >|    allocation so as to avoid the need for ever having to extend an SRGB - 
in
| >|    which case the amount of label space you need to reserve initially is 
the
| >|    same in both cases.
| >|
| >|    (Sorry - no free lunch!! J )
| >|
| >|
| >|
| >|    Option #1 however avoids a number of issues which complicate Option #2:
| >|
| >|
| >|
| >|    Under Option #2 support for a new algorithm now requires not only
| >|    advertising support for the algorithm but also advertising a new (set 
of)
| >|    algorithm specific SRGB ranges. We have to check for the presence of 
both
| >|    algorithm support and the algorithm specific SRGB(s) before declaring a
| >|    node as supporting a given algorithm. Each of these algorithm specific 
set
| >|    of ranges has to be checked for both intra-algorithm consistency (no
| >|    overlap within the algorithm specific ranges) and inter-algorithm
| >|    consistency.
| >|
| >|
| >|
| >|    I would also suggest that for many implementations, any reservation of
| >|    label space AFTER startup can be problematic. Label space is typically
| >|    managed by declaring two types of ranges:
| >|
| >|
| >|
| >|    1)reserved for a specific use (like segment routing)
| >|
| >|    2)available for dynamic allocation (unreserved)
| >|
| >|
| >|
| >|    The unreserved space is typically everything that isn't reserved. If I
| >|    need to reserve additional space after startup I face the possibility 
that
| >|    some of the additional range I would like to reserve may be in use via
| >|    dynamic allocation. In such a case I cannot successfully reserve the 
range
| >|    until all the existing dynamic allocations are released - which can be
| >|    awkward to do and may very well be disruptive to the entity using the
| >|    dynamically allocated labels. So this is best avoided.
| >|
| >|
| >|
| >|    I understand why making config easier for the user is desirable - and
| >|    Option #2 provides that - but it is also easy to do so using Option #1.
| >|    One can imagine a syntax similar to:
| >|
| >|
| >|
| >|       algorithm <n> offset <x>
| >|
| >|    And, as described above, this does not require us to reserve more labels
| >|    than we would need under Option #2.
| >|
| >|    I am not seeing any advantage to Option #2. Though it is well motivated,
| >|    everything you want to achieve w Option #2 can easily be achieved using
| >|    Option #1.
| >|
| >|
| >|
| >|      Les
| >|
| >|
| >|
| >|    > -----Original Message-----
| >|
| >|    > From: spring [mailto:[email protected]] On Behalf Of
| >|
| >|    > [email protected]
| >|
| >|    > Sent: Tuesday, July 21, 2015 7:52 AM
| >|
| >|    > To: Jon Mitchell; Chris Bowers
| >|
| >|    > Cc: [email protected]
| >|
| >|    > Subject: Re: [spring] FW: New Version Notification for
| >|    draft-bowers-spring-
| >|
| >|    > adv-per-algorithm-label-blocks-01.txt
| >|
| >|    >
| >|
| >|    > Using an offset may be dangerous as if your network growth your algo1
| >|    SIDs
| >|
| >|    > may collision with algo2 SIDs because the offset is no more enough ...
| >|    (you
| >|
| >|    > always need more ...) using an offset is similar to splitting the SRGB
| >|    in 2
| >|
| >|    > SRGBs with the limitation of not being able to extend the first part.
| >|    Option 2
| >|
| >|    > allows this extension.
| >|
| >|    > You may say let's put a very very large SRGB and offset of +20000 ...
| >|    yes but
| >|
| >|    > it's wasting resources ...
| >|
| >|    >
| >|
| >|    >
| >|
| >|    >
| >|
| >|    > -----Original Message-----
| >|
| >|    > From: spring [[1]mailto:[email protected]] On Behalf Of Jon
| >|    Mitchell
| >|
| >|    > Sent: Tuesday, July 21, 2015 14:35
| >|
| >|    > To: Chris Bowers
| >|
| >|    > Cc: [2][email protected]
| >|
| >|    > Subject: Re: [spring] FW: New Version Notification for
| >|    draft-bowers-spring-
| >|
| >|    > adv-per-algorithm-label-blocks-01.txt
| >|
| >|    >
| >|
| >|    > On 24/06/15 23:09 +0000, Chris Bowers wrote:
| >|
| >|    > > This updated version of the draft includes a concrete proposal for
| >|    ISIS
| >|
| >|    > extensions to implement per-algorithm label blocks.
| >|
| >|    > >
| >|
| >|    >
| >|
| >|    > Chris -
| >|
| >|    >
| >|
| >|    > As you discussed in the meeting today in option 2 (the proposal) there
| >|    is a
| >|
| >|    > "savings" that is achieved by not allocating a large label space as is
| >|    required in
| >|
| >|    > option 1 since we may not be able to predict the future of algorithm
| >|    needs in
| >|
| >|    > the network.  But wouldn't you agree that since you are allocating a
| >|    node
| >|
| >|    > index in every fractured address space (whether required or not) in
| >|    option 2,
| >|
| >|    > since address space that is partitioned typically consumes more space
| >|    than
| >|
| >|    > unfractured space (due to loss because of imperfect planning), as you
| >|
| >|    > increase the number of algorithms aren't you more likely to consume 
more
| >|
| >|    > overall space with this technique?
| >|
| >|    >
| >|
| >|    > Secondly there was a statement made that there is an advantage to 
option
| >|
| >|    > 2 that it allows easier provisioning of node index value (as it's
| >|
| >|    > reused) per algorithm.  Isn't it just as easy for an implementation to
| >|    allow the
| >|
| >|    > user to just configure a local implementation offset for an algorithm
| >|    which
| >|
| >|    > requires no protocol changes and has more flexiblity as it doesn't 
need
| >|    to be
| >|
| >|    > configured for prefix SID's that don't require it (similar as Ahmed
| >|    suggested
| >|
| >|    > at the mic, i.e. algorithm 2 = +1000) that could be configured at 
every
| >|    node?
| >|
| >|    > Assuming OSS provisions SID's sequentially this seems to work just as
| >|    well...
| >|
| >|    >
| >|
| >|    > Thanks,
| >|
| >|    >
| >|
| >|    > Jon
| >|
| >|    >
| >|
| >|    > _______________________________________________
| >|
| >|    > spring mailing list
| >|
| >|    > [3][email protected]
| >|
| >|    > [4]https://www.ietf.org/mailman/listinfo/spring
| >|
| >|    >
| >|
| >|    > __________________________________________________________
| >|
| >|    > __________________________________________________________
| >|
| >|    > _____
| >|
| >|    >
| >|
| >|    > Ce message et ses pieces jointes peuvent contenir des informations
| >|
| >|    > confidentielles ou privilegiees et ne doivent donc pas etre diffuses,
| >|    exploites
| >|
| >|    > ou copies sans autorisation. Si vous avez recu ce message par erreur,
| >|    veuillez
| >|
| >|    > le signaler a l'expediteur et le detruire ainsi que les pieces 
jointes.
| >|    Les
| >|
| >|    > messages electroniques etant susceptibles d'alteration, Orange decline
| >|    toute
| >|
| >|    > responsabilite si ce message a ete altere, deforme ou falsifie. Merci.
| >|
| >|    >
| >|
| >|    > This message and its attachments may contain confidential or 
privileged
| >|
| >|    > information that may be protected by law; they should not be
| >|    distributed,
| >|
| >|    > used or copied without authorisation.
| >|
| >|    > If you have received this email in error, please notify the sender and
| >|    delete
| >|
| >|    > this message and its attachments.
| >|
| >|    > As emails may be altered, Orange is not liable for messages that have
| >|    been
| >|
| >|    > modified, changed or falsified.
| >|
| >|    > Thank you.
| >|
| >|    >
| >|
| >|    > _______________________________________________
| >|
| >|    > spring mailing list
| >|
| >|    > [5][email protected]
| >|
| >|    > [6]https://www.ietf.org/mailman/listinfo/spring
| >|
| >| References
| >|
| >|    Visible links
| >|    1. mailto:[email protected]
| >|    2. mailto:[email protected]
| >|    3. mailto:[email protected]
| >|    4. https://www.ietf.org/mailman/listinfo/spring
| >|    5. mailto:[email protected]
| >|    6. https://www.ietf.org/mailman/listinfo/spring
| >
| >| _______________________________________________
| >| spring mailing list
| >| [email protected]
| >| https://www.ietf.org/mailman/listinfo/spring
| >
| >_______________________________________________
| >spring mailing list
| >[email protected]
| >https://www.ietf.org/mailman/listinfo/spring
| >.
| >
| 

_______________________________________________
spring mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/spring

Reply via email to