Re: [spring] [Mapping Server] Conflict Resolution

"Les Ginsberg (ginsberg)" <ginsberg@cisco.com> Sat, 18 March 2017 16:06 UTC

Return-Path: <ginsberg@cisco.com>
X-Original-To: spring@ietfa.amsl.com
Delivered-To: spring@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 14EBD1288B8 for <spring@ietfa.amsl.com>; Sat, 18 Mar 2017 09:06:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -14.521
X-Spam-Level:
X-Spam-Status: No, score=-14.521 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, NORMAL_HTTP_TO_IP=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-0.001, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4GTAAq2avGj6 for <spring@ietfa.amsl.com>; Sat, 18 Mar 2017 09:06:36 -0700 (PDT)
Received: from alln-iport-3.cisco.com (alln-iport-3.cisco.com [173.37.142.90]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 777931286CA for <spring@ietf.org>; Sat, 18 Mar 2017 09:06:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=125024; q=dns/txt; s=iport; t=1489853196; x=1491062796; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=vwC7yGg7DwP3BDGh4I6PLtzZCfFn2S/xVnC9MhEsu8c=; b=mfrElDdUQyuH34+xZxaa8xmUemghQMAHwP5nUq48GJROZxmDJ9oKlQPB crdJy5Z9D8oxSOqy1uu3Gay7Mg82pRb/Q3p9IL+rWbDmMmPixcZ4Nno8l t3wPOtRqNFV9pHzEEEBhpaEZ4EH4aH3z9h+NKPevnS3K5sGe5n7dsWKuz A=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0CsAQDUWc1Y/4gNJK1dGQEBAQEBAQEBAQEBBwEBAQEBgm45KmGBCgeDW4oPkVqCWoU4jTGCCwMfAQ6FKkoCGiiCPz8YAQIBAQEBAQEBayiFFQEBAQEDAQEYCQofHwMLEAIBCBECAQEBASEBBgMCAgIfBAILFAkIAgQBDQUIFolKAxAFDrJZgiaED4MiDYMJAQEBAQEBAQEBAQEBAQEBAQEBAQEBHYZOhG+CUYFmAQEFJAkJFoJQgl8FlgSGDzoBhniDKINwhCmCBIUog1aGMopkJgeIRgEPEDiBBFgVQYRXHYFjdQGHPg0XB4EDgQ0BAQE
X-IronPort-AV: E=Sophos;i="5.36,183,1486425600"; d="scan'208,217";a="399173586"
Received: from alln-core-3.cisco.com ([173.36.13.136]) by alln-iport-3.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 18 Mar 2017 16:06:35 +0000
Received: from XCH-ALN-008.cisco.com (xch-aln-008.cisco.com [173.36.7.18]) by alln-core-3.cisco.com (8.14.5/8.14.5) with ESMTP id v2IG6YVh012695 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Sat, 18 Mar 2017 16:06:34 GMT
Received: from xch-aln-001.cisco.com (173.36.7.11) by XCH-ALN-008.cisco.com (173.36.7.18) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Sat, 18 Mar 2017 11:06:34 -0500
Received: from xch-aln-001.cisco.com ([173.36.7.11]) by XCH-ALN-001.cisco.com ([173.36.7.11]) with mapi id 15.00.1210.000; Sat, 18 Mar 2017 11:06:34 -0500
From: "Les Ginsberg (ginsberg)" <ginsberg@cisco.com>
To: "Acee Lindem (acee)" <acee@cisco.com>, Robert Raszuk <robert@raszuk.net>
CC: "spring@ietf.org" <spring@ietf.org>, "Peter Psenak (ppsenak)" <ppsenak@cisco.com>, tech_kals Kals <tech.kals@gmail.com>, "Stefano Previdi (sprevidi)" <sprevidi@cisco.com>, "martin.pilka@pantheon.tech" <martin.pilka@pantheon.tech>
Thread-Topic: [spring] [Mapping Server] Conflict Resolution
Thread-Index: AQHSnsVBWNzGjxwjFUOLSVXC0/gmBqGYnB/ggABlvgCAAQUI0IAAmfuAgAAMdqCAAGnwgP//rHgw
Date: Sat, 18 Mar 2017 16:06:34 +0000
Message-ID: <224b1dea953c4a23b667afcc63619252@XCH-ALN-001.cisco.com>
References: <CAHWErLdy5RgdWQKOXp1PrbB6T_ANObznCSXvdQ0nkbBgukD5cQ@mail.gmail.com> <e0950e57a2a24bd99d78908be0d49a5d@XCH-ALN-001.cisco.com> <CAHWErLeBaMPDPJst0MpQfBXQqE3PW2pwGG_f6A539o1dv9gDYw@mail.gmail.com> <aaf69434308545a5b2566645cc2e4e47@XCH-ALN-001.cisco.com> <CA+b+ERmX6RtfJA1DicvitJ2tXOU1PbYq-w5i4LEPM=w3q28u_Q@mail.gmail.com> <4727571034014f0eb4689be6a092b8b0@XCH-ALN-001.cisco.com> <D4F2D04A.A3547%acee@cisco.com>
In-Reply-To: <D4F2D04A.A3547%acee@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.24.83.223]
Content-Type: multipart/alternative; boundary="_000_224b1dea953c4a23b667afcc63619252XCHALN001ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/F3tFBNpxZ6jKVSFEpUiyWMBmdQk>
Subject: Re: [spring] [Mapping Server] Conflict Resolution
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Stacked Tunnels for Source Routing \(STATUS\)." <spring.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/spring>, <mailto:spring-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/spring/>
List-Post: <mailto:spring@ietf.org>
List-Help: <mailto:spring-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/spring>, <mailto:spring-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 18 Mar 2017 16:06:41 -0000

Acee -

From: Acee Lindem (acee)
Sent: Saturday, March 18, 2017 8:59 AM
To: Les Ginsberg (ginsberg); Robert Raszuk
Cc: spring@ietf.org; Peter Psenak (ppsenak); tech_kals Kals; Stefano Previdi (sprevidi); martin.pilka@pantheon.tech
Subject: Re: [spring] [Mapping Server] Conflict Resolution



From: spring <spring-bounces@ietf.org<mailto:spring-bounces@ietf.org>> on behalf of "Les Ginsberg (ginsberg)" <ginsberg@cisco.com<mailto:ginsberg@cisco.com>>
Date: Saturday, March 18, 2017 at 10:59 AM
To: Robert Raszuk <robert@raszuk.net<mailto:robert@raszuk.net>>
Cc: "spring@ietf.org<mailto:spring@ietf.org>" <spring@ietf.org<mailto:spring@ietf.org>>, "Peter Psenak (ppsenak)" <ppsenak@cisco.com<mailto:ppsenak@cisco.com>>, tech_kals Kals <tech.kals@gmail.com<mailto:tech.kals@gmail.com>>, "Stefano Previdi (sprevidi)" <sprevidi@cisco.com<mailto:sprevidi@cisco.com>>, "martin.pilka@pantheon.tech<mailto:martin.pilka@pantheon.tech>" <martin.pilka@pantheon.tech<mailto:martin.pilka@pantheon.tech>>
Subject: Re: [spring] [Mapping Server] Conflict Resolution

Robert -

From: rraszuk@gmail.com<mailto:rraszuk@gmail.com> [mailto:rraszuk@gmail.com] On Behalf Of Robert Raszuk
Sent: Saturday, March 18, 2017 1:55 AM
To: Les Ginsberg (ginsberg)
Cc: tech_kals Kals; spring@ietf.org<mailto:spring@ietf.org>; martin.pilka@pantheon.tech<mailto:martin.pilka@pantheon.tech>; Stefano Previdi (sprevidi); Peter Psenak (ppsenak)
Subject: Re: [spring] [Mapping Server] Conflict Resolution

Hi Kals,

Sorry for missing the concept of "range" in mapping server TLV. Apologies - my omission !

Hi Les,

Two related questions while we are at this:

1. How can a mapping server advertise SID label on behalf of node which is not capable of its own advertisement without validation that such SID label is actually installed in the data plane of that "incapable" node ? If he does validate it .. how ?

[Les:] It is not the responsibility of the SRMS to validate that what has been configured is installed in any node’s forwarding plane – and it would be a “catch-22” situation if that were required since until a SID is advertised no label can be installed by any node.
If your argument is that there should be a SID advertised by the node which owns a prefix before SRMS advertises a SID, then it becomes impossible to support partial deployment where some prefixes are owned by SR incapable nodes.

Absolutely – this constraint defeats the whole purpose of an SRMS.



2. When you are making conflict resolution is there a check if the given prefix has actually been advertised as valid IP reachability and is installed in local RIB/FIB ?

[Les:] No. Having such a policy would introduce additional convergence issues. To know whether a given label was being used by a downstream node you would have to run conflict resolution from the POV of the downstream node because the output of that node’s conflict resolution calculation could be different than the local node’s output.

I’m not implying that this is even a viable option. However, I’ll point out that this wouldn’t even be possible since you could not guarantee that you had the complete set of mappings for the downstream node.
[Les:] Agreed. One does not use SID advertisements (whether from prefix reachability or from SRMS) from unreachable nodes – which is probably the more useful point to make.
What is also true is that for locally configured SIDs, they MUST NOT be included in conflict resolution unless they are also advertised. Simply configuring a SID locally is not sufficient.

   Les

Thanks,
Acee





   Les


Kind regards,
R.


On Sat, Mar 18, 2017 at 6:49 AM, Les Ginsberg (ginsberg) <ginsberg@cisco.com<mailto:ginsberg@cisco.com>> wrote:
Kals –

Please look closely at how to determine if there is a conflict.
From Section 3:

     Prf - Preference Value (See Section 3.1)
       Pi - Initial prefix
       Pe - End prefix
       L  - Prefix length
       Lx - Maximum prefix length (32 for IPv4, 128 for IPv6)
       Si - Initial SID value
       Se - End SID value
       R  - Range value (See Note 1)
       T  - Topology
       A  - Algorithm

       A Mapping Entry is then the tuple: (Prf, Src, Pi/L, Si, R, T, A)
       Pe = (Pi + ((R-1) << (Lx-L))
       Se = Si + (R-1)

And Section 3.2.1

  Given two mapping entries:

   (Prf, P1/L1, S1, R1, T1, A1) and
   (Prf, P2/L2, S2, R2, T2, A2)

   where P1 <= P2

   a prefix conflict exists if all of the following are true:

   1)(T1 == T2) && (A1 == A2)
   2)P1 <= P2
   3)The prefixes are in the same address family.
   2)L1 == L2
   3)(P1e >= P2) && ((S1 + (P2 - P1)) != S2)

The preference rule as defined in the latest version of the draft (02):

1.  Higher preference value wins
   2.  Smaller range wins
   3.  IPv6 entry wins over IPv4 entry
   4.  Longer prefix length wins
   5.  Smaller algorithm wins
   6.  Smaller starting address (considered as an unsigned integer
       value) wins
   7.  Smaller starting SID wins
   8.  If topology IDs are NOT identical both entries MUST be ignored

Comments inline

From: tech_kals Kals [mailto:tech.kals@gmail.com<mailto:tech.kals@gmail.com>]
Sent: Friday, March 17, 2017 1:09 AM
To: Les Ginsberg (ginsberg)
Cc: spring@ietf.org<mailto:spring@ietf.org>; Peter Psenak (ppsenak); Stefano Previdi (sprevidi); martin.pilka@pantheon.tech<mailto:martin.pilka@pantheon.tech>
Subject: Re: [Mapping Server] Conflict Resolution

Hi Les,

 Sorry, I have not included my mapping entries in the previous mail. Please see the example here below.

 I am working with the RFC which doesn't support Preference Value, so please ignore it. And, my mapping entries would looks like.
Topology will be a single topology, not a Multi-topology and algorithm would be SPF not CSPF.

 Please read my entry the below order:  <Prefix-start/ prefix-len,  starting SID,  range>
 E1 and E2 already configured Active entries. X is the newly incoming entry.


Scenario 1:   (Entries are conflicting with prefix)
                         Entry E1:      <10.1.10.0/24<http://10.1.10.0/24>, 300, 22>
                         Entry E2:      <10.1.1.0/24<http://10.1.1.0/24>,   150, 5>

[Les:] E1 expands to (10.1.10.0/24<http://10.1.10.0/24> through 10.1.31.0/24<http://10.1.31.0/24>) using SIDs 300-321
E2 expands to (10.1.1.0/24<http://10.1.1.0/24> through 10.1.5.0/24<http://10.1.5.0/24>) using SIDs 150 -154

There is no conflict – both entries are used.

                         incoming entry is X:
                         Entry X:        <10.1.2.0/24<http://10.1.2.0/24>,  200, 20>

[Les:] X expands to (10.1.2.0/24<http://10.1.2.0/24> – 10.1.21.0/24<http://10.1.21.0/24>) using SIDs 200-219.
There is a prefix conflict with E1.
Preference rule #2 (smaller range) is applied – but the answer one gets depends on the order in which the entries are processed – a point which I discussed in my presentation at IETF 96. See Slides 17-20 in
https://www.ietf.org/proceedings/97/slides/slides-97-spring-1_ietf97_draft-ietf-spring-conflict-resolution-02-00.pptx

So, if we examine entries in range order (smallest to highest) we find:
E2 has no conflict w X nor with E1.
X has a conflict with E1 – E1 is ignored.
E2 and X are used.

           Step1: Conflict would be validated between E1 and X.

           Step2: Conflict would be validated between E2 and X.

          # what are the entries would be active and what will become inactive/excluded entry ?



Scenario 2:   (Entries are conflicting with SID)
                         Entry E1:      <10.1.10.0/24<http://10.1.10.0/24>, 300, 22>
                         Entry E2:      <7.1.1.0/24<http://7.1.1.0/24>,     280, 10>

[Les:] Again, there is no conflict, both entries are used.

                         incoming entry is X:
                         Entry X:        <3.1.1.0/24<http://3.1.1.0/24>,   285, 20>

[Les:] There is no prefix conflict but there is a SID conflict.
E1 300 – 321
E2 280 – 289
X 285 – 304

Again applying Preference Rule #2 (smallest range wins)
E2 wins over X – X is ignored
E2 has no conflict with E1 – both entries are used.
So E1 and E2 are used and X is ignored.

           Step1: Conflict would be validated between E1 and X.

           Step2: Conflict would be validated between E2 and X.

          # what are the entries would be active and what will become inactive/excluded entry ?


Scenario 3:    (Entries are conflicting with prefix and SID)

                         Entry E1:      <10.1.10.0/24<http://10.1.10.0/24>, 300, 22>
                         Entry E2:      <5.1.1.0/24<http://5.1.1.0/24>,     190, 15>

[Les:] Again, no conflict – both entries are used.

                         incoming entry is X:
                         Entry X:        <10.1.1.0/24<http://10.1.1.0/24>,  200, 20>

[Les:] X has a prefix conflict with E1 – because it has smaller range X is the winner and E1 is ignored.
X has a SID conflict with E2. E2 has smaller range so X is ignored.
Only E2 is used.
Note that we evaluate  prefix conflicts before sid conflicts. Different results might ensue if we did sid conflicts before prefix conflicts (though not in this example)

The subtleties of ordering in achieving interoperability have not yet been incorporated into the draft – in part because there is still discussion about what policy should be used (Ignore, Quarantine, Ignore Overlap Only). If the WG were to select Ignore as the policy then ordering would not matter.

HTH

   Les

           Step1: Conflict would be validated between E1 and X.

           Step2: Conflict would be validated between E2 and X.

          # what are the entries would be active and what will become inactive/excluded entry ?


Regards,
__tech.kals__


On Fri, Mar 17, 2017 at 12:41 PM, Les Ginsberg (ginsberg) <ginsberg@cisco.com<mailto:ginsberg@cisco.com>> wrote:
It is not possible to answer your query because the way you have presented your entries (X, E1, E2, E3) does not tell us what conflicts you have.
Do you have two SIDs assigned to the same prefix? (Prefix conflict)
Do you have the same SID assigned to two different prefixes? (SID conflict)

This matters – see Section 3.3.6 of the draft for an example as to why.

Please present your example in the form defined in Section 3:

       Prf - Preference Value (See Section 3.1)
       Pi - Initial prefix
       Pe - End prefix
       L  - Prefix length
       Lx - Maximum prefix length (32 for IPv4, 128 for IPv6)
       Si - Initial SID value
       Se - End SID value
       R  - Range value (See Note 1)
       T  - Topology
       A  - Algorithm

       A Mapping Entry is then the tuple: (Prf, Src, Pi/L, Si, R, T, A)

Thanx.

   Les


From: tech_kals Kals [mailto:tech.kals@gmail.com<mailto:tech.kals@gmail.com>]
Sent: Thursday, March 16, 2017 7:22 PM
To: spring@ietf.org<mailto:spring@ietf.org>; Les Ginsberg (ginsberg); Peter Psenak (ppsenak); Stefano Previdi (sprevidi); martin.pilka@pantheon.tech<mailto:martin.pilka@pantheon.tech>
Subject: [Mapping Server] Conflict Resolution

Hi Experts,

  Could you please explain me what would be the expected behavior in the following scenario in Quarantine approach.

  Mapping entries E1, E2, E3 are Active entries.

  In case, if incoming new entry say X which has conflict with E1, E2 and E3.

  Assume, X is better than E1 but not better than E2.  ( E1 < X < E2)

  1] X is better than E1 so E1 will become excluded entry and X will become an active entry

  2] Now, X is compared with E2. E2 is better than X. So, X will become excluded entry and E2 is an active entry as it was.

So, X and E1 will become "excluded entry".

I couldn't find any info as shown above in the RFC. Can you please clarify ?


My doubts:
1) Will the entry become active only if it wins with all entries which are conflicted with this ?
2) When doing conflict resolution with other entries, it can win with some entries and can lose to some? What could be the behavior ?
     - This is the case which I explained above.
     - In this case, X can become active by winning to E1 and lose E2 which leads X and E1 to become inactive/excluded entry.


can you please clarify ?


Regards,
__tech.kals__


_______________________________________________
spring mailing list
spring@ietf.org<mailto:spring@ietf.org>
https://www.ietf.org/mailman/listinfo/spring