Annotation of kernel/bsd/netat/h/at_aurp.h, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
        !             3:  *
        !             4:  * @APPLE_LICENSE_HEADER_START@
        !             5:  * 
        !             6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
        !             7:  * Reserved.  This file contains Original Code and/or Modifications of
        !             8:  * Original Code as defined in and that are subject to the Apple Public
        !             9:  * Source License Version 1.1 (the "License").  You may not use this file
        !            10:  * except in compliance with the License.  Please obtain a copy of the
        !            11:  * License at http://www.apple.com/publicsource and read it before using
        !            12:  * this file.
        !            13:  * 
        !            14:  * The Original Code and all software distributed under the License are
        !            15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
        !            16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
        !            17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
        !            18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
        !            19:  * License for the specific language governing rights and limitations
        !            20:  * under the License.
        !            21:  * 
        !            22:  * @APPLE_LICENSE_HEADER_END@
        !            23:  */
        !            24: 
        !            25: /*
        !            26:  *     Copyright (c) 1996 Apple Computer, Inc. 
        !            27:  *
        !            28:  *     The information contained herein is subject to change without
        !            29:  *     notice and  should not be  construed as a commitment by Apple
        !            30:  *     Computer, Inc. Apple Computer, Inc. assumes no responsibility
        !            31:  *     for any errors that may appear.
        !            32:  *
        !            33:  *     Confidential and Proprietary to Apple Computer, Inc.
        !            34:  *
        !            35:  *     Change Log:
        !            36:  *       Created April 8, 1996 by Tuyen Nguyen
        !            37:  */
        !            38: 
        !            39: #ifndef _at_aurp_h
        !            40: #define _at_aurp_h
        !            41: 
        !            42: #define AURPCODE_REG                   0
        !            43: #define AURPCODE_RTMPPKT               1
        !            44: #define AURPCODE_DATAPKT               2
        !            45: #define AURPCODE_AURPPROTO             3
        !            46: #define AURPCODE_DEBUGINFO             10
        !            47: #define AURPCODE_RTINFO                11
        !            48: #define AURPCODE_RTUPDATE              12
        !            49: 
        !            50: #define AURPSTATE_Unconnected          0
        !            51: #define AURPSTATE_Connected            1
        !            52: #define AURPSTATE_WaitingForOpenRsp    2
        !            53: #define AURPSTATE_WaitingForRIRsp      3
        !            54: #define AURPSTATE_WaitingForTickleAck  4
        !            55: #define AURPSTATE_WaitingForRIAck1     5
        !            56: #define AURPSTATE_WaitingForRIAck2     6
        !            57: #define AURPSTATE_WaitingForRIAck3     7
        !            58: 
        !            59: #define AURPCMD_RIReq                  1
        !            60: #define AURPCMD_RIRsp                  2
        !            61: #define AURPCMD_RIAck                  3
        !            62: #define AURPCMD_RIUpd                  4
        !            63: #define AURPCMD_RDReq                  5
        !            64: #define AURPCMD_ZReq                   6
        !            65: #define AURPCMD_ZRsp                   7
        !            66: #define AURPCMD_OpenReq                8
        !            67: #define AURPCMD_OpenRsp                9
        !            68: #define AURPCMD_Tickle                 14
        !            69: #define AURPCMD_TickleAck              15
        !            70: 
        !            71: #define AURPSUBCODE_ZoneInfo1          1
        !            72: #define AURPSUBCODE_ZoneInfo2          2
        !            73: #define AURPSUBCODE_GetZoneNets        3
        !            74: #define AURPSUBCODE_GetDomainZoneList  4
        !            75: 
        !            76: #define AURPEV_Null                    0
        !            77: #define AURPEV_NetAdded                1
        !            78: #define AURPEV_NetDeleted              2
        !            79: #define AURPEV_NetRouteChange          3
        !            80: #define AURPEV_NetDistChange           4
        !            81: #define AURPEV_NetZoneChange           5
        !            82: 
        !            83: #define AURP_Version                   1
        !            84: #define AURP_ProbeRetryInterval        300
        !            85: #define AURP_MaxTickleRetry            4
        !            86: #define AURP_TickleRetryInterval       30
        !            87: #define AURP_MaxRetry                  10
        !            88: #define AURP_RetryInterval             3
        !            89: #define AURP_UpdateRate                1
        !            90: #define AURP_UDType                    0
        !            91: #define AURP_UDNode                    1
        !            92: #define AURP_UDSize                    2
        !            93: #define AURP_FirstSeqNum               1
        !            94: #define AURP_LastSeqNum                65535
        !            95: #define AURP_MaxPktSize                1400
        !            96: #define AURP_MaxNetAccess              64
        !            97: #define AURP_NetHiden                  0x01
        !            98: 
        !            99: #define AURPERR_NormalConnectionClose  -1
        !           100: #define AURPERR_RoutingLoopDetected    -2
        !           101: #define AURPERR_ConnectionOutOfSync    -3
        !           102: #define AURPERR_OptionNegotiationError -4
        !           103: #define AURPERR_InvalidVersionNumber   -5
        !           104: #define AURPERR_InsufficientResources  -6
        !           105: #define AURPERR_AuthenticationError    -7
        !           106: 
        !           107: #define AURPFLG_NA    0x4000
        !           108: #define AURPFLG_ND    0x2000
        !           109: #define AURPFLG_NDC   0x1000
        !           110: #define AURPFLG_ZC    0x0800
        !           111: #define AURPFLG_RMA   0x4000
        !           112: #define AURPFLG_HCRA  0x2000
        !           113: #define AURPFLG_SZI   0x4000
        !           114: #define AURPFLG_LAST  0x8000
        !           115: 
        !           116: /*
        !           117:  * AURP state block
        !           118:  */
        !           119: typedef struct {
        !           120:        unsigned char  get_zi;          /* get zone info flag */
        !           121:        unsigned char  rem_node;        /* node id of a tunnel peer */
        !           122:        unsigned char  tickle_retry;    /* tickle retry count */
        !           123:        unsigned char  rcv_retry;       /* data receiver retry count */
        !           124:        unsigned char  snd_state;       /* data sender state */
        !           125:        unsigned char  rcv_state;       /* data receiver state */
        !           126:        unsigned char  filler[2];
        !           127:        unsigned short rcv_update_rate;
        !           128:        unsigned short snd_next_entry;  /* next entry in RT */
        !           129:        unsigned short rcv_env;
        !           130:        unsigned short snd_sui;
        !           131:        unsigned short rcv_connection_id;   /* data receiver connection id */
        !           132:        unsigned short snd_connection_id;   /* data sender connection id */
        !           133:        unsigned short rcv_sequence_number; /* data receiver sequence number */
        !           134:        unsigned short snd_sequence_number; /* data sender sequence number */
        !           135:        void   *rcv_tmo;
        !           136:        void   *snd_tmo;
        !           137:        gbuf_t *rsp_m;
        !           138:        gbuf_t *upd_m;
        !           139: } aurp_state_t;
        !           140: 
        !           141: /*
        !           142:  * AURP protocol header
        !           143:  */
        !           144: typedef struct {
        !           145:        unsigned short connection_id;
        !           146:        unsigned short sequence_number;
        !           147:        unsigned short command_code;
        !           148:        unsigned short flags;
        !           149: } aurp_hdr_t;
        !           150: 
        !           151: /*
        !           152:  *
        !           153:  */
        !           154: typedef struct {
        !           155:        void *RT_table;
        !           156:        void *ZT_table;
        !           157:        short RT_maxentry;
        !           158:        short ZT_maxentry;
        !           159:        void *rt_lock;
        !           160:        void *rt_insert;
        !           161:        void *rt_delete;
        !           162:        void *rt_lookup;
        !           163:        void *zt_add_zname;
        !           164:        void *zt_set_zmap;
        !           165:        void *zt_get_zindex;
        !           166:        void *zt_remove_zones;
        !           167: } aurp_rtinfo_t;
        !           168: 
        !           169: /**********/
        !           170: 
        !           171: #ifdef _AURP
        !           172: extern short RT_maxentry;
        !           173: extern short ZT_maxentry;
        !           174: extern RT_entry *RT_table;
        !           175: extern ZT_entry *ZT_table;
        !           176: extern void *RT_lock;
        !           177: extern RT_entry *(*RT_insert)();
        !           178: extern RT_entry *(*RT_delete)();
        !           179: extern RT_entry *(*RT_lookup)();
        !           180: extern void (*ZT_set_zmap)();
        !           181: extern int  (*ZT_add_zname)();
        !           182: extern int  (*ZT_get_zindex)();
        !           183: extern void (*ZT_remove_zones)();
        !           184: 
        !           185: extern atlock_t aurpgen_lock;
        !           186: extern gref_t *aurp_gref;
        !           187: extern unsigned char opt_proto;
        !           188: extern unsigned char dst_addr_cnt;
        !           189: extern unsigned char net_access_cnt;
        !           190: extern unsigned char net_export;
        !           191: extern unsigned short rcv_connection_id;
        !           192: extern int net_port;
        !           193: extern void *update_tmo;
        !           194: extern aurp_state_t aurp_state[];
        !           195: extern unsigned short net_access[];
        !           196: #endif
        !           197: 
        !           198: #ifdef _KERNSYS
        !           199: struct myq
        !           200: {      struct mbuf *q_head;
        !           201:        struct mbuf *q_tail;
        !           202:        int q_cnt;
        !           203: };
        !           204: 
        !           205: #ifdef _AIX
        !           206: #define LOCK_DECL(x)   Simple_lock x
        !           207: #else
        !           208: #define LOCK_DECL(x)   atlock_t x
        !           209: #endif
        !           210: /*
        !           211:  * Quandry: if we use a single socket, we have to rebind on each call.
        !           212:  * If we use separate sockets per tunnel endpoint, we have to examine
        !           213:  *  each one on wakeup.  What to do; what to do?
        !           214:  */
        !           215: struct aurp_global_t
        !           216: {      int src_addr;           /* What's our IP address? */
        !           217:        int udp_port;           /* Local UDP port */
        !           218:        unsigned short net_access[AURP_MAXNETACCESS];
        !           219:        long dst_addr[256];     /* Tunnel 'other ends', passed in from user */
        !           220:        int pid;                /* Who are we? */
        !           221:        struct socket *tunnel;  /* IP socket for all IP endpoints */
        !           222:        int event;              /* Sleep queue anchor */
        !           223:        int event_anchor;       /* Sleep queue anchor */
        !           224: #ifdef _AIX
        !           225:        LOCK_DECL(glock);       /* aurp_global lock */
        !           226: #else
        !           227:        atlock_t glock;
        !           228: #endif
        !           229:        struct uio auio;        /* Dummy uio struct for soreceive() */
        !           230:        /* Statistics */
        !           231:        unsigned int toosmall;  /* size less than domain header, from UDP */
        !           232:        unsigned int no_mbufs;  /* gbuf_to_mbuf failed */
        !           233:        unsigned int no_gbufs;  /* mbuf_to_gbuf failed */
        !           234:        unsigned int shutdown;  /* shutdown flag */
        !           235:        unsigned int running;   /* running flag */
        !           236: };
        !           237: 
        !           238: #define AE_ATALK       0x01    /* A/talk input event */
        !           239: #define AE_UDPIP       0x02    /* UDP/IP input event */
        !           240: #define AE_SHUTDOWN    0x04    /* Shutdown AURP process */
        !           241:  
        !           242: extern struct mbuf *at_gbuf_to_mbuf(gbuf_t *);
        !           243: extern gbuf_t *at_mbuf_to_gbuf(struct mbuf *, int);
        !           244: #endif
        !           245: 
        !           246: /* AURP header for IP tunneling */
        !           247: typedef struct domain
        !           248: {      char  dst_length;
        !           249:        char  dst_authority;
        !           250:        short dst_distinguisher;
        !           251:        long  dst_address;
        !           252:        char  src_length;
        !           253:        char  src_authority;
        !           254:        short src_distinguisher;
        !           255:        long  src_address;
        !           256:        short version;
        !           257:        short reserved;
        !           258:        short type;
        !           259: } domain_t;
        !           260: 
        !           261: /* AURP/domain header constants */
        !           262: #define AUD_Version    0x1
        !           263: #define AUD_Atalk      0x2
        !           264: #define AUD_AURP       0x3
        !           265: 
        !           266: /* IP domain identifier constants */
        !           267: #define IP_LENGTH              7
        !           268: #define IP_AUTHORITY           1
        !           269: #define IP_DISTINGUISHER       0
        !           270: /* Need this because the )(*&^%$#@ compiler rounds up the size */
        !           271: #define IP_DOMAINSIZE          22
        !           272: 
        !           273: /****### LD 9/26/97*/
        !           274: extern struct aurp_global_t aurp_global;
        !           275: #endif
        !           276: 

unix.superglobalmegacorp.com

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