[prev in list] [next in list] [prev in thread] [next in thread] 

List:       ipng
Subject:    Re:  [spring] Per segment service instructions
From:       Tarek Saad <tsaad.net () gmail ! com>
Date:       2019-09-17 16:56:13
Message-ID: BYAPR19MB3415C64F7051394C38877E1EFC8F0 () BYAPR19MB3415 ! namprd19 ! prod ! outlook ! com
[Download RAW message or body]

Dan,

Inline..

From: "Bernier, Daniel" <daniel.bernier@bell.ca>
Date: Tuesday, September 17, 2019 at 10:30 AM
To: Ron Bonica <rbonica@juniper.net>, Tarek Saad <tsaad.net@gmail.com>, Robert Raszuk \
                <robert@raszuk.net>
Cc: SPRING WG <spring@ietf.org>, 6man <6man@ietf.org>
Subject: RE: [spring] Per segment service instructions

Tarek,

My feeling is it kind of defeats the purpose. The value prop of SRv6+ was the \
separation of forwarding (LOCATOR) from service (FUNCTION) in different EH. Now to \
avoid having domain-wide alignment of PSSI values, you would re-introduce a SID in \
the 32bit section of PSSI to make it unique again. [TS]: indeed, topological and \
service SID separation is maintained in different EHs. The idea was to limit the \
scope of a PSSI to per node by optionally namespacing it (encoding a node ID).

Regards,
Tarek

Regards,
Daniel Bernier



On 2019-09-16, 12:44 PM, "Ron Bonica" \
<rbonica@juniper.net<mailto:rbonica@juniper.net>> wrote:


Good idea!!




Juniper Business Use Only
From: Tarek Saad <tsaad.net@gmail.com>
Sent: Monday, September 16, 2019 11:59 AM
To: EXT - daniel.bernier@bell.ca <daniel.bernier@bell.ca>; Ron Bonica \
                <rbonica@juniper.net>; Robert Raszuk <robert@raszuk.net>
Cc: SPRING WG <spring@ietf.org>; 6man <6man@ietf.org>
Subject: Re: [spring] Per segment service instructions

Hi all,

A possible way to avoid domain wide scope of PSSI, would be to encode a per node ID \
within the PSSI (per node namespace of Service IDs). This allows the node parsing the \
DOH to identify PSSI(s) that needs to be invoked locally and to resolve the Service \
ID within its node scope. The per node ID can be a SRV6+ short SID that is \
instantiated locally on the node.

So, a PSSI = Short-SID.SE1

DOH can contain:
Short-SID1.SE1
Short-SID2.SE2
Etc.

Regards,
Tarek



From: spring <spring-bounces@ietf.org<mailto:spring-bounces@ietf.org>> on behalf of \
                "Bernier, Daniel" \
                <daniel.bernier@bell.ca<mailto:daniel.bernier@bell.ca>>
Date: Saturday, September 14, 2019 at 1:03 AM
To: Ron Bonica <rbonica=40juniper.net@dmarc.ietf.org<mailto:rbonica=40juniper.net@dmarc.ietf.org>>, \
                Robert Raszuk <robert@raszuk.net<mailto:robert@raszuk.net>>
Cc: SPRING WG <spring@ietf.org<mailto:spring@ietf.org>>, 6man \
                <6man@ietf.org<mailto:6man@ietf.org>>
Subject: Re: [spring] Per segment service instructions

Hi Ron,

If PSSI provide non-routing services such as SE1 from Robert’s example which offers \
DPI, FW and Packet Replication then, I need a domain-wide PSSI defining DPI + FW + \
Sampling but if somewhere else in my network I just need FW, then I need another \
domain-wide PSSI for only FW. In that model, I will end up with and endless list of \
permutations which must be agreed upon to ensure interop (i.e. vendor A cannot use a \
PSSI X for FW while vendor B think’s its DPI). Thx
Dan B



On 2019-09-13, 2:10 PM, "ipv6 on behalf of Ron Bonica" \
<ipv6-bounces@ietf.org<mailto:ipv6-bounces@ietf.org> on behalf of \
rbonica=40juniper.net@dmarc..ietf.org<mailto:rbonica=40juniper.net@dmarc.ietf.org>> \
wrote:

Robert,

In your email, you ask how I would solve a TE problem with a Per Segment Service \
Instruction (PSSI).. In SRv6+:


-          The CRH and the SIDs that it contains are used to solve TE problems

-          The PSSI is used too provide non-routing services (e.g., firewalling, \
sampling, DPI)

This leaves the following questions to be answered:


-          How would I solve the TE problem that you describe in your email?

-          Given another example, explain how PSSI works?

Which question would you like me to tackle first?

                                                                    Ron


From: Robert Raszuk <robert@raszuk.net<mailto:robert@raszuk.net>>
Sent: Friday, September 13, 2019 8:45 AM
To: Ron Bonica <rbonica@juniper.net<mailto:rbonica@juniper.net>>
Cc: SPRING WG <spring@ietf.org<mailto:spring@ietf.org>>; 6man \
                <6man@ietf.org<mailto:6man@ietf.org>>
Subject: Per segment service instructions

Dear Ron,

I have read yet one more draft from the SRv6+ package defining another Destination \
Option type - this time Per Segment Service Instruction(s) described in \
draft-bonica-6man-seg-end-opt

I have one technical question regarding it.

Imagine I have following topology - drawing only what is relevant to the question:

PE1 - - P1 - - SE1 - - P2 - -  SE2 - - P3 - - PE2

When packet enters the network PE1 is instructed to program my flow A to execute \
following following functions on Segment End 1 (SE1) and Segment End 2 (SE2):

SE1 - When packet is routed out of SE1 consider only interfaces of bw 10G and up

SE2 - When packet is routed out of SE2 make sure that path to segment end node is no \
more then 2 hops away.

> From reading the draft I think the answer is that you mandated the segment end \
> functions in SRv6+ to have domain-wide significance such that the function itself \
> contains not only the instruction but also as it is of domain-wide significance the \
> location of the instruction to execute it on.

So far so good ... Flow-A get's CRH and PSSI encoding the above requirement..

When packet enters SE1 Destination Options preceding RH is read and PSSIs are \
attempted to get executed ! Both instructions are tried but only one is known so only \
one get's executed on SE1. Same story on SE2.

Not sure if eveyone would be ok with such model to read and attempt to execute \
instructions which are not for a given end segment but let's assume some may accept \
it.

But now how unfortunate it may sound PE1 is receving the flow-B and for flow B the \
requirements are opposite:

SE1 - When packet is routed out of SE1 make sure that path to segment end node is no \
more then 2 hops away.

SE2 - When packet is routed out of SE2 consider only interfaces of bw 10G and up.

Well what do you - simple - you allocate another two domain wide functions and encode \
it in the packet at PSSI DOH on PE1.

But if my description matches the plan you now end up with per flow !!! state in the \
network which is the price to pay for splitting SIDs with its functions into \
completely different headers.

I don't know about others but I think we went in the past via multiple attempts to \
put any per flow state into the large network and it all failed when faced scale.

Also SR specifically in its architecture RFC8402 says that segment routing is \
"maintaining per-flow state only at the ingress node(s) to the SR domain.."

Kind regards,
Robert.



Juniper Business Use Only


[Attachment #3 (text/html)]

<html xmlns:o="urn:schemas-microsoft-com:office:office" \
xmlns:w="urn:schemas-microsoft-com:office:word" \
xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" \
xmlns="http://www.w3.org/TR/REC-html40"> <head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
	{font-family:"Times New Roman \(Body CS\)";
	panose-1:2 11 6 4 2 2 2 2 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
pre
	{mso-style-priority:99;
	mso-style-link:"HTML Preformatted Char";
	margin:0in;
	margin-bottom:.0001pt;
	font-size:10.0pt;
	font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
	{mso-style-priority:34;
	margin-top:0in;
	margin-right:0in;
	margin-bottom:0in;
	margin-left:.5in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msonormal0, li.msonormal0, div.msonormal0
	{mso-style-name:msonormal;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
span.HTMLPreformattedChar
	{mso-style-name:"HTML Preformatted Char";
	mso-style-priority:99;
	mso-style-link:"HTML Preformatted";
	font-family:Consolas;}
p.msonormal00, li.msonormal00, div.msonormal00
	{mso-style-name:msonormal0;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msonormal000, li.msonormal000, div.msonormal000
	{mso-style-name:msonormal00;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msipfooter30b3d538, li.msipfooter30b3d538, div.msipfooter30b3d538
	{mso-style-name:msipfooter30b3d538;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
p.msochpdefault, li.msochpdefault, div.msochpdefault
	{mso-style-name:msochpdefault;
	mso-margin-top-alt:auto;
	margin-right:0in;
	mso-margin-bottom-alt:auto;
	margin-left:0in;
	font-size:10.0pt;
	font-family:"Calibri",sans-serif;}
span.htmlpreformattedchar0
	{mso-style-name:htmlpreformattedchar;
	font-family:Consolas;}
span.emailstyle20
	{mso-style-name:emailstyle20;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.emailstyle21
	{mso-style-name:emailstyle21;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.htmlpreformattedchar00
	{mso-style-name:htmlpreformattedchar0;
	font-family:"Courier New";}
span.emailstyle27
	{mso-style-name:emailstyle27;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.emailstyle28
	{mso-style-name:emailstyle28;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.emailstyle29
	{mso-style-name:emailstyle29;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
span.EmailStyle32
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
..MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style>
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:12.0pt">Dan,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p>&nbsp;</o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt">Inline..<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt"><o:p>&nbsp;</o:p></span></p>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-left:.5in"><b><span \
style="font-size:12.0pt;color:black">From: </span></b><span \
style="font-size:12.0pt;color:black">&quot;Bernier, Daniel&quot; \
&lt;daniel.bernier@bell.ca&gt;<br> <b>Date: </b>Tuesday, September 17, 2019 at 10:30 \
AM<br> <b>To: </b>Ron Bonica &lt;rbonica@juniper.net&gt;, Tarek Saad \
&lt;tsaad.net@gmail.com&gt;, Robert Raszuk &lt;robert@raszuk.net&gt;<br> <b>Cc: \
</b>SPRING WG &lt;spring@ietf.org&gt;, 6man &lt;6man@ietf.org&gt;<br> <b>Subject: \
</b>RE: [spring] Per segment service instructions<o:p></o:p></span></p> </div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><o:p>&nbsp;</o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:.5in"><span \
style="font-size:10.0pt">Tarek,</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:.5in"><span style="font-size:10.0pt">&nbsp;</span><o:p></o:p></p> \
<p class="MsoNormal" style="margin-left:.5in"><span style="font-size:10.0pt">My \
feeling is it kind of defeats the purpose. The value prop of SRv6&#43; was the \
separation of forwarding (LOCATOR) from service (FUNCTION) in different EH. Now to \
avoid having domain-wide  alignment of PSSI values, you would re-introduce a SID in \
the 32bit section of PSSI to make it unique again. <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:12.0pt">[TS]: indeed, topological and \
service SID separation is maintained in different EHs. The idea was to limit the \
scope of a PSSI to per node by optionally namespacing it (encoding a node \
ID).<o:p></o:p></span></p> <p class="MsoNormal"><span \
style="font-size:12.0pt"><o:p>&nbsp;</o:p></span></p> <p class="MsoNormal"><span \
style="font-size:12.0pt">Regards,<o:p></o:p></span></p> <p class="MsoNormal"><span \
style="font-size:12.0pt">Tarek<o:p></o:p></span></p> <p class="MsoNormal" \
style="margin-left:.5in"><span style="font-size:10.0pt">&nbsp;</span><o:p></o:p></p> \
<p class="MsoNormal" style="margin-left:.5in"><span \
style="font-size:10.0pt">Regards,</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:.5in"><span style="font-size:10.0pt">Daniel \
Bernier</span><o:p></o:p></p> <p class="MsoNormal" style="margin-left:.5in"><span \
style="font-size:10.0pt">&nbsp;</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:.5in"><span style="font-size:10.0pt">&nbsp;</span><o:p></o:p></p> \
<p class="MsoNormal" style="margin-left:.5in"><span \
style="font-size:10.0pt">&nbsp;</span><o:p></o:p></p> <div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">On 2019-09-16, 12:44 PM, &quot;Ron \
Bonica&quot; &lt;<a href="mailto:rbonica@juniper.net">rbonica@juniper.net</a>&gt; \
wrote:<o:p></o:p></p> </div>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.0in">&nbsp;<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-left:1.0in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:1.0in">Good idea!!<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:1.0in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:1.0in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:1.0in">&nbsp;<o:p></o:p></p>
<p class="msipfooter30b3d538" align="center" \
style="mso-margin-top-alt:5.0pt;margin-right:0in;margin-bottom:0in;margin-left:1.0in;margin-bottom:..0001pt;text-align:center">
 <span style="font-size:7.0pt;color:black">Juniper Business Use \
Only</span><o:p></o:p></p> <div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal" style="margin-left:1.0in"><b>From:</b> Tarek Saad \
&lt;tsaad.net@gmail.com&gt; <br>
<b>Sent:</b> Monday, September 16, 2019 11:59 AM<br>
<b>To:</b> EXT - daniel.bernier@bell.ca &lt;daniel.bernier@bell.ca&gt;; Ron Bonica \
&lt;rbonica@juniper.net&gt;; Robert Raszuk &lt;robert@raszuk.net&gt;<br> <b>Cc:</b> \
SPRING WG &lt;spring@ietf.org&gt;; 6man &lt;6man@ietf.org&gt;<br> <b>Subject:</b> Re: \
[spring] Per segment service instructions<o:p></o:p></p> </div>
</div>
<p class="MsoNormal" style="margin-left:1.0in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:1.0in"><span style="font-size:12.0pt">Hi \
all,</span><o:p></o:p></p> <p class="MsoNormal" style="margin-left:1.0in"><span \
style="font-size:12.0pt">&nbsp;</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.0in"><span style="font-size:12.0pt">A possible way to avoid \
domain wide scope of PSSI, would be to encode a per node ID within the PSSI (per node \
namespace of Service IDs).</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.0in"><span style="font-size:12.0pt">This allows the node parsing \
the DOH to identify PSSI(s) that needs to be invoked locally and to resolve the \
Service ID within its node scope.. The per node ID can be a SRV6&#43; short  SID that \
is instantiated locally on the node.</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.0in"><span style="font-size:12.0pt">&nbsp;</span><o:p></o:p></p> \
<p class="MsoNormal" style="margin-left:1.0in"><span style="font-size:12.0pt">So, a \
PSSI = Short-SID.SE1</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.0in"><span style="font-size:12.0pt">&nbsp;</span><o:p></o:p></p> \
<p class="MsoNormal" style="margin-left:1.0in"><span style="font-size:12.0pt">DOH can \
contain:</span><o:p></o:p></p> <p class="MsoNormal" style="margin-left:1.0in"><span \
style="font-size:12.0pt">Short-SID1.SE1</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.0in"><span \
style="font-size:12.0pt">Short-SID2.SE2</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.0in"><span style="font-size:12.0pt">Etc.</span><o:p></o:p></p> \
<p class="MsoNormal" style="margin-left:1.0in"><span \
style="font-size:12.0pt">&nbsp;</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.0in"><span \
style="font-size:12.0pt">Regards,</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.0in"><span style="font-size:12.0pt">Tarek</span><o:p></o:p></p> \
<p class="MsoNormal" style="margin-left:1.0in"><span \
style="font-size:12.0pt">&nbsp;</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.0in"><span style="font-size:12.0pt">&nbsp;</span><o:p></o:p></p> \
<p class="MsoNormal" style="margin-left:1.0in"><span \
style="font-size:12.0pt">&nbsp;</span><o:p></o:p></p> <div \
style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in"> <p \
class="MsoNormal" style="margin-left:1.5in"><b><span \
style="font-size:12.0pt;color:black">From: </span></b><span \
style="font-size:12.0pt;color:black">spring &lt;<a \
href="mailto:spring-bounces@ietf.org">spring-bounces@ietf.org</a>&gt; on behalf of \
&quot;Bernier, Daniel&quot; &lt;<a \
href="mailto:daniel.bernier@bell..ca">daniel.bernier@bell.ca</a>&gt;<br> <b>Date: \
</b>Saturday, September 14, 2019 at 1:03 AM<br> <b>To: </b>Ron Bonica &lt;<a \
href="mailto:rbonica=40juniper.net@dmarc.ietf.org">rbonica=40juniper.net@dmarc.ietf.org</a>&gt;, \
Robert Raszuk &lt;<a href="mailto:robert@raszuk.net">robert@raszuk.net</a>&gt;<br> \
<b>Cc: </b>SPRING WG &lt;<a href="mailto:spring@ietf.org">spring@ietf.org</a>&gt;, \
6man &lt;<a href="mailto:6man@ietf.org">6man@ietf.org</a>&gt;<br> <b>Subject: </b>Re: \
[spring] Per segment service instructions</span><o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:1.5in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:1.5in"><span style="font-size:10.0pt">Hi \
Ron,</span><o:p></o:p></p> <p class="MsoNormal" style="margin-left:1.5in"><span \
style="font-size:10.0pt">&nbsp;</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.5in"><span style="font-size:10.0pt">If PSSI provide non-routing \
services such as SE1 from Robert’s example which offers DPI, FW and Packet \
Replication then, I need a domain-wide PSSI defining DPI &#43; FW &#43; Sampling but  \
if somewhere else in my network I just need FW, then I need another domain-wide PSSI \
for only FW.</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.5in"><span style="font-size:10.0pt">In that model, I will end up \
with and endless list of permutations which must be agreed upon to ensure interop \
(i.e. vendor A cannot use a PSSI X for FW while vendor B think’s its  \
DPI).</span><o:p></o:p></p> <p class="MsoNormal" style="margin-left:1.5in"><span \
style="font-size:10.0pt">Thx</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.5in"><span style="font-size:10.0pt">Dan B</span><o:p></o:p></p> \
<p class="MsoNormal" style="margin-left:1.5in"><span \
style="font-size:10.0pt">&nbsp;</span><o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.5in"><span style="font-size:10.0pt">&nbsp;</span><o:p></o:p></p> \
<p class="MsoNormal" style="margin-left:1.5in"><span \
style="font-size:10.0pt">&nbsp;</span><o:p></o:p></p> <div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">On 2019-09-13, 2:10 PM, &quot;ipv6 on \
behalf of Ron Bonica&quot; &lt;<a \
href="mailto:ipv6-bounces@ietf.org">ipv6-bounces@ietf.org</a> on behalf of <a \
href="mailto:rbonica=40juniper.net@dmarc.ietf.org">rbonica=40juniper.net@dmarc.ietf.org</a>&gt; \
wrote:<o:p></o:p></p> </div>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-left:2.0in">Robert,<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:2.0in">In your email, you ask how I would \
solve a TE problem with a Per Segment Service Instruction (PSSI)... In \
SRv6&#43;:<o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:2.0in">&nbsp;<o:p></o:p></p> <p class="MsoListParagraph" \
style="margin-left:2.5in;text-indent:-.25in">-<span \
style="font-size:7.0pt;font-family:&quot;Times New \
Roman&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The \
CRH and the SIDs that it contains are used to solve TE problems<o:p></o:p></p> <p \
class="MsoListParagraph" style="margin-left:2.5in;text-indent:-.25in">-<span \
style="font-size:7.0pt;font-family:&quot;Times New \
Roman&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>The \
PSSI is used too provide non-routing services (e.g., firewalling, sampling, \
DPI)<o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:1.5in">&nbsp;<o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:2.0in">This leaves the following questions to be \
answered:<o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:2.0in">&nbsp;<o:p></o:p></p> <p class="MsoListParagraph" \
style="margin-left:2.5in;text-indent:-.25in">-<span \
style="font-size:7.0pt;font-family:&quot;Times New \
Roman&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>How \
would I solve the TE problem that you describe in your email?<o:p></o:p></p> <p \
class="MsoListParagraph" style="margin-left:2.5in;text-indent:-.25in">-<span \
style="font-size:7.0pt;font-family:&quot;Times New \
Roman&quot;,serif">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
</span>Given another example, explain how PSSI works?<o:p></o:p></p> <p \
class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p> <p \
class="MsoNormal" style="margin-left:2.0in">Which question would you like me to \
tackle first?<o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:2.0in">&nbsp;<o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:2.0in">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n \
bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs \
p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \
Ron<o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:2.0in">&nbsp;<o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:2.0in">&nbsp;<o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:2.0in"><b>From:</b> Robert Raszuk &lt;<a \
href="mailto:robert@raszuk.net">robert@raszuk.net</a>&gt; <br>
<b>Sent:</b> Friday, September 13, 2019 8:45 AM<br>
<b>To:</b> Ron Bonica &lt;<a \
href="mailto:rbonica@juniper.net">rbonica@juniper.net</a>&gt;<br> <b>Cc:</b> SPRING \
WG &lt;<a href="mailto:spring@ietf.org">spring@ietf.org</a>&gt;; 6man &lt;<a \
href="mailto:6man@ietf.org">6man@ietf.org</a>&gt;<br> <b>Subject:</b> Per segment \
service instructions<o:p></o:p></p> <p class="MsoNormal" \
style="margin-left:2.0in">&nbsp;<o:p></o:p></p> <div>
<p class="MsoNormal" style="margin-left:2.0in">Dear Ron,<o:p></o:p></p>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">I have read yet one more draft from \
the SRv6&#43; package defining another Destination Option type - this time Per \
Segment Service Instruction(s) described in&nbsp;<span \
style="color:black">draft-bonica-6man-seg-end-opt</span><o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">I have one technical question \
regarding it.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">Imagine I have following topology - \
drawing only what is relevant to the question:&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">PE1 - - P1 - - SE1 - - P2 - -&nbsp; \
SE2 - - P3 - - PE2<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">When packet enters the network PE1 is \
instructed to program my flow A to execute following following functions on Segment \
End 1 (SE1) and Segment End 2 (SE2):<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">SE1 - When packet is routed out of SE1 \
consider only interfaces of bw 10G and up<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">SE2 - When packet is routed out of SE2 \
make sure that path to segment end node is no more then 2 hops \
away.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">From reading the draft I think the \
answer is that you mandated the segment end functions in SRv6&#43; to have \
domain-wide significance such that the function itself contains not only the \
instruction but also as it  is of domain-wide significance the location of the \
instruction to execute it on.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">So far so good ... Flow-A get's CRH \
and PSSI encoding the above requirement.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">When packet enters SE1 Destination \
Options preceding RH is read and PSSIs are attempted to get executed ! Both \
instructions are tried but only one is known so only one get's executed on SE1. Same \
story on SE2.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">Not sure if eveyone would be ok with \
such model to read and attempt to execute instructions which are not for a given end \
segment but let's assume some may accept it.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">But now how unfortunate it may sound \
PE1 is receving the flow-B and for flow B the requirements are \
opposite:&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">SE1 - When packet is routed out of SE1 \
make sure that path to segment end node is no more then 2 hops \
away.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">SE2 - When packet is routed out of SE2 \
consider only interfaces of bw 10G and up.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">Well what do you - simple - you \
allocate another two domain wide functions and encode it in the packet at PSSI DOH on \
PE1.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">But if my description matches the plan \
you now end up with per flow !!! state in the network which is the price to pay for \
splitting SIDs with its functions into completely different \
headers.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">I don't know about others but I think \
we went in the past via multiple attempts to put any per flow state into the large \
network and it all failed when faced scale.&nbsp;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">Also SR specifically in its \
architecture RFC8402 says that segment routing is &quot;maintaining per-flow state \
only at the ingress node(s) to the SR domain.&quot;<o:p></o:p></p> </div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">Kind regards,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">Robert.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
<p class="MsoNormal" style="margin-left:2.0in">&nbsp;<o:p></o:p></p>
<p class="msipfooter30b3d538" align="center" \
style="margin-left:.5in;text-align:center"> <span \
style="font-size:7.0pt;color:black">Juniper Business Use Only</span><o:p></o:p></p> \
</div> </div>
</div>
</div>
</div>
</body>
</html>



--------------------------------------------------------------------
IETF IPv6 working group mailing list
ipv6@ietf.org
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------

--===============2327104504682133976==--


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic