Hello Les,

I cannot help but thinking we get carried away with the SRMS ranges. For me 
the actual meaning of a range lays in it's expanded form; with this I mean

(<pref>, 10.1.1.1/32, 100, range 3) is expanded

    10.1.1.1/32 -> SID 100
    10.1.1.2/32 -> SID 101
    10.1.1.3/32 -> SID 102


If you take it from the expanded form then we have the "Ignore overlap only". 
That is how I understand the phrase "per-prefix". I would prefer to discuss 
the prefix or SID conflict on this expanded, per-prefix basis. E.g. for the 
example

1. (150, 1.1.1.1/32 100 range 100)
2. (150, 1.1.1.1/32 500 range 2)

with the typo/mistake of 1.1.1.1 instead of 1.1.2.1 in the 2nd range I don't 
see why prefixes 1.1.1.3/32 - 1.1.1.100/32 should not be mapped to SIDs 102 - 
199. The conflict is for 1.1.1.1/32 and 1.1.1.2/32 alone and the question of 
conflict resolution is for these two prefixes alone.


Saying this, having a warning that these two ranges create a conflict would 
be a useful debugging information.


For the action, once a conflict based on the expanded form is detected: I 
would prefer to drop the traffic, i.e. in the example above

    1.1.1.1/32 -> drop
    1.1.1.2/32 -> drop

nor should there be any ingress label programmed for SIDs 100, 101, 500, 501.
But as I said in another email, as long as we can agree on a simple action - 
drop, strip all labels, do not program the prefix - and make it mandatory 
that all implementations support this one action then fine with me.



Regards, Marc




On Sun, 1 Jan 2017 17:15:18 +0000, Les Ginsberg (ginsberg) wrote:
> Mustapha –
>  
> Some responses inline, but I emphasize again that the most important issue 
> being discussed at the moment is what to do when conflicts are detected. 
> There are two proposals:
>  
> 1)Do not use the SIDs which are in conflict (“Ignore”)
> 2)Use some conflict resolution algorithm to choose how to use the 
> conflicting SIDs (“Ignore overlap only”)
>  
> I would encourage you and everyone else to comment on that.
>  
> If we choose #2 above then the specific preference rule (currently defined 
> in Section 3.3.4 of the draft) can be reviewed – but not much point in 
> doing so until we decide whether we are going to use a preference rule at 
> all.
>  
> From: Aissaoui, Mustapha (Nokia - CA) [mailto:[email protected]] 
> Sent: Friday, December 23, 2016 6:59 AM
> To: Les Ginsberg (ginsberg); [email protected]
> Subject: RE: SID Conflict Resolution: A Simpler Proposal
>  
> Hi Les,
> I made some follow-up inline.
>  
> Regards,
> Mustapha.
>  
> From: Les Ginsberg (ginsberg) [mailto:[email protected]] 
> Sent: Thursday, December 22, 2016 2:37 PM
> To: Aissaoui, Mustapha (Nokia - CA) <[email protected]>; 
> [email protected]
> Subject: RE: SID Conflict Resolution: A Simpler Proposal
>  
> Mustapha -
>  
> From: spring [mailto:[email protected]] On Behalf Of Aissaoui, 
> Mustapha (Nokia - CA)
> Sent: Thursday, December 22, 2016 8:10 AM
> To: Les Ginsberg (ginsberg); [email protected]
> Subject: Re: [spring] SID Conflict Resolution: A Simpler Proposal
>  
> Hi Les,
> I read slides 17-21 of the document you referenced below and I have the 
> following comments:
>  
> 1.     Page 17, “Order Matters - Prefix vs SID Conflict”.
> When you perform resolution on  a per prefix basis, prefix conflicts are 
> naturally processed first followed by SID conflicts across different 
> prefixes. So the ordering issue described is only specific if you decided 
> to resolve conflicting SID entries outside of the natural prefix resolution 
> by a router. 
>  
> [Les:] What may seem “natural” to you might not to someone else. I don’t 
> care to debate that point. What is being illustrated here is that in order 
> to provide a normative specification that – if followed – guarantees 
> interoperability we have to specify the order in which conflicts are 
> processed otherwise different results may be obtained.
>  
> MA> I agree on the intent of specifying a procedure which achieves 
> interoperability. However, it seems to me this draft is ignoring the fact 
> that routers do per-prefix resolution and is trying to perform the SID 
> resolution outside of it.
> [Les2:] Section 3.2 of the draft details the types of conflicts which may 
> occur. These include:
>  
>   1)Prefix conflicts – different SIDs assigned to the same prefix
> 2)SID conflicts – multiple prefixes associated with the same SID
>  
> The term “pre-prefix resolution” suggests to me that you think all we 
> have to do is find all the SID advertisements associated with a given 
> prefix in order to determine whether we have a conflict or not. But that 
> only finds “prefix conflicts” – it does not find SID conflicts – and 
> both have to be dealt with.
> If you mean something else please clarify.
>  
> 2.     Page 18, “Order Matters: Derived vs non-derived– prefix conflict”.
> It seems to me this issue is an artifact of the specific algorithm used to 
> resolve conflicts. Because the algorithm uses parameters such as “Range 
> (start w smallest)” then obviously derived SRMS entries will lend a 
> different result than original SRMS entries. 
> With the pre-prefix resolution, the only information kept from the original 
> SRMS entry is the preference and the advertising or owner router. Anything 
> else is not used. It seems to me a simple algorithm based on preference 
> first then followed by some rule on selecting the advertising router if 
> conflicts exist within the same preference would work.
>  
> [Les:] You have implemented things in a certain way. Someone else might 
> choose to implement in a different way. A normative specification does not 
> (and should not) constrain an implementation. What is being illustrated 
> here is that if the implementation does not retain the underived entry (in 
> whatever internal form it chooses) different results will be obtained 
> because the preference algorithm depends on comparing the underived ranges.
>  
> MA> I do not believe this is about implementation. It is about what routers 
> do and that is resolution per prefix. It does not matter how the prefix SID 
> information is advertised, individually or part of an SRMS entry, at the 
> end it is associated with a prefix.
>  
> 3.     Finally, there is something which has not been addressed in the 
> slides. There is still a possibility of conflicting entries among SIDs 
> advertised using the prefix SID sub-TLV within a Prefix TLV (IS-IS IP Reach 
> TLV or OSPF Extended Prefix TLV). A simple rule selecting the advertising 
> router should also work fine here.
>  
> [Les:] No – source of an advertisement has been quite deliberately 
> excluded from the preference algorithm. With redistribution/route leaking 
> the source of an advertisement may appear to be different on different 
> routers- this would result in different results on different routers.
>  
> MA> The following RFC is specifying an optional attribute (the IPv4/IPv6 
> Source Router ID TLV) to encode the original advertising router of a 
> prefix. This can be used to perform a simple selection algorithm:
> https://tools.ietf.org/html/rfc7794#section-2.2 
>  
> Otherwise, what is your proposal for this point (3)? I could not find it 
> addressed in the current version of the draft.
>  
> [Les2:] The proposal is NOT to use the source of an advertisement as an 
> input to conflict resolution.
> RFC 7794 only addresses the issue for IS-IS and even then only for SIDs 
> learned via prefix reachability advertisements. Use of source still has 
> consistency issues for SRMS advertisements, OSPF, and cases which involve 
> multiple protocol instances.
> This choice has been consciously made and is in part based on our 
> experience with existing implementations.
>  
> That said, this issue is only relevant if you believe it is 
> necessary/desirable to use a preference rule to make a choice when a 
> conflict exists. 
> The proponents of “Ignore” don’t want to do this – we want to NOT use 
> SIDs which are in conflict. We believe this is less likely to lead to 
> interoperability problems and is less likely to have undesirable side 
> effects. It also prioritizes detection and reporting of conflicts.
>  
>    Les
>  
> Regards,
> Mustapha.
>  
> From: Les Ginsberg (ginsberg) [mailto:[email protected]] 
> Sent: Friday, December 09, 2016 1:49 PM
> To: Aissaoui, Mustapha (Nokia - CA) <[email protected]>; 
> [email protected]
> Subject: RE: SID Conflict Resolution: A Simpler Proposal
>  
> Mustapha -
>  
> From: Aissaoui, Mustapha (Nokia - CA) [mailto:[email protected]] 
> Sent: Friday, December 09, 2016 7:44 AM
> To: Les Ginsberg (ginsberg); [email protected]
> Subject: RE: SID Conflict Resolution: A Simpler Proposal
>  
> I have a couple of comments on the below proposal.
>  
> 1.     Regarding the SRMS Preference Sub-TLV in section 3.1 of the draft. 
> In many cases, a configuration on the resolving router can assign a 
> preference to each SRMS in case there is no advertisement of this sub-TLV 
> or to override an advertised value. I propose that this option be allowed. 
> Here is a proposed update to the relevant paragraph:
> “
>            Advertisement of a preference value is optional.  Nodes which do 
> not
>           advertise a preference value are assigned a preference value of 
> 128.                        
>            A resolving router can override the default or the advertised 
> value by local policy.
> “
> [Les:] In order to get consistent conflict resolution on all nodes in the 
> network, it is necessary that they all have the same database – which 
> includes the preference value. If you allow local policy to modify the 
> preference you no longer have consistent databases on all nodes and we can 
> no longer guarantee consistent conflict resolution. So your proposal is not 
> viable IMO.
>  
> 2.     I am trying to understand the concept of sorting SRMS entries which 
> have different prefixes and different range sizes.  
> Since a SID advertised in a prefix SID sub-TLV within a Prefix TLV (IS-IS 
> IP Reach TLV or OSPF Extended Prefix TLV) has higher priority over a SID 
> for the same prefix advertised from a SRMS, then you have to add to the 
> below sorting an entry for each individual prefix which advertised a prefix 
> SID sub-TLV within a prefix TLV. 
> At this point, the concept of an entry with multiple prefixes is moot and 
> you may as well just sort on a per prefix basis which is the most natural 
> thing to do given that the prefix resolution and then the SID resolution 
> are performed on a per prefix basis. SID conflicts can be resolved on a per 
> prefix basis using the below proposed preference algorithm without having 
> to ignore SID values for unrelated prefixes just because it happens that 
> they were advertised in the same SRMS entry.
>  
> [Les:] The simpler proposal does not require sorting on anything other than 
> preference. After that, you can process entries in any order you want and 
> you will get the same answer.
> With “Ignore Overlap Only” one of the issues with trying to use the 
> non-conflicting portions of a mapping entry which has a range > 1 is that 
> the order in which you process entries influences the result. Please see 
> slides 17 – 20 from the IETF97 presentation: 
> 
https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_draft-ietf-spring-conflict-resolution-02-00.pptx
 
> for some simple examples of this.
>  
>    Les
>  
>  
> Regards,
> Mustapha.
>  
> From: spring [mailto:[email protected]] On Behalf Of Les Ginsberg 
> (ginsberg)
> Sent: Sunday, December 04, 2016 7:04 PM
> To: [email protected]
> Subject: [spring] SID Conflict Resolution: A Simpler Proposal
>  
> When the problem addressed by draft-ietf-spring-conflict-resolution was 
> first 
> presented at IETF 94, the authors defined the following priorities:
>  
> 1)Detect the problem
> 2)Report the problem
> This alerts the network operator to the existence of a conflict so that
> the configuration error can be corrected.
> 3)Define consistent behavior
> This avoids mis-forwarding while the conflict exists.
> 4)Don’t overengineer the solution
> Given that it is impossible to know which of the conflicting entries
> is the correct one, we should apply a simple algorithm to resolve the 
> conflict.
> 5)Agree on the resolution behavior
>  
> The resolution behavior was deliberately the last point because it was 
> considered the least important.
>  
> Input was received over the past year which emphasized the importance of
> trying to "maximize forwarding" in the presence of conflicts. Subsequent
> revisions of the draft have tried to address this concern. However the 
> authors 
> have repeatedly stressed that the solution being proposed 
> ("ignore overlap only") was more complex than other offered alternatives 
> and 
> would be more difficult to guarantee interoperability because subtle 
> differences in an implementation could produce different results.
>  
> At IETF97 significant feedback was received preferring a simpler solution 
> to 
> the problem. The authors are very sympathetic to this feedback and 
> therefore 
> are proposing a solution based on what the draft defines as the "Ignore" 
> policy - where all entries which are in conflict are ignored. We believe 
> this 
> is far more desirable and aligns with the priorities listed above.
>  
> We outline the proposed solution below and would like to receive feedback 
> from 
> the WG before publishing the next revision of the draft.
>  
>    Les (on behalf of the authors)
>  
> New Proposal
>  
> In the latest revision of the draft "SRMS Preference" was introduced. This 
> provides a way for a numerical preference to be explicitly associated with 
> an 
> SRMS advertisement. Using this an operator can indicate which advertisement 
> is 
> to be preferred when a conflict is present. The authors think this is a 
> useful 
> addition and we therefore want to include this in the new solution.
>  
> The new preference rule used to resolve conflicts is defined as follows:
>  
> A given mapping entry is compared against all mapping entries in the 
> database 
> with a preference greater than or equal to its own. If there is a conflict, 
> the mapping entry with lower preference is ignored. If two mapping entries 
> are
> in conflict and have equal preference then both entries are ignored.
>  
> Implementation of this policy is defined as follows:
>  
> Step 1: Within a single address-family/algorithm/topology sort entries 
> based on preference 
> Step 2: Starting with the lowest preference entries, resolve prefix 
> conflicts 
> using the above preference rule. The output is an active policy per 
> topology.
> Step 3: Take the outputs from Step 2 and again sort them by preference 
> Step 4: Starting with the lowest preference entries, resolve SID conflicts 
> using the above preference rule
>  
> The output from Step 4 is then the current Active Policy.
>  
> Here are a few examples. Each mapping entry is represented by the tuple:
> (Preference, Prefix/mask Index range <#>)
>  
> Example 1:
>  
> 1. (150, 1.1.1.1/32 100 range 100)
> 2. (149, 1.1.1.10/32 200 range 200)
> 3. (148, 1.1.1.101/32 500 range 10)
>  
> Entry 3 conflicts with entry 2, it is ignored.
> Entry 2 conflicts with entry 1, it is ignored.
> Active policy:
>  
> (150, 1.1.1.1/32 100 range 100)
>  
> Example 2:
>  
> 1. (150, 1.1.1.1/32 100 range 100)
> 2. (150, 1.1.1.10/32 200 range 200)
> 3. (150, 1.1.1.101/32 500 range 10)
> 4. (150, 2.2.2.1/32 1000 range 1)
>  
> Entry 1 conflicts with entry 2, both are marked as ignore.
> Entry 3 conflicts with entry 2. It is marked as ignore.
> Entry 4 has no conflicts with any entries
>  
> Active policy:
> (150, 2.2.2.1/32 1000 range 1)
>  
> Example 3:
>  
> 1. (150, 1.1.1.1/32 100 range 500)
> 2. (150, 1.1.1.10/32 200 range 200)
> 3. (150, 1.1.1.101/32 500 range 10)
> 4. (150, 2.2.2.1/32 1000 range 1)
>  
> Entry 1 conflicts with entries 2, 3, and  4. All entries are marked ignore.
>  
> Active policy:
> Empty
>  
> Example 4:
>  
> 1. (150, 1.1.1.1/32 100 range 10)
> 2. (149, 1.1.1.10/32 200 range 300)
> 3. (149, 1.1.1.101/32 500 range 10)
> 4. (148, 2.2.2.1/32 1000 range 1)
>  
> Entry 4 conflicts with entry 2. It is marked ignore.
> Entry 2 conflicts with entry 3. Entries 2 and 3 are marked ignore.
>  
> Active policy:
> (150, 1.1.1.1/32 100 range 10)
>  
>  
>  
>  
> 
> _______________________________________________
> 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