B.2. DLI Configuration File (swdcfg)

Figure B-2 through Figure B-7 illustrate the swdcfg file used in the procedures described in Chapter 2. Each of the following figures illustrates a particular section of the swdcfg file. This is a partial example (since many session definitions are similar). Refer to the actual product swdcfg file for complete details. The Figure B-2 "Main" section parameters apply to all sessions defined in the remainder of the file.

Figure B-2. DLI Configuration File: "Main" Section

    //----------------------------------------------------------------------------
    //
    // swdcfg
    //
    // This is an example DLI configuration file for use by the Message Switch,
    // an SRA which switches data packets between DLI sessions within a Freeway.
    // The switch.cfg file (the main configuration file for the Message Switch),
    // must have a line which points to this file -- for example:
    //
    //    DLICfgFile = swdcfg
    //
    // The switch.cfg file specifies which sessions should be switched to which
    // other sessions; this file defines the characteristics of each of those
    // sessions.
    //
    // This file uses many of the default DLI settings, which are not explicitly
    // specified here; see the DLI Reference Guide for a description of all DLI
    // configuration parameters.
    //
    //----------------------------------------------------------------------------
    
    //----------------------------------------------------------------------------
    // "main" section.  When present, the main section must appear first in the
    // DLI configuration file.
    //
    // Note:
    // For the Message Switch, the tsi config file specified in the main section
    // below _MUST_ be "sw0:swtcfg.bin", and the name of the file in the Freeway
    // boot directory must be "swtcfg" .
    //
    //----------------------------------------------------------------------------
    
    main
    {  TSICfgName = "sw0:swtcfg.bin";       // TSI binary configuration file name.
      AsyncIO    = "Yes";                  // SRAs must use asynchronous I/O.
    //  LogLev          = 7;
      SessPerConn = 4;
    }
         

Figure B-3 defines the protocol-independent parameters for the first session, which is named "icp0port0."

Figure B-3. Session "icp0port0": Protocol-independent Parameters

      // The following definitions are used by the Message Switch program.
    
      //-------------------------------------------------------------------------
      // ICP_2432 device.
      // This is for use by the Message Switch, to route data to an ICP board.
      // This example assumes ICP0 is loaded with the FMP protocol.
      //-------------------------------------------------------------------------
      icp0port0
      {                              // messageblocking must be "datablk"
                                     // for the Message Switch, so that the data
                                     // read from the device is in the exact same
                                     // format as data to be written.
        // --------------------------------
        // Protocol-independent parameters.
        // --------------------------------
        Protocol           = "FMP";          // FMP session
        Transport          = "Conn0";        // Transport connection name
                                             //    defined in file swtcfg.
        // Family          = "Protocol";
        BoardNo            = 0;              // ICP board number zero.
        PortNo             = 0;              // Port number zero.
        // PortNo             = 0x'2014';         // IP Port number.
        Timeout            = 100;            // 100 seconds.
        // LogLev          = 0;
        // TraceLev        = 0;
        // MaxInQ          = 10;
        // MaxOutQ         = 10;
        // MaxErrors       = 100;
        // LocalAck        = "Yes";
        // CfgLink         = "Yes";
        // ReuseTrans      = "No";
        AsyncIO            = "Yes";          // Asynchronous I/O.
        // OutOfBand       = "No";
        // OldBind         = "Yes";
        AlwaysQIO          = "Yes";          // Comply with POSIX standard.
        // Segmenting      = "No";
        // Buffering       = "No";
        // Server          = "No";
    
         

Figure B-4 defines the FMP protocol-specific parameters for the first session, which is named "icp0port0." Refer to the Programmer's Guide for your particular protocol for a description of all the link configuration options.

Figure B-4. Session "icp0port0": Protocol-specific Parameters

        // --------------------------------------
        // FMP protocol-specific parameters.
        // --------------------------------------
        // DataRate = 9600;
        // ClockSource = "external";
        ClockSource = "internal";
        // NumLeadSync = 5;
        // Parity = "Even";
        // CharSet = "EbcdicCRC16";
        // TransBlkSize = 2048;
        // DataTranslation = "Table3";
        // BufferTimer = 2000;
        // ModemControl = "FDX1";
        ModemControl = "FDX2";
        // FeedID = 555;
        // MessageBlocking = "Disable";
        MessageBlocking = "DataBlk";         // best for switch task.
        // BlockChecking = "Disable";
        // QLimit = 1024;
        // ETBEnable = "Yes";
        // AsyncTermChar = 32;
        // NumTermChar = 1;
        // UsrDataRate = 2400;
        // ElecInterface   = "EIA232";
        // MsgBlkSize = 1024;
        WriteType = "Transparent";
      }
    
         

Figure B-5 defines the protocol-independent parameters and the protocol-specific parameters for additional ICP0 sessions.

Figure B-5. Additional ICP0 Session Definitions

      icp0port1
      {  Protocol           = "FMP";
         Transport          = "Conn0";
         BoardNo            = 0;
         PortNo             = 1;
         AsyncIO            = "Yes";
         AlwaysQIO          = "Yes";
         Timeout            = 100;
         ModemControl       = "FDX2";
         ClockSource        = "internal";
         WriteType          = "Transparent";
         MessageBlocking    = "DataBlk";
      }
      icp0port2
      {  Protocol           = "FMP";
         Transport          = "Conn0";
         BoardNo            = 0;
         PortNo             = 2;
         AsyncIO            = "Yes";
         AlwaysQIO          = "Yes";
         MessageBlocking    = "DataBlk";
         ClockSource        = "internal";
         ModemControl       = "FDX2";
      }
      icp0port3
      {  Protocol           = "FMP";
         Transport          = "Conn0";
         BoardNo            = 0;
         PortNo             = 3;
         AsyncIO            = "Yes";
         AlwaysQIO          = "Yes";
         ModemControl       = "FDX2";
         ClockSource        = "internal";
         MessageBlocking    = "DataBlk";
      }
      icp0port4
      {  Protocol           = "FMP";
         Transport          = "Conn0";
         BoardNo            = 0;
         PortNo             = 4;
         AsyncIO            = "Yes";
         AlwaysQIO          = "Yes";
         Timeout            = 100;
         ModemControl       = "FDX2";
         WriteType          = "Transparent";
         ClockSource        = "internal";
         MessageBlocking    = "DataBlk";
      }
    
         

Figure B-6 defines the sessions for ICP1, which is an ICP_IP device implementing the "ipnull" interface. The definitions for icp1port0 through icp1port3 support the switch.cfg definitions for the apinull0, apinull1, apinull2, and apinull3 test programs (see Section A.8.1 through Section A.8.4).

Figure B-6. ICP1 Session Definitions (ICP_IP Device)

      //-------------------------------------------------------------------------
      // ipnull device.
      // This is for use by an ICP_IP device implementing the "ipnull" interface.
      //-------------------------------------------------------------------------
      icp1port0
      {  Protocol           = "FMP";          // FMP may be specified for "ipnull"
         Transport          = "Conn0";
         BoardNo            = 1;
         PortNo             = 0;
         Timeout            = 100;
         AsyncIO            = "Yes";
         AlwaysQIO          = "Yes";
      }
      icp1port1
      {  Protocol           = "FMP";
         Transport          = "Conn0";
         BoardNo            = 1;
         PortNo             = 1;
         Timeout            = 100;
         AsyncIO            = "Yes";
         AlwaysQIO          = "Yes";
      }
      icp1port2
      { <similar definitions as other icp1 ports>
              .
              ..
      }
      icp1port3
      { <similar definitions as other icp1 ports>
              .
              ..
      }
      icp1port4
      { <similar definitions as other icp1 ports>
              .
              ..
      }
    
         

Figure B-7 defines the sessions for ICP2, which is an ICP_IP device implementing the "ipnull" interface. This example also illustrates why you might increase the MaxOutQ parameter. ICP3 through ICP7 sessions are omitted from this example since they are similar to ICP1 and ICP2.

Figure B-7. ICP2 Session Definitions (ICP_IP Device)

      //-----------------------------------------------------------------
      // ICP 2 and ICP 3 are defined in bootcfg.sw as ICP_IP devices,
      // and are loaded with the ipnull protocol.
      //-----------------------------------------------------------------
      icp2port0
      {  Protocol           = "FMP";
         Transport          = "Conn0";
         BoardNo            = 2;
         PortNo             = 0;
         Timeout            = 100;
         AsyncIO            = "Yes";
         AlwaysQIO          = "Yes";
         MessageBlocking    = "DataBlk";
      }
      icp2port1
      {  Protocol           = "FMP";
         Transport          = "Conn0";
         BoardNo            = 2;
         PortNo             = 1;
         Timeout            = 100;
         AsyncIO            = "Yes";
         AlwaysQIO          = "Yes";
         MessageBlocking    = "DataBlk";
             //-----------------------------------------------------------------
             // Increasing MaxOutQ from the default of 10 helps fmpalp to send
             // data at high data rates.  If you get errors similar to these
             // on the Freeway console:
             //
             //       process_reads: dlWrite failed (-11909)
             //       from icp5port1 to icp5port0.
             //
             // then it may be necessary to increase MaxOutQ further.
             //-----------------------------------------------------------------
         MaxOutQ            = 40;
      }
      icp2port2
      {<icp2port2 through icp2port4 have similar definitions as other icp2 ports>
             .
             ..
      }