Annotation of 43BSDReno/contrib/isode-beta/h/isoaddrs.h, revision 1.1.1.1

1.1       root        1: /* isoaddrs.h - ISODE addressing */
                      2: 
                      3: /* 
                      4:  * $Header: /f/osi/h/RCS/isoaddrs.h,v 7.4 90/07/09 14:37:47 mrose Exp $
                      5:  *
                      6:  *
                      7:  * $Log:       isoaddrs.h,v $
                      8:  * Revision 7.4  90/07/09  14:37:47  mrose
                      9:  * sync
                     10:  * 
                     11:  * Revision 7.3  90/05/08  08:54:34  mrose
                     12:  * touch-up
                     13:  * 
                     14:  * Revision 7.2  90/03/15  11:17:58  mrose
                     15:  * quipu-sync
                     16:  * 
                     17:  * Revision 7.1  89/11/30  23:54:02  mrose
                     18:  * pa2str
                     19:  * 
                     20:  * Revision 7.0  89/11/23  21:55:46  mrose
                     21:  * Release 6.0
                     22:  * 
                     23:  */
                     24: 
                     25: /*
                     26:  *                               NOTICE
                     27:  *
                     28:  *    Acquisition, use, and distribution of this module and related
                     29:  *    materials are subject to the restrictions of a license agreement.
                     30:  *    Consult the Preface in the User's Manual for the full terms of
                     31:  *    this agreement.
                     32:  *
                     33:  */
                     34: 
                     35: 
                     36: #ifndef        _ISOADDRS_
                     37: #define        _ISOADDRS_
                     38: 
                     39: #ifndef        _MANIFEST_
                     40: #include "manifest.h"
                     41: #endif
                     42: #ifndef        _GENERAL_
                     43: #include "general.h"
                     44: #endif
                     45: 
                     46: /*  */
                     47: 
                     48: #ifdef NULLPE
                     49: typedef struct AEInfo {                /* "real" directory services! */
                     50:     PE     aei_ap_title;
                     51:     PE     aei_ae_qualifier;
                     52: 
                     53:     int            aei_ap_id;
                     54:     int            aei_ae_id;
                     55: 
                     56:     int            aei_flags;
                     57: #define        AEI_NULL        0x00
                     58: #define        AEI_AP_ID       0x01
                     59: #define        AEI_AE_ID       0x02
                     60: }      AEInfo, *AEI;
                     61: #define        NULLAEI         ((AEI) 0)
                     62: #define        AEIFREE(aei) { \
                     63:     if ((aei) -> aei_ap_title) \
                     64:        pe_free ((aei) -> aei_ap_title), \
                     65:            (aei) -> aei_ap_title = NULLPE; \
                     66:     if ((aei) -> aei_ae_qualifier) \
                     67:        pe_free ((aei) -> aei_ae_qualifier), \
                     68:            (aei) -> aei_ae_qualifier = NULLPE; \
                     69: }
                     70: 
                     71: #define        str2aei(d,q)    _str2aei ((d), (q), NULLCP, 0)
                     72: AEI    _str2aei ();
                     73: 
                     74: char   *sprintaei ();
                     75: #endif
                     76: 
                     77: /*  */
                     78: 
                     79: struct NSAPaddr {              /* this structure shouldn't have holes in it */
                     80:     long     na_stack;                 /* TS-stack */
                     81: #define        NA_NSAP 0                       /*   native COTS */
                     82: #define        NA_TCP  1                       /*   RFC1006/TCP */
                     83: #define        NA_X25  2                       /*   TP0/X.25 */
                     84: #define        NA_BRG  3                       /*   TP0-bridge */
                     85: 
                     86:     long    na_community;              /* internal community # */
                     87: #define        SUBNET_REALNS           (-1)    /* hard-wired */
                     88: #define        SUBNET_INT_X25          1       
                     89: #define        SUBNET_JANET            2
                     90: #define        SUBNET_INTERNET         3
                     91: #define        SUBNET_DYNAMIC          100     /* dynamic start here... */
                     92: 
                     93:     union {
                     94:        struct na_nsap {                /* real network service */
                     95: #define        NASIZE  64                      /* 20 ought to do it */
                     96:            char    na_nsap_address[NASIZE];
                     97:            char    na_nsap_addrlen;
                     98:        }               un_na_nsap;
                     99: 
                    100:        struct na_tcp {                 /* emulation via RFC1006 */
                    101: #define        NSAP_DOMAINLEN  63
                    102:            char    na_tcp_domain[NSAP_DOMAINLEN + 1];
                    103: 
                    104:            u_short na_tcp_port;        /* non-standard TCP port */
                    105:            u_short na_tcp_tset;        /* transport set */
                    106: #define        NA_TSET_TCP     0x0001          /*   .. TCP */
                    107: #define        NA_TSET_UDP     0x0002          /*   .. UDP */
                    108:        }               un_na_tcp;
                    109: 
                    110:        struct na_x25 {                 /* X.25 (assume single subnet) */
                    111: #define        NSAP_DTELEN     36
                    112:            char    na_x25_dte[NSAP_DTELEN + 1]; /* Numeric DTE + Link */
                    113:            char    na_x25_dtelen;      /* number of digits used */
                    114: 
                    115: /* Conventionally, the PID sits at the first head bytes of user data and so
                    116:  * should probably not be mentioned specially. A macro might do it, if
                    117:  * necessary.
                    118:  */
                    119: 
                    120: #define        NPSIZE  4
                    121:            char    na_x25_pid[NPSIZE]; /* X.25 protocol id */
                    122:            char    na_x25_pidlen;      /*   .. */
                    123: 
                    124: #define        CUDFSIZE 16
                    125:            char    na_x25_cudf[CUDFSIZE];/* call user data field */
                    126:            char    na_x25_cudflen;     /* .. */
                    127: /*
                    128:  * X25 Facilities field. 
                    129:  */
                    130: #define        FACSIZE 6
                    131:            char    na_x25_fac[FACSIZE];        /* X.25 facilities */
                    132:            char    na_x25_faclen;              /*   .. */
                    133:        }               un_na_x25;
                    134:     }               na_un;
                    135: #define        na_address      na_un.un_na_nsap.na_nsap_address
                    136: #define        na_addrlen      na_un.un_na_nsap.na_nsap_addrlen
                    137: 
                    138: #define        na_domain       na_un.un_na_tcp.na_tcp_domain
                    139: #define        na_port         na_un.un_na_tcp.na_tcp_port
                    140: #define        na_tset         na_un.un_na_tcp.na_tcp_tset
                    141: 
                    142: #define        na_dte          na_un.un_na_x25.na_x25_dte
                    143: #define        na_dtelen       na_un.un_na_x25.na_x25_dtelen
                    144: #define        na_pid          na_un.un_na_x25.na_x25_pid
                    145: #define        na_pidlen       na_un.un_na_x25.na_x25_pidlen
                    146: #define        na_cudf         na_un.un_na_x25.na_x25_cudf
                    147: #define        na_cudflen      na_un.un_na_x25.na_x25_cudflen
                    148: #define        na_fac          na_un.un_na_x25.na_x25_fac
                    149: #define        na_faclen       na_un.un_na_x25.na_x25_faclen
                    150: 
                    151: /* for backwards compatibility... these two will be removed after ISODE 7.0 */
                    152: #define        na_type         na_stack
                    153: #define        na_subnet       na_community
                    154: };
                    155: #define        NULLNA                  ((struct NSAPaddr *) 0)
                    156: 
                    157: 
                    158: struct TSAPaddr {
                    159: #define        NTADDR  8                       /* according to NIST OIW */
                    160:     struct NSAPaddr ta_addrs[NTADDR];  /* choice of network addresses */
                    161:     int     ta_naddr;
                    162: 
                    163: #define        TSSIZE  64
                    164:     int            ta_selectlen;
                    165: 
                    166:     union {                            /* TSAP selector */
                    167:        char    ta_un_selector[TSSIZE];
                    168: 
                    169:        u_short ta_un_port;
                    170:     }               un_ta;
                    171: #define        ta_selector     un_ta.ta_un_selector
                    172: #define        ta_port         un_ta.ta_un_port
                    173: };
                    174: #define        NULLTA                  ((struct TSAPaddr *) 0)
                    175: 
                    176: 
                    177: struct SSAPaddr {
                    178:     struct TSAPaddr sa_addr;           /* transport address */
                    179: 
                    180: #define        SSSIZE  64
                    181:     int            sa_selectlen;
                    182: 
                    183:     union {                            /* SSAP selector */
                    184:        char    sa_un_selector[SSSIZE];
                    185: 
                    186:        u_short sa_un_port;
                    187:     }               un_sa;
                    188: #define        sa_selector     un_sa.sa_un_selector
                    189: #define        sa_port         un_sa.sa_un_port
                    190: };
                    191: #define        NULLSA                  ((struct SSAPaddr *) 0)
                    192: 
                    193: 
                    194: struct PSAPaddr {
                    195:     struct SSAPaddr pa_addr;           /* session address */
                    196: 
                    197: #define        PSSIZE  64
                    198:     int            pa_selectlen;
                    199: 
                    200:     union {                            /* PSAP selector */
                    201:        char    pa_un_selector[PSSIZE];
                    202: 
                    203:        u_short pa_un_port;
                    204:     }               un_pa;
                    205: #define        pa_selector     un_pa.pa_un_selector
                    206: #define        pa_port         un_pa.pa_un_port
                    207: };
                    208: #define        NULLPA                  ((struct PSAPaddr *) 0)
                    209: 
                    210: struct PSAPaddr *aei2addr ();  /* application entity title to PSAPaddr */
                    211: 
                    212: /*  */
                    213: 
                    214: #ifdef NULLPE
                    215: char   *alias2name ();
                    216: 
                    217: extern PE    (*acsap_lookup) ();
                    218: #endif
                    219: 
                    220: 
                    221: #ifdef NULLOID
                    222: struct isoentity {             /* for stub directory service */
                    223:     OIDentifier ie_identifier;
                    224:     char    *ie_descriptor;
                    225: 
                    226:     struct PSAPaddr ie_addr;
                    227: };
                    228: 
                    229: int    setisoentity (), endisoentity ();
                    230: 
                    231: struct isoentity *getisoentity ();
                    232: 
                    233: AEI    oid2aei ();
                    234: #endif
                    235: 
                    236: 
                    237:                                /* old-style */
                    238: struct PSAPaddr *is2paddr ();  /* service entry to PSAPaddr */
                    239: struct SSAPaddr *is2saddr ();  /* service entry to SSAPaddr */
                    240: struct TSAPaddr *is2taddr ();  /* service entry to TSAPaddr */
                    241: 
                    242: /*  */
                    243: 
                    244: struct PSAPaddr *str2paddr ();  /* string encoding to PSAPaddr */
                    245: struct SSAPaddr *str2saddr ();  /* string encoding to SSAPaddr */
                    246: struct TSAPaddr *str2taddr ();  /* string encoding to TSAPaddr */
                    247: 
                    248: #define        paddr2str(pa,na)        _paddr2str ((pa), (na), 0)
                    249: 
                    250: char   *_paddr2str ();         /* PSAPaddr to string encoding */
                    251: char   *saddr2str ();          /* SSAPaddr to string encoding */
                    252: char   *taddr2str ();          /* TSAPaddr to string encoding */
                    253: 
                    254: struct NSAPaddr *na2norm ();   /* normalize NSAPaddr */
                    255: 
                    256: char   *na2str ();             /* pretty-print NSAPaddr */
                    257: char   *pa2str ();             /* pretty-print PSAPaddr */
                    258: 
                    259: /*  */
                    260: 
                    261: int    isodeserver ();         /* generic server dispatch */
                    262: 
                    263: /*  */
                    264: 
                    265: /* all of this really should be in "isoqos.h" ... */
                    266:    
                    267: struct QOStype {
                    268:                                /* transport QOS */
                    269:     int            qos_reliability;    /* "reliability" element */
                    270: #define        HIGH_QUALITY    0
                    271: #define        LOW_QUALITY     1
                    272: 
                    273:                                /* session QOS */
                    274:     int            qos_sversion;       /* session version required */
                    275:     int            qos_extended;       /* extended control */
                    276:     int            qos_maxtime;        /* for SPM response during S-CONNECT */
                    277: };
                    278: #define        NULLQOS ((struct QOStype *) 0)
                    279: 
                    280: #endif

unix.superglobalmegacorp.com

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