Subject: [pcp] Issue #31: Query-capability support

From: <[email-masked]>
Date: Wed, 9 Mar 2011 14:32:03 +0100

Dear all,

As a clarification of issue #31, what we have in mind is a PCP PING/PONG procedure which allows a PCP Client to check whether its PCP Server is responsive (i.e., check if the PCP Service is enabled). It can also be used to retrieve the capabilities of the PCP Server and then restrict the Opcodes and Options sent to the PCP Server (e.g, NAT64, NAT44, FW, co-located FW+NAT44, etc.).

Below is provided an example of a PCP Option which can be used:

X.  Capability IE

   This IE (Figure 10) is used by a PCP Server to indicate to a
   requesting PCP Client the capabilities it supports with regards to
   port forwarding operations.  Several Capability IEs MAY be conveyed
   in the same PCP response message if several functions are co-located
   in the same PCP-controlled device (e.g., NAT44 and NAT64, NAT44 and
   ports set assignment capability, etc.).

   This IE, when received from a PCP Server, is used by a PCP Client to
   constraint the content of its requests and therefore avoid errors.
   Below are provided some examples for illustration purposes:

   o  A PCP Client should not include a Port Set IE in a PCP Map Create
      Request to a PCP Server which does not control a device which does
      not support the ability to assign port bulks to a given PCP
      Client;

   o  A PCP Client should not ask a stateless NAT64 device to
      instantiate port mappings.

                        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                       |      TBA      |    0x01       |
                       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
                       |F T P A S C I O|
                       +-+-+-+-+-+-+-+-+

                         Figure 10: Capability IE

   Below is provided a description of the F, T, P, A, S, C, I and O
   bits:

   Name Description
   ---- ----------------------------------------------------------------
     F  This bit indicates the address family of the source address
        issued by internal hosts
     T  This bit indicates the address family of the source address of
        the packets forwarded in the external side of the PCP-controlled
        device
     P  This bit indicates whether the source port number is translated
        or not.
     A  This bit indicates whether the source IP address is translated
        or not.
     S  This bit indicates whether the controlled device supports the
        ability to assign a set or ports
     C  This bit indicates whether the PCP-controlled devices inspects
        the received packets and if it can block them
     I  This bit indicates whether incoming packets are rejected unless
        an explicit rule is enforced in the PCP-controlled device
     O  This bit indicates whether outbound packets are inspected or not
        before being granted to leave the internal realm.

   The value of the F, T, P, A, S, C, I and O bits are as follows:

        Position Name               Meaning
        -------- ------------------ ------------------------------
            1    From (F)           0=from IPv4, 1=from IPv6
            2    To (T)             0=to IPv4, 1=to IPv6
            3    Port-Xlate (P)     1=translated, 0=not translated
            4    Addr-Xlate (A)     1=translated, 0=not translated
            5    Port-Set (S)       1=enabled, 0=not supported
            6    Packet-Control (C) 1=enabled, 0=not supported
            7    Direction-Out (I)  1=enabled, 0=disabled
            8    Direction-In (O)   1=enabled, 0=disabled

   A stateless NAT64 [I-D.ietf-behave-v6v4-xlate] would have the
   following values:

     From=0 (IPv4)
     To=1 (IPv6)
     Port-Xlate=0 (No)
     Addr-Xlate=1 (Yes)
     Port-Set=0  (No)
     Packet-control=0 (No)
     Direction-out (0) (No)
     Direction-In=0 (No)

   A stateful NAT64 [I-D.ietf-behave-v6v4-xlate-stateful] would have the
   following values:

     From=0 (IPv4)
     To=1 (IPv6)
     Port-Xlate=1 (Yes)
     Addr-Xlate=1 (Yes)
     Port-Set=0  (No)
     Packet-control=0 (No)
     Direction-out (0) (No)
     Direction-In=0 (No)

   A NAT44 would be characterised as follows:

     From=0 (IPv4)
     To=0 (IPv4)
     Port-Xlate=1 (Yes)
     Addr-Xlate=1 (Yes)
     Port-Set=0  (No)
     Packet-control=0 (No)
     Direction-out (0) (No)
     Direction-In=0 (No)

Cheers,
Med

********************************************************************************
IMPORTANT.Les informations contenues dans ce message electronique y compris les fichiers attaches sont strictement confidentielles
et peuvent etre protegees par la loi.
Ce message electronique est destine exclusivement au(x) destinataire(s) mentionne(s) ci-dessus.
Si vous avez recu ce message par erreur ou s il ne vous est pas destine, veuillez immediatement le signaler  a l expediteur et effacer ce message 
et tous les fichiers eventuellement attaches.
Toute lecture, exploitation ou transmission des informations contenues dans ce message est interdite.
Tout message electronique est susceptible d alteration.
A ce titre, le Groupe France Telecom decline toute responsabilite notamment s il a ete altere, deforme ou falsifie.
De meme, il appartient au destinataire de s assurer de l absence de tout virus.

IMPORTANT.This e-mail message and any attachments are strictly confidential and may be protected by law. This message is
intended only for the named recipient(s) above.
If you have received this message in error, or are not the named recipient(s), please immediately notify the sender and delete this e-mail message.
Any unauthorized view, usage or disclosure ofthis message is prohibited.
Since e-mail messages may not be reliable, France Telecom Group shall not be liable for any message if modified, changed or falsified.
Additionally the recipient should ensure they are actually virus free.
********************************************************************************