RFC Errata
RFC 6886, "NAT Port Mapping Protocol (NAT-PMP)", April 2013
Source of RFC: INDEPENDENTSee Also: RFC 6886 w/ inline errata
Errata ID: 3618
Status: Verified
Type: Technical
Publication Format(s) : TEXT
Reported By: Stuart Cheshire
Date Reported: 2013-05-13
Verifier Name: Nevil Brownlee
Date Verified: 2013-05-23
Section 3.5 says:
If the version in the request is not zero, then the NAT-PMP server MUST return the following "Unsupported Version" error response to the client: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Vers = 0 | OP = 0 | Result Code = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Seconds Since Start of Epoch (in network byte order) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
It should say:
If the version in the request is not zero, then the NAT-PMP server MUST return the following "Unsupported Version" error response to the client: 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Vers = 0 | OP = 128 | Result Code = 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Seconds Since Start of Epoch (in network byte order) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Notes:
Since this is a response, the top bit of the opcode SHOULD be set, making the opcode value 128. However, the document shows "OP = 0", which is a mistake. In all responses the top bit of the opcode SHOULD be set. However, some implementations have the same mistake as the document and do not do this. Others sensibly set the top bit since this is a reply. Hence, clients sending PCP requests to NAT-PMP servers should expect to receive both forms of reply.