Re: [pcp] Review of draft-ietf-pcp-upnp-igd-interworking

<> Wed, 12 September 2012 15:08 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 45FD621F855E for <>; Wed, 12 Sep 2012 08:08:08 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.792
X-Spam-Status: No, score=-1.792 tagged_above=-999 required=5 tests=[AWL=-0.344, BAYES_00=-2.599, HELO_EQ_FR=0.35, HTML_MESSAGE=0.001, SARE_SUB_RAND_LETTRS4=0.799, UNPARSEABLE_RELAY=0.001]
Received: from ([]) by localhost ( []) (amavisd-new, port 10024) with ESMTP id PbZNcAOrZMwA for <>; Wed, 12 Sep 2012 08:08:07 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id DAA6121F854E for <>; Wed, 12 Sep 2012 08:08:06 -0700 (PDT)
Received: from (unknown [xx.xx.xx.1]) by (ESMTP service) with ESMTP id 9A2C918C494; Wed, 12 Sep 2012 17:08:05 +0200 (CEST)
Received: from (unknown []) by (ESMTP service) with ESMTP id 7EC9735C120; Wed, 12 Sep 2012 17:08:05 +0200 (CEST)
Received: from ([]) by ([]) with mapi; Wed, 12 Sep 2012 17:08:00 +0200
From: <>
To: "Tirumaleswar Reddy (tireddy)" <>
Date: Wed, 12 Sep 2012 17:07:59 +0200
Thread-Topic: Review of draft-ietf-pcp-upnp-igd-interworking
Thread-Index: Ac2Q79Y6YXBrvo9gTweL2JiIKG8WUgAAhB6Q
Message-ID: <>
References: <>
In-Reply-To: <>
Accept-Language: fr-FR
Content-Language: fr-FR
acceptlanguage: fr-FR
Content-Type: multipart/alternative; boundary="_000_94C682931C08B048B7A8645303FDC9F36E5A10C498PUEXCB1Bnante_"
MIME-Version: 1.0
X-PMX-Version:, Antispam-Engine:, Antispam-Data: 2012.9.1.82415
Cc: "" <>
Subject: Re: [pcp] Review of draft-ietf-pcp-upnp-igd-interworking
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: PCP wg discussion list <>
List-Unsubscribe: <>, <>
List-Archive: <>
List-Post: <>
List-Help: <>
List-Subscribe: <>, <>
X-List-Received-Date: Wed, 12 Sep 2012 15:08:08 -0000

Hi Reddy,

Thanks for the review.

Please see inline.


De : Tirumaleswar Reddy (tireddy) []
Envoyé : mercredi 12 septembre 2012 16:07
Cc :
Objet : Review of draft-ietf-pcp-upnp-igd-interworking

Hi Med -

[1] Section 5.8
   If the port is not in use, the mapping will be
   created by the PCP Server and a positive response will be sent back
   to the IGD-PCP IWF.  Once received by the IGD-PCP IWF, it MUST relay
   a negative message to the UPnP Control Point indicating
   NoSuchEntryInArray as error code.

Comment> Should the IGD-PCP IWF delete the MAP binding after this operation ?
[Med] No. the IGD CP is supposed to issue AddPortMapping() for that specific mapping. The request will be honored by the PCP server (after being relayed by the IWF). The behaviour of the IGD CP is out of scope. There is a note about this in the draft:

      Note: According to some experiments, some UPnP 1.0
      implementations, e.g., uTorrent, simply try the same external port
      X times (usually 4 times) and then fail.  Also note that some
      applications uses GetSpecificPortMapping() to check whether a
      mapping exists.

Do you think the note need be updated?

[2] Section 5.9
  A PCP MAP delete response is sent back if the removal of the corresponding
  entry was successful; if not, a PCP Error is sent back to the IGD-PCP
  Interworking Function including the corresponding error cause (See
  Section 4.3).

comment > you may want to conclude that the corresponding success/error codes will be returned to the UPnP Control Point.
[Med]  The behaviour of the iwf is already captured in "and notifies the UPnP Control Point about the result of the
   removal operation.".

[3]Section 5.9

      It is unlikely to encounter a problem in the PCP leg
      because the IWF has verified authorization rights and also the
      presence of the mapping in the local table.

Comment> Just a corner case, What if the PCP server crashes or loses its state after only processing the first request ?
[Med] In that case, the server will return SUCCESS as the mapping does not exist.

[4]Section 5.10

   In case an error is encountered during mapping renewal, the IGD-PCP
   Interworking Function has no means to inform the UPnP CP.

Comment > why not set PortMappingLeaseDuration to the lifetime value returned by the PCP server ?
[Med] this variable state must have the same value as the one included in addportmapping() action issued by the CP.

[5] For Security considerations - If the UPnP supports PCP interworking function then it should block internal hosts from sending PCP requests to the PCP server directly.
[Med] Do you mean the UPnP CP?

Generic error cases :

[6] What if NAT2 just supports or permits PEER and not MAP request ?
[Med] the IWF will fail to open mappings. I can add a sentence like "This specification assumes the PCP Server is configured to accept MAP OpCode". Do we need to say more?

[7] what will IGD-PCP do if it receives ANNOUNCE from NAT2 ?
[Med]  The question can be extended to other failure cases. We have some texts spread in several I-Ds:
or adapt the text from<>

We have two options:
(1) mention ANNOUNCE handling is out of scope and cover this in detail in the failure draft
(2) add a section to specify the behaviour in the draft.

Which option do you prefer?