Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4d443a08 authored by Kumar Sanghvi's avatar Kumar Sanghvi Committed by David S. Miller
Browse files

Documentation: Update Phonet doc for Pipe Controller implementation



Updates the Phonet document with description related to Pipe controller
implementation

Signed-off-by: default avatarKumar Sanghvi <kumar.sanghvi@stericsson.com>
Acked-by: default avatarLinus Walleij <linus.walleij@stericsson.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2ddaad39
Loading
Loading
Loading
Loading
+53 −0
Original line number Diff line number Diff line
@@ -182,6 +182,59 @@ The pipe protocol provides two socket options at the SOL_PNPIPE level:
    or zero if encapsulation is off.


Phonet Pipe-controller Implementation
-------------------------------------

Phonet Pipe-controller is enabled by selecting the CONFIG_PHONET_PIPECTRLR Kconfig
option. It is useful when communicating with those Nokia Modems which do not
implement Pipe controller in them e.g. Nokia Slim Modem used in ST-Ericsson
U8500 platform.

The implementation is based on the Data Connection Establishment Sequence
depicted in 'Nokia Wireless Modem API - Wireless_modem_user_guide.pdf'
document.

It allows a phonet sequenced socket (host-pep) to initiate a Pipe connection
between itself and a remote pipe-end point (e.g. modem).

The implementation adds socket options at SOL_PNPIPE level:

 PNPIPE_CREATE
	It accepts an integer argument where-in
		lower order 16 bits: pn_dev and pn_port pair for remote pep.
		higher order 16 bits: 8 bit pipe-handle

	It sends a PNS_PEP_CONNECT_REQ on sequenced socket itself. On getting
	PNS_PEP_CONNECT_RESP, it sends PNS_PEP_CONNECT_REQ to remote pep. On
	getting response from remote pep, it selects the best possible Flow
	control mechanism supported by remote-pep (modem) and then it sends
	PNS_PEP_CREATED_IND to the sequenced socket and to the remote pep.

	It then updates the pipe state associated with the sequenced socket to
	be PIPE_DISABLED.

  PNPIPE_ENABLE
	It follows the same sequence as above for enabling a pipe by sending
	PNS_PEP_ENABLE_REQ initially and then sending PNS_PEP_ENABLED_IND after
	getting responses from sequenced socket and remote-pep.
	It will also update the pipe state associated with the sequenced socket
	to PIPE_ENABLED.

   PNPIPE_DESTROY
	This will send out PNS_PEP_DISCONNECT_REQ on the sequenced socket and
	the remote pep.
	It will also update the pipe state associated with the sequenced socket
	to PIPE_IDLE

   PNPIPE_INQ
	This getsocktopt allows the user-space running on the sequenced socket
	to examine the pipe state associated with that socket ie. whether the
	pipe is created (PIPE_DISABLED) or enabled (PIPE_ENABLED) or disabled
	(PIPE_DISABLED) or no pipe exists (PIPE_IDLE).

After a pipe has been created and enabled successfully, the Pipe data can be
exchanged between the host-pep and remote-pep (modem).

Authors
-------