Commit 4d443a085de2b6bcae5e0a773c63b8731ff27101

Authored by Kumar Sanghvi
Committed by David S. Miller
1 parent 2ddaad397c

Documentation: Update Phonet doc for Pipe Controller implementation

Updates the Phonet document with description related to Pipe controller
implementation

Signed-off-by: Kumar Sanghvi <kumar.sanghvi@stericsson.com>
Acked-by: Linus Walleij <linus.walleij@stericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 1 changed file with 53 additions and 0 deletions Side-by-side Diff

Documentation/networking/phonet.txt
... ... @@ -182,6 +182,59 @@
182 182 or zero if encapsulation is off.
183 183  
184 184  
  185 +Phonet Pipe-controller Implementation
  186 +-------------------------------------
  187 +
  188 +Phonet Pipe-controller is enabled by selecting the CONFIG_PHONET_PIPECTRLR Kconfig
  189 +option. It is useful when communicating with those Nokia Modems which do not
  190 +implement Pipe controller in them e.g. Nokia Slim Modem used in ST-Ericsson
  191 +U8500 platform.
  192 +
  193 +The implementation is based on the Data Connection Establishment Sequence
  194 +depicted in 'Nokia Wireless Modem API - Wireless_modem_user_guide.pdf'
  195 +document.
  196 +
  197 +It allows a phonet sequenced socket (host-pep) to initiate a Pipe connection
  198 +between itself and a remote pipe-end point (e.g. modem).
  199 +
  200 +The implementation adds socket options at SOL_PNPIPE level:
  201 +
  202 + PNPIPE_CREATE
  203 + It accepts an integer argument where-in
  204 + lower order 16 bits: pn_dev and pn_port pair for remote pep.
  205 + higher order 16 bits: 8 bit pipe-handle
  206 +
  207 + It sends a PNS_PEP_CONNECT_REQ on sequenced socket itself. On getting
  208 + PNS_PEP_CONNECT_RESP, it sends PNS_PEP_CONNECT_REQ to remote pep. On
  209 + getting response from remote pep, it selects the best possible Flow
  210 + control mechanism supported by remote-pep (modem) and then it sends
  211 + PNS_PEP_CREATED_IND to the sequenced socket and to the remote pep.
  212 +
  213 + It then updates the pipe state associated with the sequenced socket to
  214 + be PIPE_DISABLED.
  215 +
  216 + PNPIPE_ENABLE
  217 + It follows the same sequence as above for enabling a pipe by sending
  218 + PNS_PEP_ENABLE_REQ initially and then sending PNS_PEP_ENABLED_IND after
  219 + getting responses from sequenced socket and remote-pep.
  220 + It will also update the pipe state associated with the sequenced socket
  221 + to PIPE_ENABLED.
  222 +
  223 + PNPIPE_DESTROY
  224 + This will send out PNS_PEP_DISCONNECT_REQ on the sequenced socket and
  225 + the remote pep.
  226 + It will also update the pipe state associated with the sequenced socket
  227 + to PIPE_IDLE
  228 +
  229 + PNPIPE_INQ
  230 + This getsocktopt allows the user-space running on the sequenced socket
  231 + to examine the pipe state associated with that socket ie. whether the
  232 + pipe is created (PIPE_DISABLED) or enabled (PIPE_ENABLED) or disabled
  233 + (PIPE_DISABLED) or no pipe exists (PIPE_IDLE).
  234 +
  235 +After a pipe has been created and enabled successfully, the Pipe data can be
  236 +exchanged between the host-pep and remote-pep (modem).
  237 +
185 238 Authors
186 239 -------
187 240