unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (v7man)
Page:
Section:
Apropos / Subsearch:
optional field

PK(4)                      Kernel Interfaces Manual                      PK(4)



NAME
       pk - packet driver

DESCRIPTION
       The  packet  driver  implements  a  full-duplex end-to-end flow control
       strategy for machine-to-machine communication.  Packet driver  protocol
       is established by calling pkon(2) with a character device file descrip-
       tor and a desired packet size in bytes.  The  packet  size  must  be  a
       power  of  2,  32<=size<=4096.   The  file descriptor must represent an
       8-bit data path.  This is normally obtained by  setting the  device  in
       raw mode (see ioctl(2)).

       The  actual  packet  size, which may be smaller than the desired packet
       size, is arrived at by negotiation with the packet driver at the remote
       end of the data link.

       The  packet  driver  maintains two data areas for incoming and outgoing
       packets.  The output area is  needed  to  implement  retransmission  on
       errors, and arriving packets are queued in the input area.  Data arriv-
       ing for a file not open for reading is discarded.  Initially  the  size
       of both areas is set to two packets.

       It  is  not  necessary that reads and writes be multiples of the packet
       size although there is less system overhead if they are.   Read  opera-
       tions  return  the maximum amount of data available from the input area
       up to the number of bytes specified in the  system  call.   The  buffer
       sizes in write operations are not normally transmitted across the link.
       However, writes of zero length are treated specially and are  reflected
       at  the remote end as a zero-length read.  This facilitates marking the
       serial byte stream, usually for delimiting files.

       When one side of a packet driver link is shut down by close(2)or  pkoff
       (see  pkon(2)),  read(2)  on the other side will return 0, and write on
       the other side will raise a SIGPIPE signal.

SEE ALSO
       pkon(2), pkopen(3)



                                     local                               PK(4)