Subject: [EAI] Errors in ABNF in draft-ietf-eai-rfc5335bis-03.txt and draft-ietf-eai-rfc5336bis-04.txt

From: Alexey Melnikov <[email-masked]>
Date: Fri, 26 Nov 2010 19:07:33 +0000

In draft-ietf-eai-rfc5335bis-03.txt:

>    uAtom          = FWS] 1*uAtext [CFWS]

That is missing an opening "[". In RFC 5336 it was "[CFWS]". So I think 
the correct version is:

   uAtom          = [CFWS] 1*uAtext [CFWS]

>    uDot-Atom      = CFWS] uDot-Atom-text [CFWS]

Also missing an opening "[". So I think it should be:

   uDot-Atom      = [CFWS] uDot-Atom-text [CFWS]

>    angle-addr   =/ [CFWS] "<" uAddr-Spec">" [CFWS] / obs-angle-addr
>                    ; Replace angle-addr in Section 3.4 of RFC 5322

An extra space is needed before ">", otherwise this is not a valid ABNF.

 >   qcontent       =  uQcontent

Should this be =/ ?

 >   mailbox      =  name-addr / addr-spec / uAddr-Spec
 >                   ; Replace mailbox in Section 3.4.1 of RFC 5322

Wrong section reference, should be section 3.4

 >   uLocal-Part  =  uDot-String / uQuoted-String
 >                   ; Replace Local-Part in Section 3.4.1 of RFC 5322

What happened to obs-local-part from "local-part" definition?

 >   item-value      =/      uAddr-Spec

Where "item-value" is originally defined? Why is this extending it?

utext is defined twice in the document:

   utext   =/  UTF8-xtra-char

and then as:

   uText          = %d1-9 /    ; all UTF-8 characters except
                    %d11-12 /  ; US-ASCII NUL, CR, and LF
                    %d14-127 /
                    UTF8-xtra-char

I suggest deleting the first definition.

-----------------------------------
In draft-ietf-eai-rfc5336bis-04.txt:

> 3.3.  Extended Mailbox Address Syntax

 [...]

>             uMailbox = uLocal-part "@" uDomain
>               ; uLocal-part and uDomain defined
>               ; in RFC 5335bis, Section 4.

The problem with referencing definitions in RFC 5335bis is that they 
allow for

   uDomain      =  (sub-udomain 1*("." sub-uDomain)) /
                   dot-atom / domain-literal / obs-domain
                   ; Replace Domain in Section 4.1.2 of  RFC 5321

and definition of dot-atom, domain-literal and obs-domain from RFC 5322 
are going to be problematic in SMTP:

   domain-literal  =   [CFWS] "[" *([FWS] dtext) [FWS] "]" [CFWS]

   obs-domain      =   atom *("." atom)

   atom            =   [CFWS] 1*atext [CFWS]

   dot-atom-text   =   1*atext *("." 1*atext)

   dot-atom        =   [CFWS] dot-atom-text [CFWS]

because of CFWS.

Similar problems with uLocal-Part.

So, RFC5336bis needs to define its own uDomain and uLocal-Part.

> 3.6.3.  Trace Information

 [...]

>       uReturn-path-line = "Return-Path:" FWS uReverse-path <CRLF>
>           ; Replaces Return-path-line in Section 4.4 of RFC 5321
>           ; uReverse-path is defined in Section 4 of RFC5335bis

uReverse-path is not defined in RFC5335bis. So either 
draft-ietf-eai-rfc5335bis needs to be updated to define it, or this 
comment needs to be removed and a definition added, for example:

   uReverse-path   = uPath / "<>"
      ; Replaced Reverse-path in Section 4.2.1 of RFC 5321

>       uTime-stamp-line = "Received:" FWS uStamp <CRLF>
>           ; Replaces Time-stamp-line in Section 4.4 of RFC 5321
>
>       uStamp = From-domain By-domain uOpt-info ";"  FWS date-time
>           ; Replaces Stamp in Section 4.4 of RFC 5321
>
>       uOpt-info = [Via] [With] [ID] [uFor]
>           ; Replaces Opt-info in Section 4.4 of RFC 5321
>           ; The protocol value for With will allow a UTF8SMTPbis value

RFC 5321 defines:
   Opt-info       = [Via] [With] [ID] [For]
                  [Additional-Registered-Clauses]

So it looks like "[Additional-Registered-Clauses]" was lost from the 
uOpt-info.

>       uFor = "FOR" ( FWS (uPath / uMailbox) ) CFWS
>           ; Replaces For in Section 4.4 of RFC 5321
>           ; uMailbox is defined in section 3.3 of this document
>       uPath = "<" [ A-d-l ":" ] uMailbox ">"
>           ; Replace Path in RFC 5321, section 4.1.2
>           ; A-d-l is defined in RFC 5321, section 4.1.2
>           ; uMailbox is defined in section 3.3 of this document

Considering bugs I found, can somebody else sanity check the ABNF in 
these 2 documents?

Best Regards,
Alexey

-- 
IETF Application Area Director, <http://www.ietf.org/iesg/members.html>
Internet Messaging Team Lead, <http://www.isode.com>
JID: same as my email address