2.0 Control Connection Protocol Specification

 Control Connection messages are used to establish and clear user sessions.  The first set of Control Connection messages are used to maintain the control connection itself.  The control connection is initiated by either the PNS or PAC after they establish the underlying TCP connection. The procedure and configuration information required to determine which TCP connections are established is not covered by this protocol.

   The following Control Connection messages are all sent as user data on the established TCP connection between a given PNS-PAC pair.  Note that care has been taken to ensure that all word (2 octet) and longword (4 octet) values begin on appropriate boundaries.  All data is sent in network order (high order octets first).  Any "reserved" fields MUST be sent as 0 values to allow for protocol extensibility.

   The TCP header is followed by the PPTP fields shown in the following:

2.1 Start-Control-Connection-Request

   The Start-Control-Connection-Request is a PPTP control message used to establish the control connection between a PNS and a PAC.  Each PNS-PAC pair requires a dedicated control connection to be established.  A control connection must be established before any other PPTP messages can be issued.  The establishment of the control connection can be initiated by either the PNS or PAC.  A procedure which handles the occurrence of a collision between PNS and PAC Start-Control-Connection-Requests is described in Section 3.

       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

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |   Length      |       PPTP Message Type       |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                         Magic Cookie                          |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |     Control Message Type      |           Reserved0           |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |       Protocol Version        |           Reserved1           |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                     Framing Capabilities                      |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                      Bearer Capabilities                      |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |       Maximum Channels        |       Firmware Revision       |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                                                               |

      +                     Host Name (64 octets)                     +

      |                                                               |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

      |                                                               |

      +                   Vendor String (64 octets)                   +

      |                                                               |

      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

LengthTotal length in octets of this PPTP message, including the entire PPTP header.

PPTP Message Type1 for Control Message.

Magic Cookie0x1A2B3C4D. This constant value is used as a sanity check on received messages (see Section 1.5).

Control Message Type1 for Start-Control-Connection-Request.

Reserved0This field MUST be 0.

Protocol VersionThe version of the PPTP protocol that the sender wishes to use.

Reserved1This field MUST be 0.

Framing CapabilitiesA set of bits indicating the type of framing that the sender of this message can provide.  The currently defined bit settings are:

1 - Asynchronous Framing supported

2 - Synchronous Framing supported

Bearer CapabilitiesA set of bits indicating the bearer capabilities that the sender of this message can provide.  The currently defined bit settings are:

1 - Analog access supported

2 - Digital access supported

Maximum ChannelsThe total number of individual PPP sessions this PAC can support.  In Start-Control-Connection-Requests issued by the PNS, this value SHOULD be set to 0.  It MUST be ignored by the PAC.

Firmware RevisionThis field contains the firmware revision number of the issuing PAC, when issued by the PAC, or the version of the PNS PPTP driver if issued by the PNS.

Host NameA 64 octet field containing the DNS name of the issuing PAC or PNS.  If less than 64 octets in length, the remainder of this field SHOULD be filled with octets of value 0.

Vendor Name              A 64 octet field containing a vendor specific string describing the type of PAC being used, or the type of PNS software being used if this request is issued by the PNS.  If less than 64 octets in length, the remainder of this field SHOULD be filled with octets of value 0.