IPXNET receives files via the ethernet. Generally these will be from another
Unixbox (program IP2NET) or an Atex J11 using program SNDFIP. For robustness,
the underlying protocol used is UDP, so a failure during transmission will not
halt any other processes.

IPXNET can receive up to 25 simultaneous files. The 26th and subsequent are
told to wait and retry in a second or so.

It sits listening on a defined port for traffic. When each packet arrives, the
3 chr header plus the source Internet no/port are used to define which files is
arriving and what to do with it. Each packet is acknowledged unless the sender
has indicated it does not need.

Text is completely transparent and no changes are made. When the file has
finished it is normally passwd to spool/2go for program IPWHEEL to process

A standalone switch can be used for feeding non-FIP systems. Where used in the
standalone version, the FIP header is stripped, and the filename shrunk to the
contents of the SN field which is the original name given by the source
computer. Any existing file is overwritten. In this case the output queue is a
path from root rather than /fip/spool.

Input Parameters are :
    -h : for systems with more than one ethernet connection,
        this is name in /etc/hosts for the hostname to be used
        if different to the default hostname of the machine
                        default: system hostname
    -l : log every file in          default: do not log
    -o : output queue           default: spool/2go
    -p : port no                default: IP_NET_NO (9001)
    -u : logon for file permissions     default: logon of activator
        This is normally used only in the standalone version
    -z : standalone version         default: feeding FIP
        This will strip the FIP header, give a pc filename and
        overwrite existing file.
    -s : for stand alone, the size of the filename. default: 9 chrs
    -i : for stand alone, do NOT overwrite any existing files. def: yes
    -L : for stand alone, log to the screen     default: no
    -Q : for stand-alone, use the destination (or name of the
        parameter file) as the sub-queue name (forced lowercase)
        ie is the -o is /data1/input and the parameter file is ROUGH or
        the destination is DU:rough, the file is left in
        /deta1/input/rough      default: no
    -Z : do NOT replace unix metachrs - $, * with '_' in header fields
                        default: replace
    -W : watch packets as they arrive   default: no
        print to screen all packets.
        Use this for testing new connections!
    -c : copy file if the temp queue (x) is on a different unix volume
        to the output queue (-o switch) default: same volume
    -t : log the time taken to receive the file default: ignore
    -9 : run in Speedy mode          default: no
    -v : print version and quit

If running with metachrs being stripped, you can change the new chr from the
default '_' to any other chr using environment variable FIP_XNET_META. A space,
tab, CR, NL or FF are not valid metachrs.

If the version is SFFXNET the following is also true :
Other env varis can be used to define where the system is :
    SFF_HOME    where the home or top queue is.     default: /fip/
            eg  setenv  SFF_HOME    /ripexpress/underware
    SFF_TABLES  where the parameter files are       default: (SFF_HOME)/tables/sff
    SFF_INFO    where the help file/doc queue is    default: (SFF_HOME)/info
    SFF_LOG     where the log files queue is        default: (SFF_HOME)/log
    SFF_SPOOL   where the data queues are       default: (SFF_HOME)/spool
    SFF_TMP     where the tmp data queues is        default: (SFF_HOME)/x
            ie if spools are on /data99 which is hard disk /dev/sd0, you MUST also
            have the TMP queue on the same disk/partition

NOTE that for all BUT SFF_HOME, if the parameter starts with a '/' then it is a
hard, absolute path; if not then the spool area is under SFF_HOME.
    eg  setenv  SFF_SPOOL   /data7      will look under /data7 for queues
    while   setenv  SFF_SPOOL   data7       will look under /fip/data7

-----------Internal Information----------

The default port number is IP_NET_NO, currently 9001 which is also that that
IP2NET defaults to. SNDFIP however will send to 9100 + the AtexSystemNo. ie
Atex sys3 will send to 9103. There should be an ipxnet for each Atex J11 that

The internal handshake is that a 3 byte header is added to the packet.
    byte 0 is a magic number which differs per transmission.
    byte 1 is the to-do code or sequence number
    byte 2 is ack/dont ack flag
The to-do code can be :
    1 <= byte1 <= 249 (decimal)   Sequence no of this packet.
    IP_NET_SOF  Start of file
    IP_NET_WAIT Pls wait; we have too many files for the moment
    IP_NET_ABO  Packet out-of-sequence and pls abort.
    IP_NET_EOF  End of file - last packet.
    IP_NET_BIN and IP_NET_MARK are used only for the serial program IPXV24

Small files (where the text, FIP header and FIP filename total less than 1500
bytes combined) are sent in one packet with a IP_NET_EOF flag.

The packet size is restricted (by ethernet and UDP) to 1450 bytes and no split
packets are acceptable.  Packets must arrive in sequential order or they
aborted.  If no traffic has arrived for 60 seconds, the file is aborted and the
error is logged.

(copyright) 2017 and previous years FingerPost Ltd.