Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

incd(1)

arp(7)

icmp(7)

ip(7)

tcp(7)

clone(7)



  udp(7)                              CLIX                              udp(7)



  NAME

    udp - User Datagram Protocol

  DESCRIPTION

    The udp device is a ``cloneable'' (see clone) STREAMS multiplexing driver
    that provides the services of the User Datagram Protocol (UDP).

    The upd device communicates using the AT&T Transport Provider Interface
    (TPI).  Adherence to TPI allows applications to interface with udp using
    the AT&T Transport Layer Interface (TLI).  The udp driver provides the TLI
    network service type T_CLTS, a connectionless (datagram) protocol service.
    udp should be linked above the ip STREAMS driver that has been bound to
    the UDP protocol (0x11) in order to provide the UDP/Internet Protocol (IP)
    functionality of the DARPA Internet Protocol suite.  incd performs this
    binding at boot time.

    The following address format is used as defined in <sys/dod/inet.h> and
    <sys/dod/dod_ut.h>:

    typedef struct inet_addr {
         unchar uc[4];
    } ina_t;

    typedef struct dod_ut_addr {
         ina_t  inet;
         unchar port[2];
    } dodaddr_t;

    The following helpful macros are defined in <sys/dod/dod_ut.h> for
    converting the port between host byte order (least significant byte first)
    and network byte order (most significant byte first):

    #define NET16_TO_HOST16(c)    (c[0] << 8 | c[1])
    #define HOST16_TO_NET16(i, c) (c[0] = ((unchar)((i) >> 8))), \
                                  (c[1] = ((unchar)((i))))

    Each of the fields in the address format structures should be filled with
    values in network byte order.  For example, the proper encoding of the
    Internet address 129.135.200.7 with port number 200 would be assigned to
    the structure as follows:

    dodaddr_t address;

    address.inet.uc[0] = (unchar) 129;
    address.inet.uc[1] = (unchar) 135;
    address.inet.uc[2] = (unchar) 200;
    address.inet.uc[3] = (unchar) 7;

    HOST16_TO_NET16(200, address.port);



  2/94 - Intergraph Corporation                                              1






  udp(7)                              CLIX                              udp(7)



    When a t_bind is requested, an address length of zero in the t_bind
    structure specifies that a port number be chosen by the driver for all
    local endpoints.  If a specific port needs to be bound, the address length
    should be set to DOD_UT_ADDR_SZ and the port field should contain the port
    number to be bound.  The maximum number of outstanding connect indications
    should be set to zero.  If no address is specified or the Internet address
    zero is specified, all local interfaces will be bound and an all zero
    Internet addresses will be returned as the bound addresses.

    When data is sent (with t_sndudata()), the destination address length in
    the t_unitdata structure should be set to DOD_UT_ADDR_SZ and the entire
    remote address, including the Internet address and port number, should be
    specified.  Data to be filled in the Internet Protocol header including
    the TYPE OF SERVICE, TIME TO LIVE, IP OPTIONS, and source Internet address
    may be specified with the opt field in the t_unitdata structure using the
    format of the following structure defined in <sys/dod/udp.h>:

    struct udp_udopt {
         ina_t  addr;
         unchar iptos;
         unchar ipttl;
         unchar ipoptions[IPH_MAX_OPT_SZ];
         dodaddr_t;
    }

    When data is received (with t_rcvudata()), the destination Internet
    address, TYPE OF SERVICE, and OPTIONS from the Internet Protocol header
    will be returned with the opt field in the t_unitdata structure using the
    format of the udp_udopt structure.

    Internet Control Message Protocol (ICMP) error messages pertaining to
    datagrams sent with udp may be retrieved through the t_rcvuderr() call.
    udp supports the Address Resolution Protocol ioctl() requests described in
    arp.

  FILES

    /dev/udp
           Special device file for UDP

    /usr/include/sys/dod/inet.h
           Internet address definitions

    /usr/include/sys/dod/dod_ut.h
           Internet utility and address definitions

    /usr/include/sys/dod/udp.h
           Definitions for udp device

  NOTES




  2                                              Intergraph Corporation - 2/94






  udp(7)                              CLIX                              udp(7)



    The incd command is used at boot time to configure the STREAMS drivers and
    modules that implement network protocols, including udp.  Manual
    configuration is not usually necessary.

  RELATED INFORMATION

    Commands:  incd(1)

    Files:  arp(7), icmp(7), ip(7), tcp(7), clone(7)













































  2/94 - Intergraph Corporation                                              3




Typewritten Software • bear@typewritten.org • Edmonds, WA 98026