RFC Errata
RFC 6020, "YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF)", October 2010
Source of RFC: netmod (ops)See Also: RFC 6020 w/ inline errata
Errata ID: 4283
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Cesar Crusius
Date Reported: 2015-02-28
Verifier Name: Benoit Claise
Date Verified: 2015-03-11
Section 12 says:
stmtend = ";" / "{" *unknown_statement "}"
It should say:
stmtend = optsep (";" / "{" stmtsep "}") stmtsep
Notes:
Note1: As specified, there are no spaces allowed between the unknown statements, and between the braces and the unknown statements.
Notes2:
The original "stmtend" rule does not allow for spaces between unknown
statements, which requires the "*unknown-statement" fix in "stmtend".
There is at least one place ("revision-date-stmt") where "stmtend" end
is not preceded by "optsep". Instead of fixing those rules, it is better to
include "optsep" in "stmtend" itself, since it should always be present.
On the same note, almost all "stmtend" uses are followed by a
"stmtsep", and any cases where that does not happen are probably an error, so again it is better to make that explicit in the "stmtend" rule itself.
With the change in this errata, there will be a lot of rules in the
ABNF with redundant (but not technically incorrect) "optsep" and "stmtsep" parts, as for example
module-header-stmts = ;; these stmts can appear in any order
[yang-version-stmt stmtsep]
namespace-stmt stmtsep
prefix-stmt stmtsep
namespace-stmt = namespace-keyword sep uri-str optsep stmtend
which now could be replaced with
module-header-stmts = ;; these stmts can appear in any order
[yang-version-stmt]
namespace-stmt
prefix-stmt
namespace-stmt = namespace-keyword sep uri-str stmtend
These changes should probably be incorporated into the next ABNF
revision.