Subject: Bugs in RFC-2327 (SDP)

From: "Stanislav S. Timinsky" <[email-masked]>
Date: Thu, 2 Mar 2000 09:39:40 +0300

Greetings to all!

I have decided to report about bugs (in my humble opinion ) in the
grammar description of SDP (RFC-2327). I used RFC-2327, which has
been issued at April 1998.

1.

   zone-adjustments =    time space ["-"] typed-time
                         *(space time space ["-"] typed-time)

   *must be*

   zone-adjustments =    "z=" time space ["-"] typed-time
                         *(space time space ["-"] typed-time)

2.

   key-data =            email-safe | "~" | "
                                            ^
                                            |------- here
   *and*

   safe =                alpha-numeric |
                         "'" | "'" | "-" | "." | "/" | ":" | "?" | """ |
                         "#" | "$" | "&" | "*" | ";" | "=" | "@" | "[" |
                         "]" | "^" | "_" | "`" | "{" | "|" | "}" | "+" |
                         "~" | "
                               ^
                               |---- and here
                               
   *What means a quote at the end of grammar sentences?*

3.
   proto =               1*(alpha-numeric)
                         ;typically "RTP/AVP" or "udp" for IP4

   *If -proto- can has a '/' then -proto- is not alpha-numeric. Maybe
   it is -1*safe-*

4.

   multicast-address =   3*(decimal-uchar ".") decimal-uchar "/" ttl
                         [ "/" integer ]
                         ;multicast addresses may be in the range
                         ;224.0.0.0 to 239.255.255.255

   *must be*

   multicast-address =   3*3(decimal-uchar ".") decimal-uchar "/" ttl
                         [ "/" integer ]

5.

   time =                POS-DIGIT 9*(DIGIT)
                         ;sufficient for 2 more centuries

   *maybe*

   time =                POS-DIGIT 9*9(DIGIT)

6.

   username =            safe
                         ;pretty wide definition, but doesn't include space

   *must be*

   username =            *safe

   *or*

   username =            1*safe

7.

   decimal-uchar =       DIGIT
                         | POS-DIGIT DIGIT
                         | ("1" 2*(DIGIT))
                         | ("2" ("0"|"1"|"2"|"3"|"4") DIGIT)
                         | ("2" "5" ("0"|"1"|"2"|"3"|"4"|"5"))

   *must be*

   decimal-uchar =       DIGIT
                         | POS-DIGIT DIGIT
                         | ("1" 2*2(DIGIT))
                         | ("2" ("0"|"1"|"2"|"3"|"4") DIGIT)
                         | ("2" "5" ("0"|"1"|"2"|"3"|"4"|"5"))

8.

   email-safe =          safe | space | tab

   *must be*

   email-safe =          *(safe | space | tab)
   
-- 
Best regards,
 Stanislav S. Timinsky              mailto:[email-masked]
 Mera Labs.