Skip to main content

Early Review of draft-ietf-bmwg-network-tester-cfg-08
review-ietf-bmwg-network-tester-cfg-06-yangdoctors-early-bierman-2025-09-27-01

Request Review of draft-ietf-bmwg-network-tester-cfg
Requested revision No specific revision (document currently at 11)
Type Early Review
Team YANG Doctors (yangdoctors)
Deadline 2025-10-06
Requested 2025-09-22
Requested by Giuseppe Fioccola
Authors Vladimir Vassilev
I-D last updated 2026-06-11 (Latest revision 2026-05-28)
Completed reviews Yangdoctors Early review of -08 by Andy Bierman (diff)
Yangdoctors IETF Last Call review of -11 by Andy Bierman
Tsvart IETF Last Call review of -11 by Colin Perkins
Assignment Reviewer Andy Bierman
State Completed
Request Early review on draft-ietf-bmwg-network-tester-cfg by YANG Doctors Assigned
Posted at https://mailarchive.ietf.org/arch/msg/yang-doctors/z2TMcvpZxhE0u5uldVe7mVuloCI
Reviewed revision 08 (document currently at 11)
Result Ready w/issues
Completed 2025-12-02
review-ietf-bmwg-network-tester-cfg-06-yangdoctors-early-bierman-2025-09-27-01
Update review for draft-ietf-bmwg-network-tester-cfg-08.txt

Updates to comments prefixed with "-  draft-08:"

# General comments

- Could be a very useful YANG module. The 'augmented choice' approach
  allows for ongoing work improving the standard features.
  It is customary to provide guidelines and examples of
  a YANG module that would augment the base modules.

- Not yet clear enough to implementors how to code many leaves
  in each module. This applies to server developers and
  client developers configuring them.

  - draft-08: open usability issue

- No XML or JSON examples of the data structures

  - draft-08: plan to add example

- The detailed interaction between the analyzer or generator
  and the interface it augments is unclear.  There seems to be
  an assumption that the 'interface-type' is used to determine
  the details of the frames sent or received, but this is not defined.

  E.g. from idle-octets description:

         for example layer 1 framing octets - for Ethernet interfaces
         7+1 preamble octets per packet.";

  - draft-08: usability issue; Vendors expected to provide
    documentation

- The interface-specific details are important to implement or use
  several objects where the frame contents are specified by the client.
  It seems for each testframe-filter identity and each interface-type,
  the processing will be different.

  - draft-08: usability issue; Vendors expected to provide
    documentation

- No server capabilities provided wrt/ which interfaces
  support creation of a traffic-generator or traffic-analyzer
  container.

  - draft-08: usability issue; Vendors expected to provide
    documentation

- Ad-hoc type for binary data is used instead of YANG 'binary' type.
  This should be binary but could be 'yang:hex-string' if Base16
  is really desired instead of Base64.

          type string {
            pattern '([0-9A-F]{2})*';
          }

  - draft-08: fixed

- The 'units' should be specified for each leaf where
  uint32 or uint64 is the base type.

  - draft-08: fixed

- Many configurable data nodes do not have any range definitions.
  This is OK because of the generic config objects, but
  not that interoperable.

  - draft-08: minor usability issue

- Reviews needed from NMOP WG for operator usability

  - draft-08: review requested

- Reviews needed from OPSAREA WG regarding PCAPNG work

  - draft-08: review requested

# ietf-traffic-generator@2024-10-21.yang

## grouping common-data

- leaf realtime-epoch: the name is confusing. Seems like 'start-time'
  would be more clear. What happens if the timestamp is in the past?

  - draft-08: not an issue

- what if both realtime-epoch and total-frames are both present?
  (assume AND-expression in this case but it should be clear).

  - draft-08: not an issue

## grouping burst-data

  - draft-08: usability issue; Vendors expected to provide
    documentation

- The 'dynamic' testframe-type is not clear wrt/ impact on all
  data nodes in this grouping.  Definitions for Ethernet frames
  are spread out in the document.

-  leaf frame-data: seems very complex for implementors to
   figure out the exact usage, even for Ethernet.

-  leaf interframe-gap: not clear what units are being used

-  leaf interburst-gap: should be a complete description,
   not 'similar' reference to previous leaf.

## grouping modifier-data

  - draft-08: usability issue; Vendors expected to provide
    documentation

-  Examples and use-cases should be included in the document
   how this feature works

-  It is unclear how the action (e.g., increment, decrement)
   is applied to the mask and offset.  How does a server
   increment only the masked bits?  This design is very complex.

-  leaf repetitions: this is very unclear and requires much more
   detailed documentation.

## augment "/if:interfaces/if:interface"

- container traffic-generator should be a presence container
  like the traffic-analyzer container.  This makes it clear
  to clients which interfaces have been configured. An NP container
  can be implemented different ways in the server, but not a
  presence container.

  - draft-08: fixed

# ietf-traffic-analyzer@2024-10-21.yang

## identity bit-field-match

This is the only testframe-filter defined.
The description is unclear:

      "Bit field matching filter according to template data and mask.";

The term 'template' is not used anywhere else in the draft.
The filter operation is not really explained.
Details or a reference is needed.

  - draft-08: fixed

## grouping statistics-data

-  draft-08: fixed

- leaf pkts: description should be consistent.
  Missing 'since the analyzer was created'.

- leaf octets: not sure why text about RFC 8343 is there.
  This counter should be consistent with the pkts counter

- idle-octets: it is not clear what the units are here.
  It seems to be some unit of time, but the name suggests octets.

- container testframe-stats:
  It is not clear that these are the analyzed packets and the
  previous 3 counters are totals for the analyzer on that interface.

- leaf sequence-errors: Is there a reference or more specific
  description of this error condition?

- leaf payload-errors: Is there a reference or more specific
  description of this error condition?

- container latency: do the leaves in this container exist
  if ../pkts == 0?

- leaf latency/samples: ../testframe-stats is a container.
  Probably mean ../testframe-stats/pkts

- leaf last-sequence-error/expected: this type should be uint64
  not counter64

- leaf last-sequence-error/received: this type should be uint64
  not counter64

## grouping capture-config-data

- container capture: seems like this should be a presence container
  since it is configured by the client.

  -  draft-08: fixed


- choice start-trigger: It is not clear where 'frame index' is defined
  or testframe-index. The difference between these cases is
  not clear.  It is also customary to define a proper default case
  instead of using an ad-hoc description instead.

  -  draft-08: minor usability issue

- choice stop-trigger: It is not clear how 'when-full' is
  different from the no-case-set condition.
  It is also customary to define a proper default case
  instead of using an ad-hoc description instead.

  -  draft-08: minor usability issue

## grouping capture-data

- leaf capture/frame/data:  The 'nacm:default-deny-all' extension
  should be used here since this leaf exposes frame contents

  - draft-08: minor security issue.  Vendor and operators could
    be violating privacy regulations by exposing captured packets.
    NETCONF default is to allow read operations to any user.

##  augment "/if:interfaces/if:interface/ntta:traffic-analyzer/"
        + "ntta:testframe-filter" {

- mask and data leaves represent binary data, and should use
  binary or hex-string data types.

  -  draft-08: fixed

- The procedures for using this filter are not that clear.
  E.g. how these 2 fields are applied to test frames.

  - draft-08: usability issue; Vendors expected to provide
    documentation