Re: [IPFIX] basicList clarification

Gerald Naveen A <> Tue, 15 December 2015 15:04 UTC

Return-Path: <>
Received: from localhost ( []) by (Postfix) with ESMTP id F39B11A8AB9 for <>; Tue, 15 Dec 2015 07:04:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Status: No, score=-1.999 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, HTML_MESSAGE=0.001, SPF_PASS=-0.001] autolearn=ham
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id qXi4CTsfb2Lq for <>; Tue, 15 Dec 2015 07:04:18 -0800 (PST)
Received: from ( [IPv6:2607:f8b0:4003:c06::22f]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by (Postfix) with ESMTPS id D1BF91A8AAD for <>; Tue, 15 Dec 2015 07:04:17 -0800 (PST)
Received: by with SMTP id o62so1589638oif.3 for <>; Tue, 15 Dec 2015 07:04:17 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=dljP3/P7Hxixl4SA0EppY124k6DjimLIjAevCVSUiv0=; b=qxxdT7Pb0DYVbkCiQM/R0tef4VaWAy1ux+BAVW8pdi+R/f2L02lqfFY+Y5ydO596iN fQsd8nav26xJLJrI/ZLhyqu1FsU+k0Z7xFA+4H3UIUEPsRPMJfILyw7MiEzQ6/ht9K7M x2+4fWhqh07rHmeMO72Jdh0zqAXmGEaWBF+6gKZuBrPGUZw+AhWLvIyxmojeQQj6fXd2 KK8w+mY4USL0ROq1XZB8nq+g1QjxNFc9zk7fMXsJiZxaZlrIwAadCNkfe6AacRebzsLc iDo0DbSTtFdlNthcwhnz9nGg0hmNlMpkNaQdNnuBUvxRTZWrBcK39B3ub4Yh2LPzE3zr 8RXQ==
MIME-Version: 1.0
X-Received: by with SMTP id l192mr5494806oib.81.1450191857130; Tue, 15 Dec 2015 07:04:17 -0800 (PST)
Received: by with HTTP; Tue, 15 Dec 2015 07:04:17 -0800 (PST)
In-Reply-To: <>
References: <> <>
Date: Tue, 15 Dec 2015 20:34:17 +0530
Message-ID: <>
From: Gerald Naveen A <>
To: Paul Aitken <>
Content-Type: multipart/alternative; boundary="001a113de314804b510526f11a87"
Archived-At: <>
Subject: Re: [IPFIX] basicList clarification
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: IPFIX WG discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Tue, 15 Dec 2015 15:04:21 -0000

Hi Paul,

Thanks for the responses. It clarifies for most part; while I would also
like to clarify few things on my question. (tagged [Gerald] inline)

So it appears we would need to define Y as IE and mark X as basicList of Y.

Thanks again

On Tue, Dec 15, 2015 at 6:44 PM, Paul Aitken <> wrote:

> Gerald,
> Hi all,
> It is my understanding from the RFCs that basicList type is an encoding
> for list of IPFIX Information Elements.
> Yes, where the list contains zero or more instances of a single IE.
> To create the template much more strongly typed, we have defined a custom
> (enterprise) Information Element with a new ID (say X), which is defined as
> a basicList of specific items (eg., InterfaceName).
> My question to you all is: Is it mandatory that we have a separate
> information element called InterfaceName (say ID Y) and define X as a
> basicList of Y ?
> Yes, that's how the protocol is defined.
> For our need, it is enough for us, that we define X as a basicList of
> string (as X is already strongly defined). But string is a type, not info
> element.
> We would like to retain X (instead of defining a template directly with a
> standard basicList). And we don't have any other need to define a new
> Information Element Y.
> Y defines the list elements which tells the Collector that the list
> contains strings, and it defines the semantics of those strings - eg
> whether they contain interface names, user names, a list of selectorNames,
> or a list of Application names. Then a basicList of Y tells the Collector
> that you're exporting zero or more of them.
[Gerald] This is definitely a choice. However, as I mentioned, this makes
the template weakly typed (ie., the element is just #291 basicList). We
would like to enforce stronger types at the template itself (this was the
motive behind defining X)

> Perhaps you should define Y as a single instance of X (so Y is well
> defined), then redefine X as a basicList of Y. Or if you don't want/need to
> define both X and Y, then use the basicList IE #291 to export a basicList
> of (strongly defined) Y.
[Gerald] Yes, this is also a choice; but we don't need Y for any other
reason except to fit into the basicList detail. So wanted to know if that
can be avoided. I got my answer: No (if strongly typed templates).

> I realize that the basicList encoding has a information-element ID of the
> item in payload -- is this mandatory?
> Yes. The encoding would not be interoperable without it.
> Or for a strongly typed item X, we could expect the IPFIX parser to be
> aware of contents (interface name) by contract?
> No. Every collector which implements RFC 6313 (IPFIX Structured Data)
> should be able to decode a basicList of Y. However, the mechanism which you
> propose requires the collector to have special knowledge of the internals
> of X, which is not scalable. In short, such an Exporter would not be
> interoperable with all Collectors.
[Gerald] X is not a different encoding. X is a basicList (sort of more
strongly typed. ie., X is a basicList of Y). So the encoding is just the
same as #291 standard basicList. But when the template declares a element
as X, it is clearly typed even without having to look into the data (or it
also doesn't let the exporter send X of Z on the same template).

> P.
> Pls let me know if my question is unclear.
> Thanks in advance.
> - Gerald Naveen
> The custom IE which you've defined must contain meta-data about the list
> such as an element count, element lengths, delimiters or separators. It
> creates a new way of encoding list information which the collector must
> also understand in addtion to the basicList encoding, which is not useful.
> In short, you should not create list type elements; instead, use the
> basicList mechanism.
[Gerald] Agree. We aren't trying to redefine basicList encoding for sure.

> _______________________________________________
> IPFIX mailing listIPFIX@ietf.org