RFC 7011, "Specification of the IP Flow Information Export (IPFIX) Protocol for the Exchange of Flow Information", September 2013Source of RFC: ipfix (ops)
Errata ID: 7413
Status: Held for Document Update
Publication Format(s) : TEXT
Reported By: Michael Duggan
Date Reported: 2023-04-02
Held for Document Update by: Wa
Date Held: 2023-04-26
Section 3.4.1 says:
Field Count Number of fields in this Template Record.
It should say:
Field Count Number of fields in this Template Record. The Field Count MUST NOT be zero, unless used in a Template Withdrawal.
If the size of data record corresponding to a template can ever be zero, then the only valid size for such a data set is the size of the set header. For normal cases any size greater than that of the set header is a valid size, since records are read from a set until the number of octets remaining is less than the smallest possible record size for that set. If a record size can be zero, then any number of bytes past the header cannot be padding (is not smaller than the smallest record), and a conforming implementation might return an infinite number of zero-sized records. As this could cause a denial of service situation, rejecting templates that define zero-sized records seems to be the simplest solution.
Similar text may be necessary for Option Template records, though the fact that the scope count MUST be non-zero may negate the necessity.
WK: See thread https://mailarchive.ietf.org/arch/msg/ipfix/AkCZr1jObLt_x9cyQ73qXBlKC2w/ for more info.
WK - 2023-04-26: Update from the original reporter (Michael) and confirmations from authors (Brian and Benoit) that Field Count can be zero in the case of Template Withdrawal. Changing the state from Verified to HFDU, so that this can be better clarified in any future updates.