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_PIPE_HANDLE
+ It accepts an integer argument for setting value of pipe handle.
PNPIPE_ENABLE accepts one integer value (int). If set to zero, the pipe
is disabled. If the value is non-zero, the pipe is enabled. If the pipe
is not (yet) connected, ENOTCONN is error is returned.
- 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
+The implementation also adds socket 'connect'. On calling the 'connect', pipe
+will be created between the source socket and the destination, and the pipe
+state will be set to PIPE_DISABLED.
After a pipe has been created and enabled successfully, the Pipe data can be
exchanged between the host-pep and remote-pep (modem).
+User-space would typically follow below sequence with Pipe controller:-
+-socket
+-bind
+-setsockopt for PNPIPE_PIPE_HANDLE
+-connect
+-setsockopt for PNPIPE_ENCAP_IP
+-setsockopt for PNPIPE_ENABLE
+
+
Authors
-------