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

" OU, Heidi " <> Thu, 22 August 2019 18:29 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id BB07B120041; Thu, 22 Aug 2019 11:29:19 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.995
X-Spam-Status: No, score=-1.995 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FROM_EXCESS_BASE64=0.001, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, UNPARSEABLE_RELAY=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: (amavisd-new); dkim=pass (1024-bit key)
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id ZsfYFd3hXNMc; Thu, 22 Aug 2019 11:29:16 -0700 (PDT)
Received: from ( []) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by (Postfix) with ESMTPS id 642F8120A95; Thu, 22 Aug 2019 11:29:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=default; t=1566498552; h=Date:Subject:From:To:Message-ID:Mime-version:Content-type; bh=Lzxiaei+guXdnNxOatjDrY1b1u3u1X4cc1mD3xjkZ9I=; b=VkE8AbVVPrYypNOpXiWtNK6hm3lESHoVFlPT5RVq1LrXKhmlqzZQXm6RVk/0LKCTdAraacHNcSApceKSmtmq1e9JjzxywB6038TaWFzulJlBpbto7zjLBzXan4po09Xgh0jQiaGOGgjCyGd8xi9c2Zj2BBAJRRGxTCFXhNiISiI=
X-Alimail-AntiSpam: AC=PASS; BC=-1|-1; BR=01201311R181e4; CH=green; DM=||false|; FP=0|-1|-1|-1|0|-1|-1|-1; HT=e02c03303;; NM=1; PH=DS; RN=10; SR=0; TI=SMTPD_---.FGa6Ogv_1566498547;
Received: from fp:SMTPD_---.FGa6Ogv_1566498547) by; Fri, 23 Aug 2019 02:29:10 +0800
User-Agent: Microsoft-MacOutlook/
Date: Fri, 23 Aug 2019 02:29:04 +0800
From: "=?UTF-8?B?T1UsIEhlaWRp?=" <>
To: Vijay Rangarajan <>, "Frank Brockners (fbrockne)" <>
CC: "Carlos Pignataro (cpignata)" <>, Jai Kumar <>, "" <>, IETF IPPM WG <>, Hugh Holbrook <>, Anoop Ghanwani <>, Surendra Anubolu <>, John Lemon <>
Message-ID: <>
Thread-Topic: [ippm] Review on draft-ietf-ippm-ioam-data-06
References: <> <> <> <> <> <>
In-Reply-To: <>
Mime-version: 1.0
Content-type: multipart/alternative; boundary="B_3649318149_1720306014"
Archived-At: <>
X-Mailman-Approved-At: Thu, 22 Aug 2019 12:21:12 -0700
Subject: Re: [ippm] Review on draft-ietf-ippm-ioam-data-06
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: IETF IP Performance Metrics Working Group <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Thu, 22 Aug 2019 18:52:57 -0000

Hi Frank,


I also have a question on the encapsulation: If you can get a new ethertype for IOAM, why not insert IOAM data directly after layer2 MAC?  instead of adding a GRE header for IOAM.



From: Vijay Rangarajan <>
Date: Thursday, August 22, 2019 at 7:22 AM
To: "Frank Brockners (fbrockne)" <>
Cc: "Carlos Pignataro (cpignata)" <>om>, Jai Kumar <>om>, "" <>rg>, IETF IPPM WG <>rg>, Hugh Holbrook <>om>, Anoop Ghanwani <>om>, "OU, Heidi" <>om>, Surendra Anubolu <>om>, John Lemon <>
Subject: Re: [ippm] Review on draft-ietf-ippm-ioam-data-06


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, it actually defines the "Next protocol" in the IOAM header to be an ethertype value?






On Thu, Aug 22, 2019 at 6:22 PM Frank Brockners (fbrockne) <> 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 <> 
Sent: Donnerstag, 22. August 2019 05:31
To: Carlos Pignataro (cpignata) <>
Cc: Jai Kumar <>om>;; IETF IPPM WG <>rg>; Frank Brockners (fbrockne) <>om>; Hugh Holbrook <>om>; Anoop Ghanwani <>om>; OU, Heidi <>om>; Surendra Anubolu <>om>; John Lemon <>
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:

If I understand correctly, to deploy inband telemetry, we would need to construct GRE tunnels coinciding with the IOAM domain?
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.
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.
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?
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.
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?




On Wed, Aug 21, 2019 at 5:04 PM Carlos Pignataro (cpignata) <> wrote:

Hello, Vijay, 


Please see, and the document this replaces. 



Thumb typed by Carlos Pignataro. 

Excuze typofraphicak errows

2019/08/21 6:35、Vijay Rangarajan <>のメールt;のメール:

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?






On Wed, Aug 21, 2019 at 7:52 AM Jai Kumar <> 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”.


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


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.