Subject: Re: [ippm] Review on draft-ietf-ippm-ioam-data-06

From: "Frank Brockners (fbrockne)" <[email-masked]>
Date: Mon, 2 Sep 2019 08:19:26 +0000

Hi Anoop,

WRT/ the use of GRE encap: There was an earlier discussion among authors and interested parties which I’m attaching here.
This discussion is also captured in the open issue #128: https://github.com/inband-oam/ietf/issues/128

Frank

From: Anoop Ghanwani <[email-masked]>
Sent: Samstag, 24. August 2019 00:02
To: [email-masked]
Cc: Frank Brockners (fbrockne) <[email-masked]>; [email-masked]; IETF IPPM WG <[email-masked]>; Hugh Holbrook <[email-masked]>; OU, Heidi <[email-masked]>; Surendra Anubolu <[email-masked]>
Subject: Re: [ippm] Review on draft-ietf-ippm-ioam-data-06

Hi Frank,

As with Vijay, I am also interested in understanding the use of GRE for in-sequencing OAM.  Do we end up needing an Ethertype for TCP/UDP?

Thanks,
Anoop

On Thu, Aug 22, 2019 at 10:06 AM Vijay Rangarajan <vijayr=[email-masked]<mailto:[email-masked]>> wrote:
Hi Frank:
Thanks, I knew I was missing something.
So basically what you are saying is - let's say we have a UDP packet, we are just going to stick in the GRE header and IOAM Header and Metadata in-between the original IP and UDP headers?

So, the next protocol in the IOAM Header should indicate the L4 protocol - i.e UDP/TCP?
Looking at https://datatracker.ietf.org/doc/draft-weis-ippm-ioam-eth/, it actually defines the "Next protocol" in the IOAM header to be an ethertype value?

Thanks,
Vijay

On Thu, Aug 22, 2019 at 6:22 PM Frank Brockners (fbrockne) <[email-masked]<mailto:[email-masked]>> wrote:
Hi Vijay,

note that you don’t necessarily need to “tunnel” – you can just use the GRE header to sequence-in IOAM.

Cheers, Frank

From: Vijay Rangarajan <[email-masked]<mailto:[email-masked]>>
Sent: Donnerstag, 22. August 2019 05:31
To: Carlos Pignataro (cpignata) <[email-masked]<mailto:cpignata@cisco..com>>
Cc: Jai Kumar <[email-masked]<mailto:[email-masked]>>; [email-masked]<mailto:[email-masked]>; IETF IPPM WG <[email-masked]<mailto:[email-masked]>>; Frank Brockners (fbrockne) <[email-masked]<mailto:[email-masked]>>; Hugh Holbrook <[email-masked]<mailto:[email-masked]>>; Anoop Ghanwani <[email-masked]<mailto:[email-masked]>>; OU, Heidi <heidi.ou@alibaba-inc..com<mailto:[email-masked]>>; Surendra Anubolu <[email-masked]<mailto:[email-masked]>>; John Lemon <[email-masked]<mailto:[email-masked]>>
Subject: Re: [ippm] Review on draft-ietf-ippm-ioam-data-06

Thanks Carlos, for pointing me to the draft.

Based on my understanding of the two drafts I have the following questions and concerns:

  1.  If I understand correctly, to deploy inband telemetry, we would need to construct GRE tunnels coinciding with the IOAM domain?
  2.  GRE typically requires configuration to provision the tunnels. Provisioning and managing these tunnels and keeping these updated as the network grows/shrinks could be a significant overhead.
  3.  In order to get the benefit of telemetry, we are imposing a change in forwarding protocol/topology and configuration - which, I feel is not desirable. For example, a customer might have basic L3 routing enabled and the expectation would be for inband telemetry to work seamlessly, without having to revamp the network with GRE tunnels and such. This could be a significant barrier to deployment.
  4.  If sampling is used to select packets for performing IOAM encap, is the expectation that only sampled IOAM packets go through GRE encap? Or all data packets?
  5.  Due to network nodes inserting the IOAM data, the inner L3/L4 headers keep getting pushed deeper. I would imagine this gets challenging for ASICs to access these fields for hashing/load balancing.
  6.  Assuming only a subset of packets in a flow are subject to IOAM (based on sampling), how do we ensure these packets take the same network path as the rest of the packets in the flow?
Thanks,
Vijay

On Wed, Aug 21, 2019 at 5:04 PM Carlos Pignataro (cpignata) <[email-masked]<mailto:[email-masked]>> wrote:
Hello, Vijay,

Please see https://datatracker.ietf.org/doc/draft-weis-ippm-ioam-eth/, and the document this replaces.

Thanks!
Thumb typed by Carlos Pignataro.
Excuze typofraphicak errows

2019/08/21 6:35、Vijay Rangarajan <[email-masked]<mailto:[email-masked]>>のメール:
Hello all:
Apologise if this has been previously discussed.
In reading "draft-ietf-ippm-ioam-data-06", I don't see mention of GRE encap. The draft, in fact in Sec 3, says the following - "The in-situ OAM data field can be transported by a variety of transport protocols, including NSH, Segment Routing, Geneve, IPv6, or IPv4.  Specification details for these different transport protocols are outside the scope of this document."

Is there another document, or a description somewhere, that talks about how IOAM is proposed to be carried in GRE? what would be the GRE payload, the GRE protocol type etc?

Thanks,
Vijay

On Wed, Aug 21, 2019 at 7:52 AM Jai Kumar <[email-masked]<mailto:[email-masked]>> wrote:
Hello Frank,

This is in context of our conversation at IETF105. My goal is to provide input and improve current IOAM data draft with the learnings we had with IFA deployment.
This feedback is based on various customer interactions and concerns raised by them wrt IOAM. Each feedback is a longer topic and I am starting this thread as a summary email. This is just highlighting the issues and not yet proposing any solution.

Feedback 1:
Section 4.2.1 Pre-allocated and Incremental Trace Options
Pre-allocated and incremental trace option is 8Bytes long. This can be easily reduced to 4Bytes.
There is a feedback that pre-allocated option is really not needed and either be removed or made optional.
Given that deployments are sensitive to the IOAM overhead (specially in 5G deployments), it’s a 50% fixed overhead savings on a per packet basis.

Feedback 2:
Section 4.1 IOAM Namespaces
Namespaces should be treated as templates (similar to IPFIX template record formats). This is more flexible way of enumerating data. 64K namespace id is a very large namespace and can be reduced to 64 IANA specified name spaces. Separate private name space can be allowed instead of interleaving of opaque data in the IANA allocated name space as suggested in the current draft “opaque state snapshot”.
https://tools.ietf.org/html/rfc7011#section-3.4

Feedback 3:
Section 4.2.1 Pre-allocated and Incremental Trace Options
IOAM-Trace-Type:  A 24-bit identifier which specifies which data
      types are used in this node data list.
This is the most contentious of all. In the current proposal, as new data fields are added, there is a corresponding trace type bit need in the header. This essentially means that all possible data fields need to be enumerated. Given that we there are 64K names spaces allowed, I don’t see how we can fit all possible data fields in this 24bit vector. I know there was a suggestion of keeping last bit as an extension bit but it is still scalable and/or easy to implement in hardware. Besides this the data fields are not annotated/encoded with the data type, something like in IPFIX https://tools.ietf.org/html/rfc7011#section-6.1

Feedback 4:
There is no version field in the data header and this will make interoperability challenging. Standard will evolve and headers bit definition and/or trace type will change and without version field HW will not be able to correctly handle the IOAM data headers.

Feedback 5:
Handling of TCP/UDP traffic using GRE encap is not acceptable. Here are some of the issues I can think of

  *   GRE encaped IOAM packets will traverse a different network path then the original packet
  *   Not all packets can be GRE encaped to avoid the previous problem, due to wastage of network bandwidth (typically sampled traffic is used for IOAM). What about native GRE traffic, will it get further encaped in another GRE tunnel and so forth.
  *   IP header protocol will point to GRE IP proto and IOAM ethertype (pending allocation by IEEE) need to be read from the GRE header to detect an IOAM packet. This means parsing performance penalty for all regular GRE (non IOAM) traffic.

Thanks,
-Jai

_______________________________________________
ippm mailing list
[email-masked]<mailto:[email-masked]>
https://www.ietf.org/mailman/listinfo/ippm

Subject: Re: IOAM GRE Encapsulation Question
From: "Brian Weis (bew)" <[email-masked]>
To: John Lemon <[email-masked]>
Cc: "Frank Brockners (fbrockne)" <[email-masked]>, "Shwetha Bhandari (shwethab)" <[email-masked]>, Tal Mizrahi <[email-masked]>, Mickey Spiegel <[email-masked]>, Barak Gafni <[email-masked]>, Aviv Kfir <[email-masked]>, "Ramesh Sivakolundu (sramesh)" <[email-masked]>, "[email-masked]" <[email-masked]>
Date: Mon, 17 Dec 2018 04:19:33 +0000

Hi John,

One nit. I apologize, but when sending the earlier email I mistakenly referred to GRE as following an Ethernet header. But to my knowledge there is no standardized EtherType for GRE itself. GRE is IP protocol 47, so should following an IP header. So my packet examples were missing an IP header, and so I assume so were yours.

   On Dec 12, 2018, at 3:37 PM, John Lemon <[email-masked]<mailto:[email-masked]>> wrote:

   Hi Brian,

   Actually, what I was asking about was:

            BEFORE APPLYING IOAM
            ------------------------------------------
     IPv4   | ETH | GRE | NOT IOAM | IP | TCP | Data |

            ------------------------------------------

   I had been thinking about adding IOAM to an un-tunneled packet in my original example. I assume here that the “NOT IOAM” is another tunnel header of some kind, since there’s an IP header following it, so you're starting with a tunneled IP packet and you want to add an IOAM header and data.

   BEFORE APPLYING IOAM
         -----------------------------------------------
IPv4 | ETH | IP | GRE | NOT IOAM | IP | TCP | Data |
-----------------------------------------------

The above is what I would actually expect. I didn’t bother to fix the examples below.

            AFTER APPLYING IOAM, POSSIBILITY 1
            -------------------------------------------------
     IPv4   | ETH | GRE | NOT IOAM | IOAM | IP | TCP | Data |
            -------------------------------------------------

   This makes sense to me when the “NOT IOAM” header has a next protocol as an EtherType.

            AFTER APPLYING IOAM, POSSIBILITY 2
            -------------------------------------------------
     IPv4   | ETH | GRE | IOAM | NOT IOAM | IP | TCP | Data |
            -------------------------------------------------

   Yep, again this makes sense to me because the IOAM header can link to the “NOT IOAM” header.

            AFTER APPLYING IOAM, POSSIBILITY 3
            -------------------------------------------------------------
     IPv4   | ETH | GRE | IOAM | ETH | GRE | NOT IOAM | IP | TCP | Data |
            -------------------------------------------------------------

   That’s gnarly, but looks perfectly legal to me. It’s begging for some form of header compression method as an option. :-)

   Do people think this is worth describing these use cases in a new Appendix to the IOAM Ethernet I-D, or is it too complicated of a topic?

   Thanks,
   Brian

   P.S. - I’m changing my email from [email-masked]<mailto:[email-masked]> to [email-masked]<mailto:[email-masked]>, and I’ve copied the new one on this email.

   Thanks, John

   On Tue, Dec 11, 2018 at 9:20 PM Brian Weis (bew) <[email-masked]<mailto:[email-masked]>> wrote:

      Hi John,

      First of all, I no longer have the need for that confusing language regarding the IOAM Ethertype “Next Protocol” optionally being an IP protocol, so I think it should be removed in the next draft. Lets assume “Next Protocol” is simply an EtherType.  I think that’s probably a lot of the confusion.

      I had envisioned that an IP over GRE packet would look like this:

               BEFORE APPLYING IOAM
               -------------------------
        IPv4   | ETH | IP | TCP | Data |
               -------------------------

               AFTER APPLYING IOAM
               -------------------------------------------------
        IPv4   | ETH | GRE | IOAM HDR + DATA | IP | TCP | Data |

               -------------------------------------------------

      Does that make sense?

      Thanks,
      Brian

         On Dec 11, 2018, at 3:56 PM, John Lemon <[email-masked]<mailto:[email-masked]>> wrote:

         Hi Brian,

         When I have an existing IP over GRE packet that I want to add IOAM to, are you envisaging that this is done via extending the existing GRE encapsulation, by encapsulating the IP packet in a new IP over GRE over previous IP tunnel, or something else?

         Thanks, John

      --
      Brian Weis
      Security, CSG, Cisco Systems
      Telephone: +1 408 526 4796
      Email: [email-masked]<mailto:[email-masked]>

      --
      Brian Weis
      Security, CSG, Cisco Systems
      Telephone: +1 408 526 4796
      Email: [email-masked]<mailto:[email-masked]>

---

From: Anoop Ghanwani <[email-masked]>
Date: Tue, 3 Sep 2019 15:05:33 -0700

Thanks Frank, this is helpful.  It appears the issue is still unresolved.

Anoop

On Mon, Sep 2, 2019 at 1:20 AM Frank Brockners (fbrockne) <
[email-masked]> wrote:

> Hi Anoop,
>
>
>
> WRT/ the use of GRE encap: There was an earlier discussion among authors
> and interested parties which I’m attaching here.
>
> This discussion is also captured in the open issue #128:
> https://github.com/inband-oam/ietf/issues/128
>
>
>
> Frank
>
>
>
> *From:* Anoop Ghanwani <[email-masked]>
> *Sent:* Samstag, 24. August 2019 00:02
> *To:* [email-masked]
> *Cc:* Frank Brockners (fbrockne) <[email-masked]>;
> [email-masked]; IETF IPPM WG <[email-masked]>; Hugh
> Holbrook <[email-masked]>; OU, Heidi <[email-masked]>;
> Surendra Anubolu <[email-masked]>
> *Subject:* Re: [ippm] Review on draft-ietf-ippm-ioam-data-06
>
>
>
> Hi Frank,
>
>
>
> As with Vijay, I am also interested in understanding the use of GRE for
> in-sequencing OAM.  Do we end up needing an Ethertype for TCP/UDP?
>
>
>
> Thanks,
>
> Anoop
>
>
>
> On Thu, Aug 22, 2019 at 10:06 AM Vijay Rangarajan <vijayr=
> [email-masked]> wrote:
>
> Hi Frank:
>
> So basically what you are saying is - let's say we have a UDP packet, we
> are just going to stick in the GRE header and IOAM Header and Metadata
> in-between the original IP and UDP headers?
>
>
>
> Looking at https://datatracker.ietf.org/doc/draft-weis-ippm-ioam-eth/, it
> actually defines the "Next protocol" in the IOAM header to be an ethertype
> value?
>
>
>
> Thanks,
>
> Vijay
>
>
>
>
>
> On Thu, Aug 22, 2019 at 6:22 PM Frank Brockners (fbrockne) <
> [email-masked]> wrote:
>
> Hi Vijay,
>
>
>
> *From:* Vijay Rangarajan <[email-masked]>
> *Sent:* Donnerstag, 22. August 2019 05:31
> *To:* Carlos Pignataro (cpignata) <[email-masked]
> <cpignata@cisco..com>>
> *Cc:* Jai Kumar <[email-masked]>;
> [email-masked]; IETF IPPM WG <[email-masked]>; Frank
> Brockners (fbrockne) <[email-masked]>; Hugh Holbrook <
> [email-masked]>; Anoop Ghanwani <[email-masked]>; OU, Heidi
> <heidi.ou@alibaba-inc..com <[email-masked]>>; Surendra Anubolu <
> [email-masked]>; John Lemon <[email-masked]>
> *Subject:* Re: [ippm] Review on draft-ietf-ippm-ioam-data-06
>
>
>
>    1. If I understand correctly, to deploy inband telemetry, we would
>    need to construct GRE tunnels coinciding with the IOAM domain?
>    2. GRE typically requires configuration to provision the tunnels.
>    Provisioning and managing these tunnels and keeping these updated as the
>    network grows/shrinks could be a significant overhead.
>    3. In order to get the benefit of telemetry, we are imposing a change
>    in forwarding protocol/topology and configuration - which, I feel is not
>    desirable. For example, a customer might have basic L3 routing enabled and
>    the expectation would be for inband telemetry to work seamlessly, without
>    having to revamp the network with GRE tunnels and such. This could be a
>    significant barrier to deployment.
>    4. If sampling is used to select packets for performing IOAM encap, is
>    the expectation that only sampled IOAM packets go through GRE encap? Or all
>    data packets?
>    5. Due to network nodes inserting the IOAM data, the inner L3/L4
>    headers keep getting pushed deeper. I would imagine this gets challenging
>    for ASICs to access these fields for hashing/load balancing.
>    6. Assuming only a subset of packets in a flow are subject to IOAM
>    (based on sampling), how do we ensure these packets take the same network
>    path as the rest of the packets in the flow?
>
> Thanks,
>
> Vijay
>
>
>
>
>
> On Wed, Aug 21, 2019 at 5:04 PM Carlos Pignataro (cpignata) <
> [email-masked]> wrote:
>
> Hello, Vijay,
>
>
>
> 2019/08/21 6:35、Vijay Rangarajan <[email-masked]>のメール:
>
> Hello all:
>
> In reading "draft-ietf-ippm-ioam-data-06", I don't see mention of GRE
> encap. The draft, in fact in Sec 3, says the following - "The in-situ OAM
> data field can be transported by a variety of transport protocols,
> including NSH, Segment Routing, Geneve, IPv6, or IPv4.  Specification
> details for these different transport protocols are outside the scope of
> this document."
>
>
>
> Is there another document, or a description somewhere, that talks about
> how IOAM is proposed to be carried in GRE? what would be the GRE payload,
> the GRE protocol type etc?
>
>
>
> Thanks,
>
> Vijay
>
>
>
>
>
> On Wed, Aug 21, 2019 at 7:52 AM Jai Kumar <[email-masked]> wrote:
>
> Hello Frank,
>
>
>
> This is in context of our conversation at IETF105. My goal is to provide
> input and improve current IOAM data draft with the learnings we had with
> IFA deployment.
>
> This feedback is based on various customer interactions and concerns
> raised by them wrt IOAM. Each feedback is a longer topic and I am starting
> this thread as a summary email. This is just highlighting the issues and
> not yet proposing any solution.
>
>
>
>
>
> Feedback 1:
>
> Given that deployments are sensitive to the IOAM overhead (specially in 5G
> deployments), it’s a 50% fixed overhead savings on a per packet basis.
>
>
>
>
>
> Feedback 2:
> Namespaces should be treated as templates (similar to IPFIX template
> record formats). This is more flexible way of enumerating data. 64K
> namespace id is a very large namespace and can be reduced to 64 IANA
> specified name spaces. Separate private name space can be allowed instead
> of interleaving of opaque data in the IANA allocated name space as
> suggested in the current draft “opaque state snapshot”.
>
> This is the most contentious of all. In the current proposal, as new data
> fields are added, there is a corresponding trace type bit need in the
> header. This essentially means that all possible data fields need to be
> enumerated. Given that we there are 64K names spaces allowed, I don’t see
> how we can fit all possible data fields in this 24bit vector. I know there
> was a suggestion of keeping last bit as an extension bit but it is still
> scalable and/or easy to implement in hardware. Besides this the data fields
> are not annotated/encoded with the data type, something like in IPFIX
> https://tools.ietf.org/html/rfc7011#section-6.1
>
>
>
> Feedback 4:
>
> There is no version field in the data header and this will make
> interoperability challenging. Standard will evolve and headers bit
> definition and/or trace type will change and without version field HW will
> not be able to correctly handle the IOAM data headers.
>
>
>
> Feedback 5:
>
>    - GRE encaped IOAM packets will traverse a different network path then
>    the original packet
>    - Not all packets can be GRE encaped to avoid the previous problem,
>    due to wastage of network bandwidth (typically sampled traffic is used for
>    IOAM). What about native GRE traffic, will it get further encaped in
>    another GRE tunnel and so forth.
>    - IP header protocol will point to GRE IP proto and IOAM ethertype
>    (pending allocation by IEEE) need to be read from the GRE header to detect
>    an IOAM packet. This means parsing performance penalty for all regular GRE
>    (non IOAM) traffic.
>
>
>
> Thanks,
>
> -Jai
>
>
>
> [email-masked]