Annotation of 43BSDReno/contrib/isode-beta/doc/manual/tailoring.tex, revision 1.1.1.1

1.1       root        1: % run this through LaTeX with the appropriate wrapper
                      2: 
                      3: \chapter      {The ISODE Tailoring File}\label{isotailor}
                      4: The file \file{isotailor} in the ISODE \verb"ETCDIR" directory
                      5: (usually \file{/usr/etc/})
                      6: contains a simple run-time configuration
                      7: mechanism for programs loaded with the \verb"-lisode" library.
                      8: 
                      9: The file itself is an ordinary ASCII text file containing information
                     10: regarding the known tailoring options.
                     11: Each line contains the option's name, a colon, the option's value, and a
                     12: newline.
                     13: The sharp character (`\verb"#"') at the beginning of a line indicates a
                     14: commentary line.
                     15: 
                     16: \section      {Tailor Variables}
                     17: The options available,
                     18: along with default values and a description of their meanings,
                     19: are now described.
                     20: 
                     21: \subsection    {Local Environment Tailoring}
                     22: \begin{describe}
                     23: \item[\verb"localname":] The name of the localhost.
                     24: If not set,
                     25: depending on the TCP/IP implementation you are running,
                     26: the system will be queried for this value.
                     27: 
                     28: \item[\verb"binpath":] Where user programs are found.
                     29: 
                     30: \item[\verb"sbinpath":] Where system programs are bound.
                     31: 
                     32: \item[\verb"etcpath":] Where configuration files are found.
                     33: \end{describe}
                     34: 
                     35: \vspace{0.1in}         %%% yikes!
                     36: \begin{center}\em
                     37: (continued on the next page)
                     38: \end{center}
                     39: \newpage
                     40: 
                     41: \subsection    {Logging Tailoring}
                     42: \begin{describe}
                     43: \item[\verb"logpath":] Where log files are found.
                     44: 
                     45: \item[\em xyz\/\verb"level":] The debugging level for the {\em xyz\/}
                     46: module,
                     47: defaulting to \verb"none".
                     48: \[\begin{tabular}{|l|l|}
                     49: \hline
                     50:     \multicolumn{1}{|c|}{\bf Option}&
                     51:                \multicolumn{1}{c|}{\bf Module}\\
                     52: \hline
                     53:     \tt compatlevel&   \man libicompat(3n)\\
                     54:     \tt addrlevel&     various\\
                     55:     \tt tsaplevel&     \man libtsap(3n)\\
                     56:     \tt ssaplevel&     \man libssap(3n)\\
                     57:     \tt psaplevel&     \man libpsap(3)\\
                     58:     \tt psap2level&    \man libpsap2(3n)\\
                     59:     \tt acsaplevel&    \man libacsap(3n)\\
                     60:     \tt rtsaplevel&    \man librtsap(3n)\\
                     61:     \tt rosaplevel&    \man librosap(3n)\\
                     62: \hline
                     63: \end{tabular}\]
                     64: Options are seperated by whitespace.
                     65: The debugging options available are:
                     66: \begin{describe}
                     67: \item[\verb"fatal":] fatal errors;
                     68: 
                     69: \item[\verb"exceptions":] exceptional events;
                     70: 
                     71: \item[\verb"notice":] informational notices;
                     72: 
                     73: \item[\verb"pdus":] {\em xyz\/}PDU printing;
                     74: 
                     75: \item[\verb"trace":] program tracing;
                     76: 
                     77: \item[\verb"debug":] full debugging
                     78: (not fully defined at this point);
                     79: and,
                     80: 
                     81: \item[\verb"all":] all of the above.
                     82: \end{describe}
                     83: Logging of levels other than \verb"fatal",
                     84: \verb"exceptions", or \verb"notice" are subject
                     85: to conditional compilation
                     86: (the \verb"-DDEBUG" option must be used during compilation).
                     87: 
                     88: \item[\em xyz\/\verb"file":] The file to be used for {\em xyz\/}PDU tracing.
                     89: The file is written in append mode.
                     90: If the filename supplied is \arg"-" (a single dash),
                     91: then the diagnostic output is used instead.
                     92: \[\begin{tabular}{|l|l|l|}
                     93: \hline
                     94:     \multicolumn{1}{|c|}{\bf Option}&
                     95:                \multicolumn{1}{c|}{\bf Default}&
                     96:                \multicolumn{1}{c|}{\bf Module}\\
                     97: \hline
                     98:     \tt compatfile&    \tt \%d.log&    \man libicompat(3n)\\
                     99:     \tt addrfile&      \tt \%d.log&    various\\
                    100:     \tt tsapfile&      \tt \%d.tpkt&   \man libtsap(3n)\\
                    101:     \tt ssapfile&      \tt \%d.spkt&   \man libssap(3n)\\
                    102:     \tt psapfile&      \tt \%d.pe&     \man libpsap(3)\\
                    103:     \tt psap2file&     \tt \%d.ppkt&   \man libpsap2(3n)\\
                    104:     \tt acsapfile&     \tt \%d.acpkt&  \man libacsap(3n)\\
                    105:     \tt rtsapfile&     \tt \%d.rtpkt&  \man librtsap(3n)\\
                    106:     \tt rosapfile&     \tt \%d.ropkt&  \man librosap(3n)\\
                    107: \hline
                    108: \end{tabular}\]
                    109: The \man getpid(2) call is used to supply the value for \verb"%d".
                    110: \end{describe}
                    111: 
                    112: \subsection    {Directory Services Tailoring}\label{dse:tailor}
                    113: \begin{describe}
                    114: \item[\verb"ns\_enable":] enables use of a ``user-friendly nameservice''
                    115: to perform name/address resolution.
                    116: This takes the value either \verb+"on"+ or \verb+"off"+.
                    117: If \verb+"on"+,
                    118: then an OSI Directory-based service will be use.
                    119: If the nameservice lookup fails,
                    120: the stub-directory will be used as a fallback.
                    121: 
                    122: \item[\verb"ns\_address":] the transport address of the nameservice.
                    123: It is specified using the ISODE ``string'' format,
                    124: e.g.,
                    125: \begin{quote}\small\begin{verbatim}
                    126: Internet=wp.psi.com+17006
                    127: \end{verbatim}\end{quote}
                    128: which indicates that the nameservice lives in the TCP/IP communications domain
                    129: on TCP port \verb"17006" at host \verb"wp.psi.com".
                    130: The nameservice is accessed via the OSI CO-mode transport service,
                    131: so other kinds of addresses (e.g., X.25 addresses can be used as well).
                    132: \end{describe}
                    133: 
                    134: \subsection    {Transport Switch Tailoring}
                    135: The use of these variables is more usefully described in Chapter~\ref{tswitch}.
                    136: \begin{describe}
                    137: \item[\verb"ts\_stacks":] Specifies which configured TS-stacks are
                    138: enabled.
                    139: This is useful when multiple machines (with different interfaces)
                    140: share the same executables.
                    141: Options are seperated by whitespace:
                    142: \begin{describe}
                    143: \item[\verb"tcp":] RFC1006 over TCP/IP;
                    144: 
                    145: \item[\verb"x25":] TP0 over X.25;
                    146: 
                    147: \item[\verb"cons":] TP0 over CONS;
                    148: 
                    149: \item[\verb"bridge":] TP0 over the TP0--bridge;
                    150: 
                    151: \item[\verb"tp4":] TP4 over CLNP;
                    152: and,
                    153: 
                    154: \item[\verb"all":] all of the above.
                    155: \end{describe}
                    156: Using this method,
                    157: the \file{isotailor} file is a normally symbolic link to
                    158: \file{/private/etc/isotailor}.
                    159: 
                    160: \item[\verb"ts\_interim":] Defines new OSI communities.
                    161: Each community is defined by a macro in the \file isomacros(5) file.
                    162: 
                    163: \item[\verb"ts\_communities":] Specifies which OSI communities are attached
                    164: (either directly or through a transport-service bridge).
                    165: Options are seperated by whitespace:
                    166: \begin{describe}
                    167: \item[\verb"int-x25":] International X.25;
                    168: 
                    169: \item[\verb"janet":] UK JANET;
                    170: 
                    171: \item[\verb"internet":] the capital-I Internet;
                    172: 
                    173: \item[\verb"realns":] OSI Internet (ha, ha);
                    174: 
                    175: \item[\verb"localTCP":] the TCP loopback address;
                    176: and,
                    177: 
                    178: \item[\verb"all":] all of the above OSI communities, along with those
                    179: communities defined by the \verb"ts_interim" variable;
                    180: \end{describe}
                    181: For example,
                    182: a site with an X.25 connection might be attached to the International X.25
                    183: network, but not the JANET.
                    184: Thus \verb"ts_stacks" would include ``x25'',
                    185: and \verb"ts_communities" would include ``int-x25'' but not ``janet''.
                    186: 
                    187: Note that the ordering of communities is important:
                    188: network addresses will be tried in the order that their respective
                    189: communities are listed with this variable.
                    190: 
                    191: \item[\verb"default\_nsap\_community":] the default community to be
                    192: used for NSAP addresses.
                    193: 
                    194: \item[\verb"default\_x25\_community":] the default community to be
                    195: used for X.25 (DTE) addresses.
                    196: 
                    197: \item[\verb"default\_tcp\_community":] the default community to be
                    198: used for TCP (RFC1006) addresses.
                    199: \end{describe}
                    200: 
                    201: \subsubsection{Transport-Service Bridge}
                    202: There are two variables that can be specified.
                    203: One is used on hosts making use of the TS-bridge,
                    204: the other is used by hosts which run the TS-bridge:
                    205: \begin{describe}
                    206: \item[\verb|tsb\_communities|] A list of pairs of values.
                    207: The first of each value should be a community name as defined in
                    208: the \verb"ts_communities" variable.
                    209: The second value of the pair should be a presentation address using the ISODE
                    210: ``string'' format.
                    211: When a call is to be placed and the network corresponds to one
                    212: of the communities given here, then a call through the TS-bridge given in
                    213: the second variable will be made automatically.
                    214: 
                    215: \item[\verb|tsb\_default\_address|] This variable contains a string encoded
                    216: presentation address which the TS-bridge will listen on by default.
                    217: This should normally consist of a set of network addresses with no selectors
                    218: present.
                    219: \end{describe}
                    220: Consider the case of a host with access to both the Internet and the
                    221: International X.25 network.
                    222: This host might have this entry in its \file{isotailor} file:
                    223: \begin{quote}\tiny\begin{verbatim}
                    224: tsb_default_address: Internet=sheriff+17004\|Int-X25(80)=23426020017299+PID+03018000
                    225: \end{verbatim}\end{quote}
                    226: This tells the TS-bridge to listen on two network endpoints.
                    227: Hosts in the Internet community wishing to reach the International
                    228: X.25 community would have this entry in their \file{isotailor} file:
                    229: \begin{quote}\smaller\begin{verbatim}
                    230: tsb_communities: int-x25 Internet=sheriff+17004
                    231: \end{verbatim}\end{quote}
                    232: Similarly,
                    233: hosts in the International X.25 community wishing to reach the
                    234: Internet community, would have the entry:
                    235: \begin{quote}\smaller\begin{verbatim}
                    236: tsb_communities: internet Int-X25(80)=23426020017299+PID+03018000
                    237: \end{verbatim}\end{quote}
                    238: 
                    239: \subsection{Interface Specific Tailoring}
                    240: Some network implementations used by ISODE require ISODE to be
                    241: tailored for their correct use.
                    242: 
                    243: \subsubsection{General X.25 Tailoring}
                    244: The following tailoring variables are generally applicable to
                    245: X.25 networks.
                    246: \begin{describe}
                    247: \item[\verb"x25\_local\_dte"] It is normally
                    248: necessary for ISODE to know it's local DTE
                    249: address.
                    250: This variable is used to set this.
                    251: The default is empty, i.e. do not set a calling address in call
                    252: requests.
                    253: 
                    254: \item[\verb"x25\_local\_pid"] It is normally
                    255: necessary for ISODE to know the X.25 protocol ID to listen on
                    256: This is specified in hex-notation,
                    257: e.g., \verb"03010100".
                    258: 
                    259: \item[\verb"x25\_intl\_zero"] Some Public Data Networks
                    260: require that X.121 addresses be
                    261: modified before being conveyed.
                    262: If this variable has the value \verb"on" then any addresses
                    263: with a non-local DNIC will have a leading zero appended.
                    264: 
                    265: \item[\verb"x25\_strip\_dnic"] If this variable has
                    266: the value \verb"on" then any address with
                    267: a local DNIC will have this removed.
                    268: 
                    269: \item[\verb"x25\_dnic\_prefix"] If you use either or both of the
                    270: preceding two mechanisms then you must use this variable to
                    271: inform ISODE of the local DNIC for your host.
                    272: 
                    273: \item[\verb"x25level":]
                    274: Defines the level of logging to be used for X.25 statistics logging.
                    275: (At present, only \verb"notice" messages are generated.)
                    276: 
                    277: \item[\verb"x25file":]
                    278: Defines the filename to be used for X.25 statistics logging.
                    279: \end{describe}
                    280: 
                    281: \subsubsection{SunLink X.25}
                    282: The following variables are currently only supported by the
                    283: SunLink X.25 interface.
                    284: They control the X.25 Facilities that are requested or accepted.
                    285: \begin{describe}
                    286: \item[\verb"reverse\_charge"]  If \verb"0" then don't
                    287: request/allow (initiator/responder) reverse charging.
                    288: If \verb"1" then request/allow reverse charging.
                    289: 
                    290: \item[\verb"recvpktsize"/\verb"sendpktsize"] Size of level 3 packets.
                    291: Valid values are \verb"0" (default size),
                    292: \verb"16", \verb"32", \verb"64", \verb"128",
                    293: \verb"256", \verb"512", \verb"1024" (octets in decimal).
                    294: 
                    295: \item[\verb"recvwndsize"/\verb"sendwndsize"] Size of level 3 window.
                    296: Valid values are \verb"0" (default window size),
                    297: \verb"1"--\verb"7" or \verb"1"--\verb"127" (decimal).
                    298: 
                    299: \item[\verb"recvthruput"/\verb"sendthruput"] Send/receive throughput.
                    300: \nopagebreak
                    301: \begin{quote}
                    302: \begin{tabbing}
                    303: 100\=1200\hspace{2em}\=100\=\kill
                    304: \verb"0"\> default throughput \\
                    305: \verb"3"\> 75\> \verb"8"\> 2400 \\
                    306: \verb"4"\> 150\> \verb"9"\> 4800 \\
                    307: \verb"5"\> 300\> \verb"10"\> 9600 \\
                    308: \verb"6"\> 600\> \verb"11"\> 19200 \\
                    309: \verb"7"\> 1200\> \verb"12"\> 48000  \\
                    310: \end{tabbing}
                    311: \end{quote}
                    312: Values in bps decimal.
                    313: 
                    314: \item[\verb"cug\_req"] If \verb"0" then don't use closed user group, if
                    315: \verb"1" then use closed user group specified by
                    316: \verb"cug_index".
                    317: 
                    318: \item[\verb"cug\_index"] Closed user group in decimal
                    319: (\verb"00"--\verb"99").
                    320: 
                    321: \item[\verb"fast\_select\_type"] \verb"0" = don't use/allow fast
                    322: select.
                    323: \verb"1" = calling side --- only accept clear in response to
                    324: fast select, called side --- send clear in response to fast
                    325: select.
                    326: % is any of this fast select stuff applicable to ISODE?
                    327: \verb"2" = clear or accept is valid response to fast select.
                    328: 
                    329: \item[\verb"rpoa\_req"] If \verb"0" then don't request RPOA
                    330: (Recognised Private Operating Agency) transit.
                    331: If \verb"1" then request RPOA transit.
                    332: 
                    333: \item[\verb"rpoa"] If \verb"rpoa_req" is \verb"1" then this is
                    334: RPOA transit group in decimal (\verb"0000"--\verb"9999").
                    335: \end{describe}
                    336: % actually cug_index and rpoa seem to be ignored in the current version
                    337: See the SunLink X.25 Programmer's Manual for
                    338: further explanations of these
                    339: facilities.
                    340: 
                    341: \subsubsection{Camtec CCL}
                    342: There is one tailoring variable for the Camtec X.25 when used
                    343: with the socket abstraction.%
                    344: \footnote{The old device level interface is no longer supported.}
                    345: \begin{describe}
                    346: \item[\verb"x25\_outgoing\_port"] selects the physical port on the
                    347: Camtec card for outgoing calls.
                    348: It may take the value \verb"A", \verb"B" or \verb"#".
                    349: \verb"A" and \verb"B" are the X.121 WAN ports and \verb"#" is
                    350: the IEEE 802.3 (Ethernet) port.
                    351: Incoming calls will be accepted on any port.
                    352: \end{describe}
                    353: 
                    354: \subsubsection{Bridge X.25}
                    355: There are several tailorable variables that can specified for the
                    356: bridge connection. These are:
                    357: \begin{describe}
                    358: \item[\verb|x25\_bridge\_host|]        selects the host that runs the
                    359: tp0bridge being used. This should be a TCP accessible host.
                    360: 
                    361: \item[\verb|x25\_bridge\_port|]        selects the TCP port that the
                    362: tp0bridge will be listening on. The default for this is port 146 (an
                    363: internet assigned number), which should be defined in \verb|/etc/services|.
                    364: 
                    365: \item[\verb|x25\_bridge\_addr|]        the X.121 address of the remote host.
                    366: 
                    367: \item[\verb|x25\_bridge\_listen|]      the X.121 address that this host will
                    368: be listening on for incoming calls via the bridge.
                    369: 
                    370: \item[\verb|x25\_bridge\_pid|] the protocol id used for listening
                    371: along with the above address. This is a set of eight hex digits.
                    372: 
                    373: \item[\verb|x25\_bridge\_discrim|] selects the network layer to use.
                    374: When attempting to place a call with the bridge code configured as
                    375: well as real X.25, the string selects the interface to use. If the
                    376: string is empty, the bridge will always be used. If it is set to
                    377: ``--'' the bridge will not be used. If the string is anything else, it
                    378: is compared against the initial portion of the called X.121 address.
                    379: If there is a match then the bridge is used, otherwise the real
                    380: interface is called.
                    381: \end{describe}
                    382: 
                    383: \section      {Accessing the Tailoring File}
                    384: The tailoring file is read usually when a program attempts or accepts its
                    385: first connection.
                    386: The \verb"-lisode" library does this by calling the routine
                    387: \verb"isodetailor":
                    388: \begin{quote}\index{isodetailor}\small\begin{verbatim}
                    389: void    isodetailor (myname, wantuser)
                    390: char   *myname;
                    391: int     wantuser;
                    392: \end{verbatim}\end{quote}
                    393: The parameters to this procedure are:
                    394: \begin{describe}
                    395: \item[\verb"myname":] the name that the program was invoked with
                    396: (used by the logging package described in Chapter~\ref{logging}); and,
                    397: 
                    398: \item[\verb"wantuser":] if non-zero,
                    399: then a user-specific tailoring file,
                    400: with the name \verb"~/.myname_tailor",
                    401: should be consulted.
                    402: \end{describe}
                    403: Note that in order to ensure consistent logging it is {\bf critical\/} that
                    404: the call to \verb"isodetailor" be the first call made to {\em any \/} of the
                    405: ISODE routines.
                    406: 
                    407: To override the default location of the tailoring file,
                    408: use the routine \verb"isodesetailor":
                    409: \begin{quote}\index{isodesetailor}\small\begin{verbatim}
                    410: char   *isodesetailor (file)
                    411: char   *file;
                    412: \end{verbatim}\end{quote}
                    413: The parameter to this procedure is:
                    414: \begin{describe}
                    415: \item[\verb"file":] the filename to be used instead of the default.
                    416: Future versions of this routine might act differently.
                    417: \end{describe}
                    418: The filename is interpreted relative to the \verb"-lisode" system area.
                    419: To override this, specify a anchored pathname
                    420: (e.g., on \unix/, one which starts with \verb"/" or \verb"./").
                    421: The routine returns the name of the default tailoring file.
                    422: 
                    423: To set a tailoring variable from some other configuration file,
                    424: the routines \verb"isodesetvar" and \verb"isodexport" are used:
                    425: \begin{quote}\index{isodesetvar}\small\begin{verbatim}
                    426: int     isodesetvar (name, value, dynamic)
                    427: char   *name,
                    428:        *value;
                    429: int     dynamic;
                    430: \end{verbatim}
                    431: \end{quote}
                    432: When this routine is invoked,
                    433: it acts as though
                    434: \begin{quote}\small\begin{verbatim}
                    435: name: value
                    436: \end{verbatim}\end{quote}
                    437: was found in the tailoring file.
                    438: The \verb"dynamic" parameter, if non-zero,
                    439: indicates that \verb"value" may be freed if a subsequent
                    440: call to \verb"isodesetvar" is made which overrides the previous value.
                    441: 
                    442: The \verb"isodexport" routine is called after one or more calls to
                    443: \verb"isodesetvar",
                    444: it performs any post-processing necessary to resynchronize the tailoring
                    445: facilities.
                    446: \begin{quote}\index{isodexport}\small\begin{verbatim}
                    447: void    isodexport ()
                    448: \end{verbatim}
                    449: \end{quote}
                    450: Thus,
                    451: to read a private tailoring file,
                    452: \verb"isodesetvar" should be called for each tailoring line.
                    453: Then,
                    454: \verb"isodexport" should be called once to resynchronize things.
                    455: 
                    456: Finally, it may be necessary to access files in the \verb"-lisode" system area.
                    457: The routine \verb"isodefile" takes an filename and returns an anchored
                    458: pathname.
                    459: \begin{quote}\index{isodefile}\small\begin{verbatim}
                    460: char   *isodefile (file, ispgm)
                    461: char   *file;
                    462: int    ispgm;
                    463: \end{verbatim}\end{quote}
                    464: The parameters to this procedure are:
                    465: \begin{describe}
                    466: \item[\verb"file":] the filename to be expanded;
                    467: and,
                    468: 
                    469: \item[\verb"ispgm":] non-zero if the target file is an executable
                    470: (otherwise it is a database of some kind).
                    471: \end{describe}
                    472: This routine is actually a macro which invokes the routine \verb"_isodefile":
                    473: \begin{quote}\index{\_isodefile}\small\begin{verbatim}
                    474: char   *_isodefile (path, file)
                    475: char   *path,
                    476:        *file;
                    477: \end{verbatim}\end{quote}
                    478: The parameters to this procedure are:
                    479: \begin{describe}
                    480: \item[\verb"path":] the directory where the filename should be expanded; and,
                    481: 
                    482: \item[\verb"file":] the filename to be expanded.
                    483: \end{describe}
                    484: 
                    485: %%% \section  {Changes Since the Last Release}\label{compat:changes}
                    486: %%% A brief summary of the major changes between v~\compatprevrsn/ and
                    487: %%% v~\compatvrsn/ are now presented.
                    488: %%% These are the user-visible changes only;
                    489: %%% changes of a strictly internal nature are not discussed.
                    490: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.