PPP
Implemented Features
The PPP protocol has been implemented as two blocks in VCC. One block is a finite state machine and the other is a WhiteBox C module.

The PPP Modules
The state machine is a model of the one described in RFC 1661, section 4 ("The Option Negotiation Automaton"). It has one input port and one output port. Messages posted to the input port trigger `events´ in the state machine, and specific state transitions have `actions´ which trigger the posting of output messages. The WhiteBox C module feeds input messages to the state machine upon reception of external commands, such as Open and Close, or reception of certain packets from the remote peer system. Outputs from the state machine are acted upon by the WhiteBox C module (for example, configuration packets could be sent, or the link could be closed). In this way, the state of the PPP connection is controlled, through the WhiteBox C module, directly by the state machine.

Inside the PPP State Machine
The state machine is at its most active during the initial Link Establishment phase, as described in RFC 1661, section 3.4. This phase is entered when the application (in the case of Bluetooth, IP) requests that a connection be established by sending an Open request. In the case of the VCC model the sending of an Open is enacted by posting a non-zero integer to the EstablishConnection port of the WhiteBox C module. During this phase, outputs of the state machine trigger the transmission of Link Control Protocol (LCP) packets, and the reception of LCP packets triggers input events to the automaton. After this phase, the state machine lies mainly dormant, and packets from the application are passed almost transparently through the PPP layer until the application issues a Close request (by posting 0 to the EstablishConnection port), or a Terminate-Request LCP packet is received from the peer PPP implementation.
The implemented PPP model is almost fully compliant with the PPP specification as outlined in Internet RFC 1661 (for an overview of the differences see the Implementation Issues section). Implemented features include a fully functional link establishment phase, a fully functional (though rather restricted) configuration negation mechanism and full duplex packet transmission/reception.