Re: [spring] draft-ietf-spring-srv6-network-programming - IPv6 Addresses and SIDs

Gyan Mishra <hayabusagsm@gmail.com> Thu, 10 October 2019 02:58 UTC

Return-Path: <hayabusagsm@gmail.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 70066120048 for <spring@ietfa.amsl.com>; Wed, 9 Oct 2019 19:58:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.997
X-Spam-Level:
X-Spam-Status: No, score=-1.997 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.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 BOYiocYZ9p-N for <spring@ietfa.amsl.com>; Wed, 9 Oct 2019 19:58:08 -0700 (PDT)
Received: from mail-qk1-x72c.google.com (mail-qk1-x72c.google.com [IPv6:2607:f8b0:4864:20::72c]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 4C412120046 for <spring@ietf.org>; Wed, 9 Oct 2019 19:58:08 -0700 (PDT)
Received: by mail-qk1-x72c.google.com with SMTP id w2so4266458qkf.2 for <spring@ietf.org>; Wed, 09 Oct 2019 19:58:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:mime-version:subject:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=U76ewHe0DyxgunXBZDjIDUNrrhF05Oes2UnvgLju8aY=; b=Cr57PvJ3P90wmareYRoWoekU+RMAMRKJi0hcrdWz7QAsBpW0E/nteO5wU2grWk8ntR ontQP2u5X5TLNhlK4KdJp3SJeKSFJTIjWtPyGUTCu/7sJdPv4U7fhmtd1by4d47vUXWB FIIqkI2+1JcC2iOLcLV3PxzKpokc57NMz02/T/W6iG5Aa5DuNiSX9DbIwpormp4ax6Kg 72xM/XUdp/cTbTX42HSWuApNENxSUsu7CwI125FmJerZE4XZV3uYxxjl+c8t/69r3R31 ZuY2JtyX7j/R5kY/OqxPpFFVy33sU/pSvYrJ3ilVZtzPM30Gg5dl4uVbqh20wRm3pFib iagg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:mime-version:subject:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=U76ewHe0DyxgunXBZDjIDUNrrhF05Oes2UnvgLju8aY=; b=k3R6U7K6u0W0roaBi3seBHDuSSteJb/kUmsWI5qgOLdmcm0I7ErYMKRX1U21tLpROB LTLtYF/nTXsq8ZpZUIlE8ThjjTzUSHjZWegs1ZtnoIYEGKgaDTArZufUx5G6AbAakUNP ABV+A/5wTlnaZZU3Tg4XL4xfnJOkHk4gmqa0V+O1jYaSlIo7SEmYndDqwGGAPZ/nHl2K dmJQVSKQoNcVj8rIV20egNMnJawRzhqiRojKV+VXkuC3Pa/5ZY4wlFRxI4ki90e98n2A AbyVMhFVcvu94q9Xz1VAimA7X1KvnU39KdLFEOqJc1Hmqtu5bdotwPegZCQIURndKfRo Sgkw==
X-Gm-Message-State: APjAAAXUptuzsIJlw6Vo2FpKIsQdbxdVy04aF3B+f3tHLekbOR0JiOCC v9oP+YPqMzYygQOabf6meIxINQTXlNY=
X-Google-Smtp-Source: APXvYqzNss4B2swHY74lQn9ehgZOtSyks78qFFBWFcuVUl0UDdzFcRNaTC8Oy+6e7E7XU3txJD+S8w==
X-Received: by 2002:a37:7dc7:: with SMTP id y190mr7337597qkc.244.1570676286736; Wed, 09 Oct 2019 19:58:06 -0700 (PDT)
Received: from [192.168.1.213] (pool-72-83-194-140.washdc.fios.verizon.net. [72.83.194.140]) by smtp.gmail.com with ESMTPSA id d40sm2461780qtk.6.2019.10.09.19.58.05 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 09 Oct 2019 19:58:05 -0700 (PDT)
From: Gyan Mishra <hayabusagsm@gmail.com>
X-Google-Original-From: Gyan Mishra <hayabusaGSM@gmail.com>
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (1.0)
X-Mailer: iPhone Mail (16G102)
In-Reply-To: <BN7PR05MB5699E5EA714CC64456771712AE940@BN7PR05MB5699.namprd05.prod.outlook.com>
Date: Wed, 09 Oct 2019 22:58:04 -0400
Cc: Fernando Gont <fgont@si6networks.com>, SPRING WG List <spring@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <1076F074-EB35-4D38-9949-4A241C946E07@gmail.com>
References: <SN6PR05MB5710CBAF8E6DF307401A2166AE9D0@SN6PR05MB5710.namprd05.prod.outlook.com> <f5eb739b-9ae4-433e-e6c0-8bcdb7bc575e@si6networks.com> <BYAPR05MB5703169601886283700608A5AE9F0@BYAPR05MB5703.namprd05.prod.outlook.com> <B6FE2A8B-B23B-4E9C-BB33-F6A5BD78C52B@gmail.com> <BN7PR05MB5699E5EA714CC64456771712AE940@BN7PR05MB5699.namprd05.prod.outlook.com>
To: Ron Bonica <rbonica@juniper.net>
Archived-At: <https://mailarchive.ietf.org/arch/msg/spring/FpbTIjYUW0LBn1TGFeNM-1JsWlk>
Subject: Re: [spring] draft-ietf-spring-srv6-network-programming - IPv6 Addresses and SIDs
X-BeenThere: spring@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "Source Packet Routing in NetworkinG \(SPRING\)" <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: Thu, 10 Oct 2019 02:58:11 -0000

Hi Ron, 

I read that as well in my SRv6 studies so thinking about it logically from an IGP ospf or ISIS longest match routing IPv6 FIB entry perspective for me makes sense to understand the SRv6 IPv6 data plane.  So I think my interpretation is that the 128 bit SID is broken up into hierarchy fields with intelligence but from a routing perspective it’s an IPv6 address of a connected interface on a P or PE router which is a /127 for p2p links however it defines your “next hop” NH or “next next hop” NNH in the legacy MPLS TE FRR node or path protection or IP-LFA/Remote LFA or you can think of it like a MPLS TE autoroute or FA (forwarding adjacencies) and to use that path you have to static next hop to the tunnel but in this SRv6 case it’s a next hop IPv6 address which is a full 128 bit address that is in the SID entry in the SID list as the next hop for your FEC destination in the IPv6 FIB entry.

To make this easier for me to understand the SRv6 spec and how to interpret lets think of an example of a service provider core with an IPv6 data plane path between ingress PE and egress and a egress FEC which is the loopback0 for your ibgp peering vpn services which is the IPv6 destination last SID entry in the SID list which the one hop prior P would do it’s normal PSP similar to PHP in the mpls world.  So now imagine each P router along the path to the destination PE has a bunch of /127 p2p links.  So now the 1st SID entry would be to the next hop P from the originating PE that inserted the EH routing type 4 header SRH to source route the traffic along the engineered path.  So now if you examine that 1st SID entry it is a 128 bit address with embedded information such as the function and arguments in the station id so the actual IPv6 FIB entry for the egress PE FEC destination would have a next hop of the P router which is the SID what the 1st SID contains which is a 128 bit address to route to the 1st node which is the next hop PE. Once the packet arrives at the 1st node in the case the ingress P the station id IID is decoded for any functions or argument the need to be executed by the instruction PSSI. 

That’s my interpretation but I have to build this out in the lab do dig deeper into the bits and bytes.  

Cheers,

Gyan

Sent from my iPhone

> On Oct 9, 2019, at 8:02 PM, Ron Bonica <rbonica@juniper.net> wrote:
> 
> Gyan,
> 
> If the Locator were guaranteed to be 64 bits, as you suggest, there would be no problem. However, the following text from Section 3.1 suggests otherwise.
> 
> "   An SRv6 SID is represented as LOC:FUNCT where LOC (locator) is the L
>   most significant bits and FUNCT (function) is the 128-L least
>   significant bits of the SID.  L is called the locator length and is
>   flexible.  Each operator is free to use the locator length it
>   chooses.  Most often the locator is routable and leads to the node
>   which instantiates that SID.  A control-plane protocol might
>   represent the locator as B:N where B is the SRv6 SID block (IPv6
>   subnet allocated for SRv6 SIDs by the operator) and N is the
>   identifier of the parent node."
> 
>                                                                    Ron
> 
> 
> 
> Juniper Business Use Only
> 
> -----Original Message-----
> From: Gyan Mishra <hayabusagsm@gmail.com> 
> Sent: Wednesday, October 9, 2019 7:21 PM
> To: Ron Bonica <rbonica@juniper.net>
> Cc: Fernando Gont <fgont@si6networks.com>; SPRING WG List <spring@ietf.org>
> Subject: Re: [spring] draft-ietf-spring-srv6-network-programming - IPv6 Addresses and SIDs
> 
> 
> 
> In-line comments 
> 
> Thanks 
> 
> Gyan
> 
> Sent from my iPhone
> 
>> On Oct 3, 2019, at 12:25 PM, Ron Bonica <rbonica=40juniper.net@dmarc.ietf.org> wrote:
>> 
>> Fernando,
>> 
>> Someone should. I think that the expertise to do this is in 6man.
>> 
>>                                 Ron
>> 
>> 
>> Juniper Business Use Only
>> 
>> -----Original Message-----
>> From: Fernando Gont <fgont@si6networks.com>
>> Sent: Wednesday, October 2, 2019 3:11 PM
>> To: Ron Bonica <rbonica@juniper.net>; SPRING WG List <spring@ietf.org>
>> Subject: Re: [spring] draft-ietf-spring-srv6-network-programming - 
>> IPv6 Addresses and SIDs
>> 
>>> On 1/10/19 23:30, Ron Bonica wrote:
>>> Authors,
>>> 
>>> 
>>> 
>>> The document should include a discussion of the relationship between
>>> IPv6 addresses and SIDs. For example:
>>> 
>>> 
>>> 
>>> * From what address space can SIDs be drawn? Link local? Multicast? ULA?
>>> * Can a locator be longer than 64 bits? If so, how can the rest of the
>>>   /64 be used?
>> 
>> I'm not saying that this shouldn't be done or that it is a bad idea, 
>> but I'm curious if is anybody looking at this from a higher level?  
>> (these seems pretty architectural to me)
>> 
>> Thanks,
>> --
>> Fernando Gont
>> SI6 Networks
>> e-mail: fgont@si6networks.com
>> PGP Fingerprint: 6666 31C6 D484 63B2 8FB1 E3C4 AE25 0D55 1D4E 7492
>> 
>> 
> 
> [Gyan] The SRv6 SID format is below:
> 
> So from an IPv6 data plane forwarding perspective the fixed length 64 bit Locator is copied hop by hop into the destination address of the IPv6 header to the tail end FEC destination egress PE and during failover Ti-LFA kicks in additional EH is inserted {violating RFC 8200} at the PLR NNHOP to the similar to RLFA PQ node.
> 
> So with SRV6 native traffic engineering the locator is either the physical IP on ingress interface along each hop or loopback along each hop and so is either a GUA or ULA but not LL or multicast address is what I understand from a technical standpoint.
> 
> From everything I have read the SID is fixed at 64 bit length maximum but I guess you can have a smaller then 64 bit locator.
> 
> I am working on getting this setup in the lab now so that will really help understand the real world implementations.
> 
> SRv6 SID format:
> 
> 128-bits Segment IDs can be used and allocated for different purposes, for example:
> • The first 64 bits can be used to direct traffic to a specific node in the network – the “main body” of the program • The next 32 bits can be used to enforce some actions on the traffic – the “function”part • The remaining 32 bits can be used to pass some additional information – the “argument” part 128-bit SRv6 SID
> Locator: routed to the node performing the function Function: any possible function Flexible bit-length selection
> 
>> 
>> _______________________________________________
>> spring mailing list
>> spring@ietf.org
>> https://urldefense.com/v3/__https://www.ietf.org/mailman/listinfo/spri
>> ng__;!8WoA6RjC81c!UP3yJRwYfx17fPimClpX4-wcZU8JT55LIEZGQRTz6hag6LoSzz8K
>> kBJW9qEVHARw$