Annotation of 43BSDReno/contrib/isode-beta/h/isoaddrs.h, revision 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.