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

<> Thu, 13 September 2012 05:32 UTC

Return-Path: <>
Received: from localhost (localhost []) by (Postfix) with ESMTP id 6EB8221E804B for <>; Wed, 12 Sep 2012 22:32:24 -0700 (PDT)
X-Virus-Scanned: amavisd-new at
X-Spam-Flag: NO
X-Spam-Score: -1.771
X-Spam-Status: No, score=-1.771 tagged_above=-999 required=5 tests=[AWL=-0.323, 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 F5qZ75O3MUiT for <>; Wed, 12 Sep 2012 22:32:23 -0700 (PDT)
Received: from ( []) by (Postfix) with ESMTP id DABF721E803C for <>; Wed, 12 Sep 2012 22:32:22 -0700 (PDT)
Received: from (unknown [xx.xx.xx.3]) by (ESMTP service) with ESMTP id 6A507324610; Thu, 13 Sep 2012 07:32:21 +0200 (CEST)
Received: from (unknown []) by (ESMTP service) with ESMTP id 4AB394C113; Thu, 13 Sep 2012 07:32:21 +0200 (CEST)
Received: from ([]) by ([]) with mapi; Thu, 13 Sep 2012 07:32:15 +0200
From: <>
To: "Tirumaleswar Reddy (tireddy)" <>
Date: Thu, 13 Sep 2012 07:32:13 +0200
Thread-Topic: Review of draft-ietf-pcp-upnp-igd-interworking
Thread-Index: Ac2Q79Y6YXBrvo9gTweL2JiIKG8WUgAAhB6QAAan4mAAGPXfYA==
Message-ID: <>
References: <> <> <>
In-Reply-To: <>
Accept-Language: fr-FR
Content-Language: fr-FR
acceptlanguage: fr-FR
Content-Type: multipart/alternative; boundary="_000_94C682931C08B048B7A8645303FDC9F36E5A10C533PUEXCB1Bnante_"
MIME-Version: 1.0
X-PMX-Version:, Antispam-Engine:, Antispam-Data: 2012.9.13.40336
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: Thu, 13 Sep 2012 05:32:24 -0000


I updated the draft with the point agreed so far.

For the two remaining points:

* IWF to block internal host to send PCP requests directly to the PCP server: the IWF behave as a PCP client and not a PCP server. If the IWF is co-located with a PCP proxy, PCP requests from internal hosts will be relayed otherwise this will be silently dropped. IMHO, this is out of scope of the IWF spec.

* For the discussion on failure: I added an informative ref to the failure draft.


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

Hi Med -

Please see inline [Tiru]

From: []
Sent: Wednesday, September 12, 2012 8:38 PM
To: Tirumaleswar Reddy (tireddy)
Subject: RE: Review of draft-ietf-pcp-upnp-igd-interworking

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:

 [Tiru]  For failure case of PCP cannot allocate  external port, PCP will return error code CANNOT_PROVIDE_EXTERNAL, and IGD-PCP IWF is supposed to return negative message NoSuchEntryInArray.
Probably you may want to say "Once CANNOT_PROVIDE_EXTERNAL is received by the IGD-PCP IWF..."

      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?
[Tiru] No

[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.".
[Tiru] ok

[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.
[Tiru] ok

[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.
[Tiru] ok

[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?
[Tiru] yes

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?
[Tiru] This is fine.

[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?
 [Tiru] If you are planning to address it in failure draft, I am fine with both options.