I am the assigned Gen-ART reviewer for this draft. For background on
Gen-ART, please see the FAQ at
<http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.

Please resolve these comments along with any other Last Call comments
you may receive.

Document: draft-c1222-transport-over-ip-03
Reviewer: Spencer Dawkins
Review Date: 2010-06-15
IETF LC End Date: 2010-07-01
IESG Telechat date: 2010-07-01

Summary: This draft is almost ready for publication as an Informational RFC. I have some minor questions, tagged in the review below.

1. Introduction

  The ANSI C12.22 standard [1] provides a set of application layer
  messaging services that are applicable for the enterprise and End
  Device components of an Advanced Metering Infrastructure (AMI) for
  the SmartGrid.  The messaging services are tailored for, but not
  limited to, the exchange of the data Tables Elements defined and co-
  published in ANSI C12.19 [2], IEEE P1377 [3], and MC12.19 [4].

Spencer (nit, clarity): If you could add a sentence about the relationship between [2], [3], and [4], that might be helpful to readers who are familiar with one of these, but not with the others. Even saying whether these are the same specification published by different SDOs would be helpful to me.

1.2. Definitions

  Active-listen UDP

     Active-listen UDP is a temporary process used by a local C12.22
     IP Node to expect and receive incoming C12.22 Messages from a
     foreign C12.22 IP Node using the UDP protocol.  The local C12.22
     IP Node SHALL solicit the incoming C12.22 Messages from the
     foreign C12.22 IP Node using the foreign C12.22 IP Node's
     registered Native IP Address.  The local C12.22 IP Node MAY exit
     Active-listen UDP process when it has received all of the
     expected C12.22 Messages or a C12.22 Message timeout has
     occurred.  The local C12.22 IP Node SHALL receive all C12.22
     Response Messages solicited from the foreign C12.22 IP Node that
     arrive at the local port number that matches the source port
     number used to solicit the C12.22 Messages from the foreign
     C12.22 IP Node.

Spencer (minor): I'm not accustomed to seeing normative text in definitions (and there are several instances in this section). If the ADs are OK with that, I'm OK (don't change it unless someone raises it as a comment in the tracker), but I wanted to make sure Russ noticed this.

2.2. Native IP Address

  The IP address of the C12.22 IP Node SHOULD be configured before the
  C12.22 IP Node attempts to send or receive any C12.22 Message on its
  C12.22 IP Network Segment.  If the port number is not explicitly
  configured by the controlling application, it SHALL be set to the
  default port number, 1153 (see Section 2.4. Standardized Port
  Numbers).

Spencer (minor): "SHOULD be configured"? OK, but at a minimum, you should say something about when it's acceptable to send C12.22 application-level messages without a configured IP address, and how that works (source IP address is all zeros? something else? I'm confused here). I'm kind of expecting that other reviewers would say MUST...

2.6. IP Multicast

  IPv6 C12.22 IP Nodes SHOULD use the minimum scope needed, when
  initiating IP multicast messages to reach another C12.22 IP Node on
  the C12.22 Network.  This practice is RECOMMENDED in order to limit

Spencer (minor): I don't think this is a 2119 RECOMMENDED - it's just a statement of fact. "... allows the sender to limit unnecessary propagation ..."?

  unnecessary propagation of C12.22 IP multicast Messages.

3.2.1. TCP and UDP Port Use

  General rules:

     5. A C12.22 IP Node that implements [CL=1] SHOULD set the source
       port number in outbound UDP C12.22 Messages to its registered
       port number.

     6. A C12.22 IP Node that implements [CL=1] MAY set the source
       port number in outbound UDP C12.22 Messages to a different UDP
       source port number if the target UDP C12.22 IP Node is
       reachable using direct messaging (as defined in [1]).

Spencer (nit, clarity): rule 6 explains why rule 5 is not a SHALL - it would be easier for this reader if the two were combined.

3.2.6. TCP and C12.22 Message Directionality

  Uni-directional use of TCP is a special mode of operation; it is NOT
  RECOMMENDED because multiple one-way channel communication is not
  described by ANSI C12.22, and it utilizes one-half of the TCP
  connection capability.  As a result it doubles the number of TCP
  connections used to communicate C12.22 Messages, and thus could
  become a burden when a large number of connections is required.
  While this mode of operation is not explicitly supported in the ANSI
  C12.22 standard, it MAY be made possible through mutual operating
  agreements.  The means by which nodes are configured to enact the
  uni-directional use of TCP is not defined in this specification or in
  the ANSI C12.22 standard; it is left for future consideration.

Spencer (nit, clarity): This is saying "NOT RECOMMENDED but might work", right? I would be more comfortable saying that than "MAY be made possible thought mutual operating agreements" ...

3.3. Using IP Broadcast/Multicast

  If a C12.22 IP Node is configured to accept IP broadcast and
  multicast messages, it SHALL join the "All C1222 Nodes" multicast
  group (see Section 2.6. IP Multicast), and SHALL use the default port
  1153.  In addition it SHALL accept IP Network directed or limited
  (local scope) broadcast messages sent to port 1153.  Note that
  successful communication using network directed broadcast requires
  configuration of network routers, which by default are not supposed
  to forward directed broadcasts as per RFC 2644 [19].

Spencer (minor): I'm reading "not supposed to" as "SHOULD NOT" in this draft text. My read of http://tools.ietf.org/html/rfc2644 is slightly stronger - "network routers, which SHALL NOT forward directed broadcasts unless specifically configured to do so, as per RFC 2644 [19]".

3.4.2. Sending Large C12.22 APDUs Using UDP

  When sending a large C12.22 Message via UDP, whereby the ACSE PDU
  size exceeds the UDP datagram maximum data length (65527 bytes), the
  initiating C12.22 IP Node SHALL segment the ACSE PDU in accordance
  with ANSI C12.22 Datagram Segmentation and Reassembly algorithm, such
  that each APDU segment fits within the UDP data field.

Spencer (minor): If you're matching something that's already deployed, fine, but if you have an opportunity to set a lower bound than 65527 bytes for invoking application-level segmentation and reassembly, I'd suggest thinking about that. Losing fragments means you retransmit the entire IP packet (no surprise there), and more fragmentation means you're taking up more reassembly buffers on NATs, if this protocol is really intended to traverse the Internet...

6.2. Informative References

  [Will be added as appropriate]

Spencer (smiles): ... probably time to do this, or else remove the section ...
_______________________________________________
Gen-art mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/gen-art

Reply via email to