Subject: Re: [pcp] [I-D.ietf-pcp-upnp-igd-interworking] Issue #1: Get a Mapping

From: <[email-masked]>
Date: Fri, 9 Mar 2012 14:12:52 +0100

Hi Dan,

Please see inline.

Cheers,
Med 

> -----Message d'origine-----
> De : Dan Wing [mailto:[email-masked]] 
> Envoyé : vendredi 2 décembre 2011 19:57
> À : BOUCADAIR Mohamed OLNC/NAD/TIP; [email-masked]
> Objet : RE: [pcp] [I-D.ietf-pcp-upnp-igd-interworking] Issue 
> #1: Get a Mapping
> 
> > -----Original Message-----
> > From: [email-masked] [mailto:[email-masked]] On 
> Behalf Of
> > [email-masked]
> > Sent: Tuesday, November 29, 2011 5:48 AM
> > To: [email-masked]
> > Subject: [pcp] [I-D.ietf-pcp-upnp-igd-interworking] Issue #1: Get a
> > Mapping
> > 
> > Dear all,
> > 
> >    Context:  To list active mappings, an UPnP Control Point 
> may issue
> >       GetGenericPortMappingEntry(), GetSpecificPortMappingEntry() or
> >       GetListOfPortMappings().
> > 
> >    Issue:  In the current version of the I-D, these methods are not
> >       relayed to the PCP Server but are handled according to the
> > content
> >       of the local mapping table:
> > 
> >          Drawback: The answer to Get* may not be accurate 
> since the IWF
> >          has only a local knowledge of the global mapping table
> .............................................^^^^^^
>                               "home gateway's local", I think 
> you meant?

Med: No, by "global" I meant the full table as maintained by the PCP-controlled device. 

> 
> 
> >          Some applications issue first Get* to check 
> whether a port is
> >          in use or not before sending Add*. e.g., Microtorrent
> >          (uTorrent) v2.2 calls GetSpecificPortMapping until 
> it finds an
> >          external available port, and then calls AddPortMapping().
> 
> To mimic that functionality, the UPnP IGD->PCP interworking function
> can do a MAP request with the PREFER_FAILURE option.  Does that not
> work?

Med: Yes, this is indeed an option. Should I understand that your answer for my question below is:
* Ok to relay Get* to MAP?

> 
> >          Question for the WG: Do we allow relaying Get* to a PCP
> >          request (MAP or GET)?
> > 
> >          +  No GET method is currently defined in the base PCP
> > 
> >          +  GET is an extension defined in 
> I-D.boucadair-pcp-failure.
> 
> I don't see how GET solves the problem, especially considering
> there is a race condition between when GET is issued and when
> an actual subsequent mapping might be performed.  In that time,
> which I admit is quite small, an implicit dynamic mapping (e.g.,
> TCP SYN) or explicit dynamic mapping could occur, effectively
> "stealing" the port that was available, just moments ago.

Med: Agreed. (the comment applies also for the MAP with very short lifetime; but I don't think LT of 1s will be used)

Unless there is an objection, I will update the text to reflect that GetSpecificPortMappingEntry is relayed to a MAP request with short lifetime (e.g., 1mn) and PREFERE_FAILURE Option.