Initial commit
[o-du/l2.git] / src / cm / gen.x
1 /*******************************************************************************
2 ################################################################################
3 #   Copyright (c) [2017-2019] [Radisys]                                        #
4 #                                                                              #
5 #   Licensed under the Apache License, Version 2.0 (the "License");            #
6 #   you may not use this file except in compliance with the License.           #
7 #   You may obtain a copy of the License at                                    #
8 #                                                                              #
9 #       http://www.apache.org/licenses/LICENSE-2.0                             #
10 #                                                                              #
11 #   Unless required by applicable law or agreed to in writing, software        #
12 #   distributed under the License is distributed on an "AS IS" BASIS,          #
13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
14 #   See the License for the specific language governing permissions and        #
15 #   limitations under the License.                                             #
16 ################################################################################
17 *******************************************************************************/
18 \f
19 /********************************************************************20**
20   
21      Name:     general layer
22   
23      Type:     C include file
24   
25      Desc:     Structures, variables and typedefs required by two
26                or more layer service user interfaces.
27    
28      File:     gen.x
29   
30 *********************************************************************21*/
31
32 #ifndef __GENX__
33 #define __GENX__
34
35 #ifdef __cplusplus
36 extern "C" {
37 #endif
38
39 #ifdef RGL_SPECIFIC_CHANGES
40 #include  "cm_debug.h"
41 #endif   
42
43 \f
44 /* typedefs */
45
46 typedef S8 Txt;                   /* text */
47
48 typedef U8 Ent;                   /* entity */
49
50 typedef U8 Inst;                  /* instance */
51
52 typedef struct entityId           /* entity id */
53 {
54    Ent ent;                       /* entity */
55    Inst inst;                     /* instance */
56 } EntityId;
57
58 /* element id */
59  
60 typedef S16 Elmnt;                /* element */
61  
62 typedef S16 ElmntInst1;           /* element instance 1 */
63  
64 typedef S16 ElmntInst2;           /* element instance 2 */
65  
66 typedef S16 ElmntInst3;           /* element instance 3 */
67   
68 typedef struct elmntId            /* element id */
69 {
70    Elmnt elmnt;                   /* element */
71    ElmntInst1 elmntInst1;         /* element instance 1 */
72    ElmntInst2 elmntInst2;         /* element instance 2 */
73    ElmntInst3 elmntInst3;         /* element instance 3 */
74 } ElmntId;
75
76 typedef U8 Region;                /* region */
77
78 typedef U8 Pool;                  /* pool */
79
80 typedef U8 Prior;                 /* priority */
81
82 typedef Prior Priority;           /* priority */
83
84 typedef U8 Route;                 /* route */
85
86 typedef U8 Data;                  /* data */
87
88 typedef U8 Selector;              /* selector */
89
90 typedef S16 Reason;               /* reason */
91
92 typedef U16 ProcId;               /* processor id */
93
94 typedef U8 Event;                 /* event */
95
96 typedef U32 TranId;               /* transaction Id */
97
98 typedef S16 IntNum;               /* Interface Number */
99
100 typedef U16 TranNum;              /* Transaction Number */
101
102 typedef U16     CmIntfId;         /* Interface identifier       */
103 typedef U16     CmIntfVer;        /* Interface version          */
104
105 #ifdef TDS_ROLL_UPGRADE_SUPPORT
106 typedef struct  cmIntf            /* Attributes of an interface */
107 {
108    CmIntfId     intfId;           /* Interface identifier       */
109    CmIntfVer    intfVer;          /* Interface version          */
110 } CmIntf;
111 #endif
112
113 /* post structure *** ALIGNED & ORDERED *** */
114 typedef struct pst                /* parameters for SPstTsk */
115 {
116    ProcId dstProcId;              /* destination processor id (U16) */
117    ProcId srcProcId;              /* source processor id      (U16) */
118
119    Ent dstEnt;                    /* destination entity       (U8)  */
120    Inst dstInst;                  /* destination instance     (U8)  */
121    Ent srcEnt;                    /* source entity            (U8)  */
122    Inst srcInst;                  /* source instance          (U8)  */
123
124    Prior prior;                   /* priority                 (U8)  */   
125    Route route;                   /* route                    (U8)  */
126    Event event;                   /* event                    (U8)  */
127    Region region;                 /* region                   (U8)  */
128
129    Pool pool;                     /* pool                     (U8)  */
130    Selector selector;             /* selector                 (U8)  */
131    CmIntfVer intfVer;             /* interface version        (U16) */
132 } Pst;
133
134 /* systemId structure */
135   
136 typedef struct systemId           /* system id */
137 {
138    S16 mVer;                      /* main version */
139    S16 mRev;                      /* main revision */
140    S16 bVer;                      /* branch version */
141    S16 bRev;                      /* branch revision */
142    Txt *ptNmb;                    /* part number */
143 } SystemId;
144
145 /* Protocol Address Structure */
146 /* Note: The Order of variables should not be changed as it breaks MPC/MPS
147  *       code in PLOA
148  */
149 typedef struct protAddr
150 {
151    U16      protType;                  /* Protocol Type */
152    U8       len;                       /* Protocol Address Length in bytes */
153    U8       preLen;                    /* prefix length in bits */
154    U8       address[MAX_PROTADDR_LEN]; /* Protocol Address */ 
155 #ifdef CM_ARI2
156    Bool     autoSysIdPres;         /* Is Autonomous System Id Present */
157    U32      autoSysId;                 /* Autonomous System Id */
158 #endif /* CM_ARI2 */
159
160 }ProtAddr;
161
162 typedef struct protAddrTbl
163 {
164    U8         count;                 /* Number of addresses */
165    ProtAddr   addr[MAX_PROT_ADDRS];  /* Protocol Address List */
166 }ProtAddrTbl;
167
168 /* addrs structure */
169
170 typedef struct addrs              /* address */
171 {
172    U8 length;                     /* length (bytes or nibbles) */
173    U8 strg[ADRLEN];               /* address */
174 } Addrs;
175
176 typedef struct shrtAddr           /* short address */
177 {
178    U8 length;                     /* length bytes */
179    U8 strg[SHRTADRLEN];           /* address */
180 } ShrtAddrs;
181
182 typedef struct lngAddr            /* long address */
183 {
184    U8 length;                     /* length bytes */
185    U8 strg[LNGADRLEN];            /* address */
186 } LngAddrs;
187
188 /* bndCfg structure */
189
190 typedef struct bndCfg             /* bind configuration */
191 {
192    Txt *usrId;                    /* user id */
193    U8 bufOwnshp;                  /* buffer ownership */
194    U8 flcTyp;                     /* flow control type */
195    U8 wdw;                        /* window */
196    Ent ent;                       /* entity */
197    Inst inst;                     /* instance */
198    Region region;                 /* region */
199    Pool pool;                     /* pool */
200    Prior prior;                   /* priority */
201    Route route;                   /* route */
202    Addrs sapAdr;                  /* SAP Address */
203    Selector selector;             /* selector */
204 } BndCfg;
205
206 /* gen_x_001.main_91 : Added Definition of Circular Buffer Structure */
207 /* Circular Buffer Structure */
208 #ifdef CBUF_ENABLE
209 typedef struct cb {
210    U32 cBufIdx;
211    U32 cBufSize;
212    U8 *cBufPtr;
213    S8 tmpBuf[CBUFPRNTSZE];
214 }cBuffer;
215 #endif /* CBUF_ENABLE */
216
217 /* tskInit structure */
218
219 typedef struct tskInit            /* task initialization */
220 {
221 #ifdef SS_MULTIPLE_PROCS
222    ProcId proc;                   /* processor */
223 #endif /* SS_MULTIPLE_PROCS */
224    Ent ent;                       /* entity */
225    Inst inst;                     /* instance */
226    Region region;                 /* static region */
227    Pool pool;                     /* static pool */
228    Reason reason;                 /* reason */
229    Bool cfgDone;                  /* configuration done */
230    Bool acnt;                     /* accounting */ 
231    Bool usta;                     /* unsolicited status */
232    Bool trc;                      /* trace */
233 #ifdef DEBUGP
234    U32 dbgMask;                   /* debug mask */
235    Txt prntBuf[PRNTSZE];          /* print buffer */
236 #endif
237    Txt *prntCirBuf; /* print buffer for each system task */
238 #ifdef SS_DIAG
239    /* gen_x_001.main_96 :Added logmask */
240    U32 logMask;                   /* Logging mask */
241 #endif
242    BndCfg lmBnd;                  /* layer management bind */
243    ProcId procId;                 /* processor id */
244    Pst lmPst;                     /* layer management post */
245    /* gen_x_001.main_91 : Added cBuffer in task initialisation strucutre */
246 #ifdef CBUF_ENABLE
247    cBuffer cBuf;                  /* Circular Buffer */
248 #endif /* CBUF_ENABLE */
249    /* gen_x_001.main_92 : Added timestamp related parameter */
250    /* gen_x_001.main_93 : Guarding the Timestamp related changes in the compile time flag*/
251 #ifdef DBG_TIMESTAMP
252    SLockId dbgLock;               /* write lock for the log files */
253    Bool lyrMtFlag;                /* Layer is Multithreaded or not flag */
254 #endif
255    
256 } TskInit;
257
258 \f
259 typedef S32 Cntr;                 /* counter */
260  
261 typedef U32 StsCntr;              /* Statistics counter */
262
263 typedef S16 LnkNmb;               /* link number */
264
265 typedef S8 VBit;                      /*V Bit */
266
267 typedef S16 SuId;                 /* service user sap id */
268
269 typedef S16 SpId;                 /* service provider sap id */
270
271 typedef S16 SuInstId;             /* service user instance id */
272
273 typedef S16 SpInstId;             /* service provider instance id */
274
275 typedef U16 PortId;               /* port id */
276
277 typedef U8 Sapi;                  /* service access point id */
278  
279 typedef U8 Tei;                   /* terminal endpoint id */
280
281 typedef U8 Ces;                   /* connection endpoint suffix */
282
283 typedef U32 Dlci;                 /* data link control identifier */ 
284
285 typedef U16 CalRef;               /* call Reference */
286
287 typedef S16 Origin;               /* origin */
288
289 typedef U16 NwId;                 /* Network Identifier */
290
291 typedef S16 Swtch;                /* switch */
292
293 typedef U8 Cause;                 /* cause code */
294
295 typedef U8 Dgn;                   /* diagnostic code */
296
297 typedef S16 Action;               /* action */
298
299 typedef S16 SeqS16;               /* signed 16 bit sequence number */
300  
301 typedef U16 SeqU16;               /* unsigned 16 bit sequence number */
302  
303 typedef S32 SeqS24;               /* signed 24 bit sequence number */
304  
305 typedef U32 SeqU24;               /* unsigned 24 bit sequence number */
306  
307 typedef U8 SetUpArb;              /* set up arbitration (PASSIVE/ACTIVE) */
308  
309 typedef U8 EvntType;              /* event type */
310
311 typedef U8 State;                 /* state */
312
313 typedef U8 Mode;                  /* mode */
314
315 typedef S32 ConnId;               /* connection id */
316
317 typedef U32 UConnId;              /* unsigned connection id */
318
319 typedef U16 ProtId;               /* protocol id */
320
321 typedef U16 ChannelId;            /* channel id */
322
323 typedef U8  Arr64U8[64];            /* Array of 64 of type U8*/
324
325 typedef U16 Efa;                  /* Envelope Address Function */
326
327 typedef U32 BitState;             /* Sa Bit ID and Value */
328
329 typedef U8  CChanId;               /* V5UA Channel ID */
330
331 typedef U16 MibOpCode;            /* Op code for Mib Request MIB_REQUEST_GET,
332                                      MIB_REQUEST_GET_FIRST, MIB_REQUEST */
333
334 typedef U16 MibStatus;            /* Status returned in Mib Cfm */
335
336 typedef U16 MibTblType;           /* table type */
337
338 typedef S32 MibReqId;             /* request identifier */
339
340 typedef U8  UstaType;             /* unsolicited status type */
341 typedef S8  ChannelNo;            /* Channel Number */
342
343 /* ATM typedefs */
344
345 #ifndef CMFILE_REORG_1
346
347 typedef U16 AtmVpci;              /* ATM virtual path connection id */
348 typedef U16 AtmVpi;               /* ATM virtual path id */
349
350
351 typedef U16 AtmVci;               /* ATM virtual channel id */
352
353 typedef U8 AtmLp;                 /* ATM loss priority */
354
355 typedef U8 AtmCi;                 /* ATM congestion indication */
356
357 typedef U8 AtmRs;                 /* ATM reception status */
358
359 typedef U8 AtmUu;                 /* ATM user-to-user field in CPCS PDUs */
360
361 typedef U32 AtmUui;               /* ATM user-to-user indication field in SSCOP PDUs */
362
363 typedef U8 AtmPt;                 /* ATM cell payload type */
364
365 typedef struct atmQos             /* ATM quality of service */
366 {
367    U8 qosFwd;                     /* qos in forward  direction */
368    U8 qosBwd;                     /* qos in backward direction */
369 } AtmQos;
370
371 /* Vitual channel structure */
372  
373 typedef struct amVccId             /* virtual channel connection identifier */
374 {
375    AtmVpci  vpci;                  /* virtual path connection identifier */
376    AtmVci   vci;                   /* virtual channel identifier */
377 } AmVccId;
378
379 /* VCC id */
380 typedef struct atmVccId         /* VCC id */
381 {
382    AtmVpi   vpi;                /* VPI */
383    AtmVci   vci;                /* VCI */
384 } AtmVccId;
385
386 /* VCC table */
387 typedef struct atmVccTbl                  /* VCC table */
388 {
389    U16        count;                      /* number of VCCs */
390    AtmVccId   tbl[MAX_ATMVCCTBL_SZ];      /* VCC list */
391 } AtmVccTbl;
392
393 /* Generic ATM address */
394 typedef struct atmAddr
395 {
396    U8    type;                  /* type of Address (AESA or E.164) */
397    U8    len;                   /* length (bytes) */
398    U8    strg[ADRLEN];          /* address string */
399 } AtmAddr;
400
401 /* ATM address table */
402 typedef struct atmAddrTbl            /* ATM address table */
403 {
404    U16      count;                   /* number of ATM addresses */
405    AtmAddr  tbl[MAX_ATMADDRTBL_SZ];  /* ATM address list */
406 } AtmAddrTbl;
407
408 typedef struct atmTfcDesc         /* ATM traffic descriptor */
409 {
410    U32  fwdPeakCellRate0;         /* forward  peak  cell rate, CLP = 0   */
411    U32  bwdPeakCellRate0;         /* backward peak  cell rate, CLP = 0   */
412    U32  fwdPeakCellRate1;         /* forward  peak  cell rate, CLP = 0+1 */
413    U32  bwdPeakCellRate1;         /* backward peak  cell rate, CLP = 0+1 */
414    U32  fwdSustCellRate0;         /* forward  sust. cell rate, CLP = 0   */
415    U32  bwdSustCellRate0;         /* backward sust. cell rate, CLP = 0   */
416    U32  fwdSustCellRate1;         /* forward  sust. cell rate, CLP = 0+1 */
417    U32  bwdSustCellRate1;         /* backward sust. cell rate, CLP = 0+1 */
418    U32  fwdMeanBurstSize0;        /* forward  mean burst size, CLP = 0   */
419    U32  bwdMeanBurstSize0;        /* backward mean burst size, CLP = 0   */
420    U32  fwdMeanBurstSize1;        /* forward  mean burst size, CLP = 0+1 */
421    U32  bwdMeanBurstSize1;        /* backward mean burst size, CLP = 0+1 */
422    Bool bstEffortReq;             /* best effort requested */
423    Bool fwdTagReq;                /* tagging requested in forward  direction */
424    Bool bwdTagReq;                /* tagging requested in backward direction */
425 } AtmTfcDesc;
426
427 #endif /* CMFILE_REORG_1 */
428
429
430 /* scc typedefs */
431
432 typedef S16 Baud;                 /* baud */
433
434 typedef S16 PhysIntType;          /* physical interface type */
435
436 typedef S16 PathConnType;         /* path connection type */
437
438 typedef S16 Parity;               /* parity */
439
440 typedef S16 CharLength;           /* character length */
441
442 typedef S16 StopBits;             /* stop bits */
443
444 /* tcp/ip typedefs */
445
446 typedef U32 IpAddr;               /* IP address */
447
448 typedef U16 Port;                 /* TCP/UDP port */
449
450 typedef U8 Cmd;                   /* command */
451
452 typedef U8 Flags;                 /* TCP/UDP flags */
453
454 typedef U8 Ttl;                   /* time to live */
455
456 typedef U8 Prec;                  /* TCP/UDP precedence */
457
458 typedef U32 Window;               /* TCP/UDP window */
459
460 typedef U8 MtpStatus;             /* MTP status */
461
462 typedef U8 Credit;                /* credit */
463
464 /* ISUP typedefs */
465
466 typedef U32 CirId;                /* circuit Id */
467
468 typedef U16 Cic;                  /* cic */
469
470 typedef U32 SiInstId;             /* instance id */
471
472 /* B-ISUP typedefs */
473
474 typedef U32 BiInstId;             /* instance id */
475
476 /* TUP typedefs */
477
478 typedef U32 TpInstId;             /* instance id */
479
480 /* LLC/SNAP definitions */
481
482 typedef U32 Oui;                 /* 3-octet OUI in SNAP header */
483 typedef U16 Pid;                 /* 2-octet protocol id in SNAP header */
484 typedef U32 LlcId;               /* LLC id */
485
486
487 #ifndef CMFILE_REORG_1
488
489 /* q.93b typedefs */
490  
491 typedef S32 AmInstId;             /* service user/provider instance id */
492 typedef U16 AmEndptRefType;       /* endpoint reference */
493 typedef U32 AmSeqNmb;             /* sequence number */
494  
495 /* q.saal typedefs */
496  
497 typedef U16 AsErrorCode;          /* q.saal error code (Q.SAAL1 Appendix 1) */
498
499 /* ume typedefs */
500
501 typedef U32 UmInteger;            /* ume integer */
502  
503 typedef struct umObjId            /* ume object identifier */
504 {
505    Data length;                   /* length of string */
506    UmInteger strg[UM_MAXLEN_OBJ_ID]; /* string of sub-identifiers */
507 } UmObjId;
508
509 typedef struct umMib UmMib;       /* ume mib */
510
511 \f
512 /* 
513  * LAN Emulation typedefs 
514  */
515
516 /* general typedefs */
517
518 typedef U16 LecId;               /* LEC Id */
519 typedef U8  Protocol;            /* protocol */
520 typedef U8  Version;             /* version */
521 typedef U16 OpCode;              /* op code in control frames */
522 typedef U16 LaneStatus;          /* status in control frames */
523 typedef U32 TransId;             /* transaction id */
524 typedef U16 LaneFlags;           /* flags in control frames */
525 typedef U8  LanType;             /* LAN type */
526 typedef U8  MtuIdx;              /* max frame size - index */
527 typedef U16 MtuVal;              /* max frame size - value */
528 typedef U16 Tag;                 /* tag indicating LAN destination type */
529 typedef U8  VccNature;           /* VCC nature - SVC, PVC, etc. */
530 typedef U8  VccType;             /* VCC type - control, data, etc */
531 typedef U8  ProfileId;           /* HCC profile id */
532
533
534 typedef struct lanName          /* LAN name */
535 {
536    U8 length;                   /* length of string */
537    U8 strg[MAX_LANNAME];        /* name string */
538 } LanName;
539
540 /* LAN destination typedefs */
541
542 typedef struct macAddr          /* MAC address */
543 {
544    U8 strg[MACADDRLEN];         /* address string */
545 } MacAddr;
546
547 typedef struct macAddrTblEntry  /* entry in table of MAC addresses */
548 {
549    U8 proxyClass;               /* proxy class - local, learned */
550    MacAddr macAddr;             /* MAC address */
551 } MacAddrTblEntry;
552
553 typedef struct macAddrTbl       /* table of MAC addresses */
554 {
555    U8 count;                    /* number of entries */
556    MacAddrTblEntry tbl[MAX_MACADDRTBL]; /* table of MAC addresses */
557 } MacAddrTbl;
558
559 typedef struct rd               /* route designator */
560 {
561    U16 lanId;                   /* LAN id, segment id - 12 bits */
562    U8  bridgeId;                /* bridge id - 4 bits */
563 } Rd;
564
565 typedef struct rdTblEntry       /* entry in table of route designators */
566 {
567    Rd rd;                       /* route designator */
568 } RdTblEntry;
569
570 typedef struct rdTbl            /* table of route designators */
571 {
572    U8 count;                    /* number of entries */
573    RdTblEntry tbl[MAX_RDTBL];/* table of route designator */
574 } RdTbl;
575
576 typedef struct lanDst           /* LAN destination - MAC addr, route desg */
577 {
578    Tag tag;                     /* LAN destination type */
579    union
580    {
581       MacAddr macAddr;          /* MAC address */
582       Rd rd;                    /* route designator */
583    } ld;
584 } LanDst;
585
586 \f
587 /* control frame typedefs */
588
589 typedef struct laneCtrlHdr      /* control frame header */
590 {
591    LecId      marker;           /* control frame marker */
592    Protocol   protocol;         /* LANE protocol */
593    Version    version;          /* LANE version */
594    OpCode     opCode;           /* operation code */
595    LaneStatus status;           /* request status */
596    TransId    transId;          /* transaction id */
597    LecId      reqLecId;         /* requestor LEC id */
598    LaneFlags  flags;            /* bit flags */
599    LanDst     srcLanDst;        /* source LAN destination */
600    LanDst     dstLanDst;        /* target LAN destination */
601    Addrs      srcAtmAddr;       /* source ATM address */
602    Addrs      dstAtmAddr;       /* target ATM address */
603    LanType    lanType;          /* LAN type */
604    MtuIdx     mtuIdx;           /* MTU */
605    U8         nmbTLV;           /* number of TLV entries in list */
606    LanName    lanName;          /* LAN name */
607 } LaneCtrlHdr;
608
609 typedef struct laneTLVEnt       /* type-length-value entry */
610 {
611    U32 type;                    /* type of value */
612    U8  length;                  /* length of value */
613    U8  value[MAX_TLV_LEN];      /* value */
614 } LaneTLVEnt;
615
616 typedef struct laneCfg          /* configuration frame */
617 {
618    LaneTLVEnt  tlvTbl[MAX_TLV_TBL]; /* list of TLV entries */
619 } LaneCfg;
620
621 typedef struct laneCtrlFrame    /* all control frames */
622 {
623    LaneCtrlHdr  hdr;            /* frame header */
624    union                        /* remainder of frame */
625    {
626       LaneCfg   cfg;            /* configuration frame */
627    } m;
628 } LaneCtrlFrame;
629
630 /* PNNI typedefs */
631
632 /* pnni port id */
633 typedef U32 PnPortId;
634
635 /* pnni node Id */
636 typedef struct pnNodeId
637 {
638    U8 id[PN_NODEID_LEN];
639 } PnNodeId;
640
641 #endif /* CMFILE_REORG_1 */
642
643
644 \f
645 /* header typedefs */
646
647 typedef struct octStrg            /* octet string */
648 {
649    S32 length;                    /* length */
650    U8 val[MF_SIZE_TKNSTR];        /* value */
651 } OctStrg;
652
653 typedef struct tknHdr             /* token header */
654 {
655    U8   pres;                     /* present */
656    U8   spare1;                   /* for 16 bit alignment */
657    U16  spare2;                   /* for 32 bit alignment */
658 #ifdef ALIGN_64BIT
659    U32  spare3;                   /* for 64 bit alignment */
660 #endif
661 } TknHdr;
662
663 typedef struct elmtHdr            /* element header */
664 {
665    U8   pres;                     /* present */
666    U8   actnInd;                  /* action indicator */
667    U16  compInd;                  /* for alignment */
668 #ifdef ALIGN_64BIT
669    U32  spare;                    /* for 64 bit alignment */
670 #endif
671 } ElmtHdr;
672
673 /* token typedefs */
674
675 typedef struct tknU8              /* token U8 */
676 {
677    U8   pres;                     /* present flag */
678    U8   val;                      /* value */
679    U16  spare1;                   /* for alignment */
680 #ifdef ALIGN_64BIT
681    U32  spare2;                   /* for 64 bit alignment */
682 #endif
683 } TknU8;
684
685 typedef struct tknS8              /* token S8 */
686 {
687    U8   pres;                     /* present flag */
688    S8   val;                      /* value */
689    U16  spare1;                   /* for alignment */
690 #ifdef ALIGN_64BIT
691    U32  spare2;                   /* for 64 bit alignment */
692 #endif
693 } TknS8;
694
695 typedef struct tknU16             /* token U16 */
696 {
697    U8   pres;                     /* present flag */
698    U8   spare1;                   /* for alignment */
699    U16  val;                      /* value */
700 #ifdef ALIGN_64BIT
701    U32  spare2;                   /* for 64 bit alignment */
702 #endif
703 } TknU16;
704
705 typedef struct tknU32             /* token U32 */
706 {
707    U8   pres;                     /* present flag */
708    U8   spare1;                   /* for alignment */
709    U16  spare2;                   /* for alignment */
710    U32  val;                      /* value */
711 } TknU32;
712
713 typedef struct tknS32             /* token S32 */
714 {
715    U8   pres;                     /* present flag */
716    U8   spare1;                   /* for alignment */
717    U16  spare2;                   /* for alignment */
718    S32  val;                      /* value */
719 } TknS32;
720
721 typedef struct tknStrS            /* token string */
722 {
723    U8   pres;                     /* present flag */
724    U8   len;                      /* length */
725    U16  spare1;                   /* for alignment */
726 #ifdef ALIGN_64BIT
727    U32  spare2;                   /* for 64 bit alignment */
728    U8   val[(MF_SIZE_TKNSTRS + 7) & 0xff8]; /* string value */
729 #else
730    U8   val[(MF_SIZE_TKNSTRS + 3) & 0xffc]; /* string value */
731 #endif
732 } TknStrS;
733
734 typedef struct tknStrM            /* token string */
735 {
736    U8   pres;                     /* present flag */
737    U8   len;                      /* length */
738    U16  spare1;                   /* for alignment */
739 #ifdef ALIGN_64BIT
740    U32  spare2;                   /* for 64 bit alignment */
741    U8   val[(MF_SIZE_TKNSTRM + 7) & 0xff8]; /* string value */
742 #else
743    U8   val[(MF_SIZE_TKNSTRM + 3) & 0xffc]; /* string value */
744 #endif
745 } TknStrM;
746
747 typedef struct tknStr             /* token string */
748 {
749    U8   pres;                     /* present flag */
750    U8   len;                      /* length */
751    U16  spare1;                   /* for alignment */
752 #ifdef ALIGN_64BIT
753    U32  spare2;                   /* for 64 bit alignment */
754    U8   val[(MF_SIZE_TKNSTR + 7) & 0xff8]; /* string value */
755 #else
756    U8   val[(MF_SIZE_TKNSTR + 3) & 0xffc]; /* string value */
757 #endif
758 } TknStr;
759
760 typedef struct tknStrE            /* token string extended */
761 {
762    U8   pres;                     /* present flag */
763    U8   len;                      /* length */
764    U16  spare1;                   /* for alignment */
765 #ifdef ALIGN_64BIT
766    U32  spare2;                   /* for 64 bit alignment */
767    U8   val[(MF_SIZE_TKNSTRE + 7) & 0xff8]; /* string value */
768 #else
769    U8   val[(MF_SIZE_TKNSTRE + 3) & 0xffc]; /* string value */
770 #endif
771 } TknStrE;
772
773 typedef struct tknStrXL           /* token string extra long */
774 {
775    U16  len;                      /* length */
776    U8   pres;                     /* present flag */
777    U8   spare1;                   /* for alignment */
778 #ifdef ALIGN_64BIT
779    U32  spare2;                   /* for 64 bit alignment */
780 #endif
781    U8   *val;                     /* string value (use allocated memory) */
782 } TknStrXL;
783  
784 typedef struct tknStr4            /* token string */
785 {
786    U8   pres;                     /* present flag */
787    U8   len;                      /* length */
788    U16  spare1;                   /* for alignment */
789 #ifdef ALIGN_64BIT
790    U32  spare2;                   /* for 64 bit alignment */
791    U8   val[8];                   /* string value - 8 byte alligned */
792 #else
793    U8   val[4];                   /* string value - 4 byte alligned */
794 #endif /* ALIGN_64BIT */
795 } TknStr4;
796
797 typedef struct tknStr12           /* token string */
798 {
799    U8   pres;                     /* present flag */
800    U8   len;                      /* length */
801    U16  spare1;                   /* for alignment */
802 #ifdef ALIGN_64BIT
803    U32  spare2;                   /* for 64 bit alignment */
804    U8   val[16];                  /* string value - 8 byte alligned */
805 #else
806    U8   val[12];                  /* string value - 4 byte alligned */
807 #endif /* ALIGN_64BIT */
808 } TknStr12;
809
810 typedef struct tknStr32           /* token string */
811 {
812    U8   pres;                     /* present flag */
813    U8   len;                      /* length */
814    U16  spare1;                   /* for alignment */
815 #ifdef ALIGN_64BIT
816    U32  spare2;                   /* for 64 bit alignment */
817 #endif
818    U8   val[32];                  /* string value - 4 byte alligned */
819 } TknStr32;
820
821 typedef struct tknStr64           /* token string */
822 {
823    U8   pres;                     /* present flag */
824    U8   len;                      /* length */
825    U16  spare1;                   /* for alignment */
826 #ifdef ALIGN_64BIT
827    U32  spare2;                   /* for 64 bit alignment */
828 #endif
829    U8   val[64];                  /* string value - 4 byte alligned */
830 } TknStr64;
831
832 typedef struct tknStr132          /* token string */
833 {
834    U8   pres;                     /* present flag */
835    U8   len;                      /* length */
836    U16  spare1;                   /* for alignment */
837 #ifdef ALIGN_64BIT
838    U32  spare2;                   /* for 64 bit alignment */
839    U8   val[136];                 /* string value - 8 byte alligned */
840 #else
841    U8   val[132];                 /* string value - 4 byte alligned */
842 #endif /* ALIGN_64BIT */
843 } TknStr132;
844
845 typedef struct tknStr256          /* token string */
846 {
847    U8   pres;                     /* present flag */
848    U8   len;                      /* length */
849    U16  spare1;                   /* for alignment */
850 #ifdef ALIGN_64BIT
851    U32  spare2;                   /* for 64 bit alignment */
852 #endif
853    U8   val[256];                 /* string value - 4 byte alligned */
854 } TknStr256;
855
856 typedef struct tknOid             /* Object Identifier */
857 {
858    U8   pres;                     /* present flag */
859    U8   len;                      /* length */
860    U16  spare1;                   /* for alignment */
861 #ifdef ALIGN_64BIT
862    U32  spare2;                   /* for 64 bit alignment */
863 #endif
864    /* gen_x_001.main_81 : changed val from U32 to U16 with comilation flag
865     * TKNOID_U16 */
866 #ifndef TKNOID_U16
867    U32  val[32];                  /* max 32 integers of less than 64k value */
868 #else
869    U16  val[32];                  /* max 32 integers of less than 64k value */
870 #endif
871 } TknOid;
872
873 typedef struct tknBits            /* token bits */
874 {
875    U8   pres;                     /* present flag */
876    U8   len;                      /* for alignment */
877    U16  spare1;                   /* for alignment */
878 #ifdef ALIGN_64BIT
879    U32  spare2;                   /* for 64 bit alignment */
880    U8   val[(MF_SIZE_TKNBITS + 7) & 0xff8]; /* string value */
881 #else
882    U8   val[(MF_SIZE_TKNBITS + 3) & 0xffc]; /* string value */
883 #endif
884 } TknBits;
885
886 typedef struct elmtStr            /* element string */
887 {
888    ElmtHdr eh;                    /* element header */
889    TknStr str;                    /* network specific information */
890 } ElmtStr;
891
892 typedef struct cdPtyNmb           /* called party number tokens */
893 {
894    ElmtHdr eh;                    /* element header */
895    TknU8 nmbPlanId;               /* numbering plan identification */
896    TknU8 typeNmb0;                /* type of number */
897 #ifdef CDPTYNMB_32DIGIT
898    TknStrM nmbDigits;             /* number digits */
899 #else
900    TknStrS nmbDigits;             /* number digits */
901 #endif /* CDPTYNMB_32DIGIT */
902 } CdPtyNmb;
903
904 typedef struct redirNmb           /* redirecting number tokens */
905 {
906    ElmtHdr eh;                    /* element header */
907    TknU8 nmbPlanId;               /* numbering plan identification */
908    TknU8 typeNmb;                 /* type of number */
909    TknU8 screenInd;               /* screening indicator */
910    TknU8 presInd;                 /* presentation indicator */
911    TknU8 rsnRedirect;             /* reason for redirection */
912    TknStrS nmbDigits;             /* number digits */
913 } RedirNmb;
914
915 typedef struct srvClass           /* service class */          
916 {                                                       
917    U8 type;                       /* type */                 
918    union                                                
919    {                                                    
920       struct                      /* frame relay */                                
921       {                                                 
922          Bool cr;                 /* command response bit */
923          Bool de;                 /* discard eligibility bit */ 
924       } fr;                                             
925       struct                      /* mac */
926       {                                                 
927          Prior prior;             /* priority */            
928       } ma;                                             
929    } s;                                                 
930 } SrvClass;                                              
931
932 /* ip header, without options */
933
934 typedef struct _ip           /* ip header */
935 {
936    U8     ip_hl;            /* header length */
937    Prec   ip_tos;           /* type of service */
938    U16    ip_len;           /* total length */
939    U16    ip_id;            /* identification */
940    U16    ip_off;           /* fragment offset field */
941    Ttl    ip_ttl;           /* time to live */
942    U8     ip_p;             /* protocol */
943    U16    ip_sum;           /* checksum */
944    IpAddr ip_src;           /* source address */
945    IpAddr ip_dst;           /* dest address */
946 } Ip;
947  
948
949 /* ATM structures */
950  
951 #ifndef CMFILE_REORG_1
952
953 /* info elements that can be used for routing calls */
954  
955 typedef struct amCdPtySad       /* Called Party Sub Address Tokens */
956 {
957    ElmtHdr eh;                  /* element header */
958    TknU8   oddEvenInd;          /* odd/even indicator */
959    TknU8   typeSad;             /* type of sub address */
960    TknStrS  sadInfo;            /* address/number information */
961 } AmCdPtySad;
962  
963 typedef struct amBHiLyrInfo     /* Broadband High Layer Information Tokens */
964 {
965    ElmtHdr eh;                  /* element header */
966    TknU8   hiLyrInfoType;       /* high layer information type */
967    TknStrS  hiLyrInfo;          /* high layer information */
968 } AmBHiLyrInfo;
969  
970 typedef struct amBBearCap       /* Broadband Bearer Capability Tokens */
971 {
972    ElmtHdr eh;                  /* element header */
973    TknU8   bearClass;           /* bearer class */
974    TknU8   timingReq;           /* timing requirement */
975    TknU8   tfcType;             /* traffic type */
976    TknU8   atmTfrCap;           /* ATM transfer capability */
977    TknU8   usrPlaneConCfg;      /* user plane connection configuration */
978    TknU8   suscClip;            /* susceptability to clipping */
979 } AmBBearCap;
980
981 typedef struct amQosParam       /* Quality of Service Parameter Tokens */
982 {
983    ElmtHdr eh;                  /* element header */
984    TknU8   qosClassFwd;         /* quality of service class forward */
985    TknU8   qosClassBwd;         /* quality of service class backward */
986 } AmQosParam;
987
988 typedef struct amEtoeDly        /* End To End Transit Delay Tokens */
989 {
990    ElmtHdr eh;                  /* element header */
991    TknU8   cumTransDlyId;       /* cumulative transit delay id */
992    TknU16  cumTransDly;         /* cumulative transit delay value */
993    TknU8   reqTransDlyId;       /* requested max end to end transit delay id */
994    TknU16  reqTransDly;         /* maximum end to end transit delay value */
995    TknU8   pnniAccFMCTDId;      /* PNNI acceptable forward max. CTD ID */
996    TknU32  pnniAccFMCTD;        /* PNNI acceptable forward max. CTD */
997    TknU8   pnniCumFMCTDId;      /* PNNI acceptable forward max. CTD ID */
998    TknU32  pnniCumFMCTD;        /* PNNI acceptable forward max. CTD */
999    TknU8   netGenInd;           /* network generated indicator */
1000 } AmEtoeDly;
1001
1002 typedef struct amOamTfcDesc     /* OAM Traffic Descriptor Tokens */
1003 {
1004    ElmtHdr eh;                  /* element header */
1005    TknU8   usrNetFaultMgmt;     /* user network fault management indicator */
1006    TknU8   compInd;             /* compliance indicator */
1007    TknU8   shapingInd;          /* shaping indicator */
1008    TknU8   bwdEtoeOamF5FlInd;   /* backward e-to-e OAM F5 flow indicator */
1009    TknU8   fwdEtoeOamF5FlInd;   /* forward e-to-e OAM F5 flow indicator */
1010 } AmOamTfcDesc;
1011
1012 typedef struct amEndptRef       /* Endpoint Reference Tokens */
1013 {
1014    ElmtHdr eh;                  /* element header */
1015    TknU8   endptRefType;        /* endpoint reference type */
1016    TknU16  endptRefVal;         /* endpoint reference value */
1017 } AmEndptRef;
1018
1019 typedef struct amAalParam       /* AAL Parameters Tokens */
1020 {
1021    ElmtHdr eh;                  /* element header */
1022    TknU8   aalType;             /* AAL type */
1023
1024    /* Token definition for AAL-1 */
1025    TknU8   subTypeId;           /* Subtype Identifier */
1026    TknU8   subType;             /* Subtype */
1027    TknU8   cbrRateId;           /* CBR Rate Identifier */
1028    TknU8   cbrRate;             /* CBR Rate */
1029    TknU8   multId;              /* Multiplier Identifier */
1030    TknU16  multVal;             /* Multiplier value */
1031    TknU8   srcClkFreqMetId;     /* Source clock Frequency method identifier */
1032    TknU8   srcClkFreqMet;       /* Source Clock frequency method */
1033    TknU8   errCrMetId;          /* Error correction method identifier */
1034    TknU8   errCrMet;            /* Error correction method */
1035    TknU8   strDatTxBlkszId;     /* Structured data transfer blocksize Id. */
1036    TknU8   strDatTxBlksz0;      /* Structured data transfer blocksize - oct 1*/
1037
1038    /* Token definition for AAL-1, except in UNI 3.0 */
1039    TknU8   strDatTxBlksz1;      /* Structured data transfer blocksize - oct 2*/
1040
1041    /* Token definition for AAL-1 */
1042    TknU8   prtFillCellId;       /* Partially filled cells Identifier */
1043    TknU8   prtFillCellMet;      /* Partially filled cells method */
1044
1045    /* Token definition for AAL-3/4 and AAL-5 */
1046    TknU8   fwdMaxCpcsSduSzId;   /* Forward maximum CPCS-SDU size identifier */
1047    TknU16  fwdMaxCpcsSduSz;     /* Forward maximum CPCS-SDU size */
1048    TknU8   bwdMaxCpcsSduSzId;   /* Forward maximum CPCS-SDU size identifier */
1049    TknU16  bwdMaxCpcsSduSz;     /* Forward maximum CPCS-SDU size */
1050
1051    /* Token definition for AAL-3/4 only */
1052    TknU8   midRangeId;          /* MID Range identifier */
1053    TknU16  loMidRange;          /* MID Range value */
1054
1055    /* Token definition for AAL-3/4 only, except in UNI 3.0 */
1056    TknU16  hiMidRange;          /* MID Range value */
1057
1058    /* Token definition for AAL-3/4 and AAL-5 and only for UNI 3.0 */
1059    TknU8   modeId;              /* Mode identifier */
1060    TknU8   mode;                /* Mode - Streaming/Message */
1061
1062    /* Token definition for AAL-3/4 and AAL-5 */
1063    TknU8   sscsTypeId;          /* SSCS Type Identifier */
1064    TknU8   sscsType;            /* SSCS Type */
1065
1066    /* Token definition for User defined AAL */
1067    TknU32  usrDefAalInfo;       /* User defined AAL information */
1068 } AmAalParam;
1069
1070 typedef struct amBLoLyrInfo     /* Broadband Low Layer Information Tokens */
1071 {
1072    ElmtHdr eh;                  /* element header */
1073    TknU8   usrInfoLyr1Prot;     /* user information layer 1 protocol */
1074    TknU8   lyr1Id;              /* Layer 1 id */
1075    TknU8   usrInfoLyr2Prot;     /* user information layer 2 protocol */
1076    TknU8   lyr2Id;              /* Layer 2 id */
1077    TknU8   q933Use;             /* Q.933 use */
1078    TknU8   lyr2OprMode;         /* Mode of operation */
1079    TknU8   winSize;             /* Window size */
1080    TknU8   usrSpecLyr2ProtInfo; /* User specified layer 2 protocol info */
1081    TknU8   usrInfoLyr3Prot;     /* user information layer 3 protocol */
1082    TknU8   lyr3Id;              /* Layer 3 id */
1083    TknU8   lyr3OprMode;         /* Mode of operation */
1084    TknU8   defPktSize;          /* Default packet size */
1085    TknU8   pktWinSize;          /* Default packet size */
1086    TknU8   usrSpecLyr3ProtInfo; /* User specified layer 3 protocol info */
1087    TknU8   initProtId;          /* Initial protocol Identifier bits 8-2 */
1088    TknU8   snapId;              /* SNAP identifier */
1089    TknU32  oui;                 /* Organisation unique identifier */
1090    TknU16  protId;              /* Protocol identifier */
1091 } AmBLoLyrInfo;
1092
1093 typedef struct amAtmTfcDesc     /* ATM Traffic Descriptor Tokens */
1094 {
1095    ElmtHdr eh;                  /* element header */
1096    TknU8   fwdPeakCellRateId0;  /* forward  peak  cell rate id, CLP = 0 */
1097    TknU32  fwdPeakCellRate0;    /* forward  peak  cell rate,    CLP = 0   */
1098    TknU8   bwdPeakCellRateId0;  /* backward peak  cell rate id, CLP = 0 */
1099    TknU32  bwdPeakCellRate0;    /* backward peak  cell rate,    CLP = 0   */
1100    TknU8   fwdPeakCellRateId1;  /* forward  peak  cell rate id, CLP = 0+1 */
1101    TknU32  fwdPeakCellRate1;    /* forward  peak  cell rate,    CLP = 0+1 */
1102    TknU8   bwdPeakCellRateId1;  /* backward peak  cell rate id, CLP = 0+1 */
1103    TknU32  bwdPeakCellRate1;    /* backward peak  cell rate,    CLP = 0+1 */
1104    TknU8   fwdSustCellRateId0;  /* forward  sust. cell rate id, CLP = 0 */
1105    TknU32  fwdSustCellRate0;    /* forward  sust. cell rate,    CLP = 0   */
1106    TknU8   bwdSustCellRateId0;  /* backward sust. cell rate id, CLP = 0 */
1107    TknU32  bwdSustCellRate0;    /* backward sust. cell rate,    CLP = 0   */
1108    TknU8   fwdSustCellRateId1;  /* forward  sust. cell rate id, CLP = 0+1 */
1109    TknU32  fwdSustCellRate1;    /* forward  sust. cell rate,    CLP = 0+1 */
1110    TknU8   bwdSustCellRateId1;  /* backward sust. cell rate id, CLP = 0+1 */
1111    TknU32  bwdSustCellRate1;    /* backward sust. cell rate,    CLP = 0+1 */
1112    TknU8   fwdMeanBurstSizeId0; /* forward  mean burst size id, CLP = 0 */
1113    TknU32  fwdMeanBurstSize0;   /* forward  mean burst size,    CLP = 0   */
1114    TknU8   bwdMeanBurstSizeId0; /* backward mean burst size id, CLP = 0 */
1115    TknU32  bwdMeanBurstSize0;   /* backward mean burst size,    CLP = 0   */
1116    TknU8   fwdMeanBurstSizeId1; /* forward  mean burst size id, CLP = 0+1 */
1117    TknU32  fwdMeanBurstSize1;   /* forward  mean burst size,    CLP = 0+1 */
1118    TknU8   bwdMeanBurstSizeId1; /* backward mean burst size id, CLP = 0+1 */
1119    TknU32  bwdMeanBurstSize1;   /* backward mean burst size,    CLP = 0+1 */
1120    TknU8   bstEffortReq;        /* best effort requested */
1121    TknU8   tfcMgmtOptId;        /* traffic management options identifier */
1122    TknU8   fwdTagReq;           /* tagging requested in forward  direction */
1123    TknU8   bwdTagReq;           /* tagging requested in backward direction */
1124    TknU8   bwdFrmDisc;          /* frame discard in backward direction */
1125    TknU8   fwdFrmDisc;          /* frame discard in forward  direction */
1126    TknU8   fwdAbrMinCellRateId; /* forward  ABR min. cell rate id, CLP = 0+1 */
1127    TknU32  fwdAbrMinCellRate;   /* forward  ABR min. cell rate,    CLP = 0+1 */
1128    TknU8   bwdAbrMinCellRateId; /* backward ABR min. cell rate id, CLP = 0+1 */
1129    TknU32  bwdAbrMinCellRate;   /* backward ABR min. cell rate,    CLP = 0+1 */
1130 } AmAtmTfcDesc;
1131
1132 typedef struct amCauseDgn       /* Cause and Diagnostics Tokens */
1133 {
1134    ElmtHdr eh;                  /* element header */
1135    TknU8   location;            /* location */
1136    TknU8   causeVal;            /* cause value */
1137    TknStrM  dgnVal;              /* Diagnostics value */
1138 } AmCauseDgn;
1139
1140 typedef struct amCgPtyNmb       /* Calling Party Number Tokens */
1141 {
1142    ElmtHdr eh;                  /* element header */
1143    TknU8   nmbPlanId;           /* address/numbering plan identification */
1144    TknU8   typeNmb;             /* type of number */
1145    TknU8   screenInd;           /* screening indicator */
1146    TknU8   presInd;             /* presentation indicator */
1147    TknStrS nmbDigits;           /* address/number information */
1148 } AmCgPtyNmb;
1149
1150 typedef struct amCgPtySad       /* Calling Party Sub Address Tokens */
1151 {
1152    ElmtHdr eh;                  /* element header */
1153    TknU8   oddEvenInd;          /* odd/even indicator */
1154    TknU8   typeSad;             /* type of sub address */
1155    TknStrS sadInfo;             /* address/number information */
1156 } AmCgPtySad;
1157
1158 typedef struct amNBearCap       /* Narrowband Bearer Capability Tokens */
1159 {
1160    ElmtHdr eh;                  /* element header */
1161    TknU8 infoTranCap;           /* information transfer capability */
1162    TknU8 codingStd;             /* coding standard */
1163    TknU8 infoTranRate0;         /* information transfer rate */
1164    TknU8 tranMode;              /* transfer mode */
1165    TknU8 establish;             /* establishment */
1166    TknU8 cfg;                   /* configuration */
1167    TknU8 chanStruct;            /* structure */
1168    TknU8 infoTranRate1;         /* information transfer rate */
1169    TknU8 symmetry;              /* symmetry */
1170    TknU8 usrInfoLyr1Prot;       /* usr information layer 1 protocol */
1171    TknU8 lyr1Ident;             /* layer 1 identity */
1172    TknU8 usrRate;               /* user rate */
1173    TknU8 negot;                 /* negotiation */
1174    TknU8 syncAsync;             /* synchronous/asynchronous */
1175 /*------------------------------------------------------------------------*/
1176 /* The following six tokens represent a uinon of octets 5b.1 and 5b.2 of  */
1177 /* the Narrow Band Bearer Capability.                                     */
1178 /*------------------------------------------------------------------------*/
1179    TknU8 FlcRx_BandNeg;         /* flow control on reception or 
1180                                    inband/outband negotiation */
1181    TknU8 FlcTx_Assgn;           /* flow control on transmission or 
1182                                    assignor/assignee*/
1183    TknU8 NicRx_LLINeg;          /* network independent clock on reception or 
1184                                    logical link identifier negotiation */
1185    TknU8 NicTx_Mode;            /* network independent clock on transmission or
1186                                    mode of operation */
1187    TknU8 Rate_MFrm;             /* intermediate rate (low bit) or Multi 
1188                                    frame support */
1189    TknU8 Rate_Hdr;              /* intermediate rate (high bit) or rate 
1190                                    adaptation Hdr/ no Headr */
1191    TknU8 parity;                /* parity information */
1192    TknU8 nmbDatBits;            /* number of data bits excluding parity bit */
1193    TknU8 nmbStopBits;           /* number of stop bits */
1194    TknU8 modemType;             /* modem type */
1195    TknU8 duplexMode;            /* duplex mode */
1196    TknU8 usrInfoLyr2Prot;       /* user information layer 2 protocol */
1197    TknU8 lyr2Ident;             /* layer 2 identity */
1198    TknU8 usrInfoLyr3Prot;       /* user information layer 3 protocol */
1199    TknU8 lyr3Ident0;            /* layer 3 identity */
1200 } AmNBearCap;
1201
1202 typedef struct amNLoLyrComp     /* Narrowband Low Layer Compatibility Tokens */
1203 {
1204    ElmtHdr eh;                  /* element header */
1205    TknU8 infoTranCap;           /* information transfer capability */
1206    TknU8 codingStd;             /* coding standard */
1207    TknU8 negInd;                /* negotiation indicator */
1208    TknU8 infoTranRate0;         /* information transfer rate */
1209    TknU8 tranMode;              /* transfer mode */
1210    TknU8 establish;             /* establishment */
1211    TknU8 cfg;                   /* configuration */
1212    TknU8 chanStruct;            /* structure */
1213    TknU8 infoTranRate1;         /* information transfer rate */
1214    TknU8 symmetry;              /* symmetry */
1215    TknU8 usrInfoLyr1Prot;       /* usr information layer 1 protocol */
1216    TknU8 lyr1Ident;             /* layer 1 identity */
1217    TknU8 usrRate;               /* user rate */
1218    TknU8 negot;                 /* negotiation */
1219    TknU8 syncAsync;             /* synchronous/asynchronous */
1220 /*------------------------------------------------------------------------*/
1221 /* The following six tokens represent a uinon of octets 5b.1 and 5b.2 of  */
1222 /* the Narrow Band Lower Layer Compatibility                              */
1223 /*------------------------------------------------------------------------*/
1224    TknU8 FlcRx_BandNeg;         /* flow control on reception or 
1225                                    inband/outband negotiation */
1226    TknU8 FlcTx_Assgn;           /* flow control on transmission or 
1227                                    assignor/assignee*/
1228    TknU8 NicRx_LLINeg;          /* network independent clock on reception or 
1229                                    logical link identifier negotiation */
1230    TknU8 NicTx_Mode;            /* network independent clock on transmission or
1231                                    mode of operation */
1232    TknU8 Rate_MFrm;             /* intermediate rate (low bit) or Multi 
1233                                    frame support */
1234    TknU8 Rate_Hdr;              /* intermediate rate (high bit) or rate 
1235                                    adaptation Hdr/ no Headr */
1236    TknU8 parity;                /* parity information */
1237    TknU8 nmbDatBits;            /* number of data bits excluding parity bit */
1238    TknU8 nmbStopBits;           /* number of stop bits */
1239    TknU8 modemType;             /* modem type */
1240    TknU8 duplexMode;            /* duplex mode */
1241    TknU8 usrInfoLyr2Prot;       /* user information layer 2 protocol */
1242    TknU8 lyr2Ident;             /* layer 2 identity */
1243    TknU8 optLyr2ProtInfo;       /* optional layer 2 protocol information */
1244    TknU8 usrInfoLyr3Prot;       /* user information layer 3 protocol */
1245    TknU8 lyr3Ident1;            /* layer 3 identity */
1246    TknU8 optLyr3ProtInfo;       /* optional layer 3 protocol information */
1247 } AmNLoLyrComp;
1248
1249 typedef struct amNHiLyrComp     /* Narrowband High Layer Compatibility Tokens */
1250 {
1251    ElmtHdr eh;                  /* element header */
1252    TknU8 presMethod;            /* presentation method */
1253    TknU8 interpretation;        /* interpretation */
1254    TknU8 codingStd;             /* coding standard */
1255    TknU8 highLyrCharId;         /* high layer characteristics identification */
1256    TknU8 extHighLyrCharId;      /* extended high layer characteristics id */
1257 } AmNHiLyrComp;
1258
1259 typedef struct amProgInd        /* Progress Indicator Tokens */
1260 {
1261    ElmtHdr eh;                  /* element header */
1262    TknU8 progLocation;          /* location */
1263    TknU8 codingStd;             /* coding standard */
1264    TknU8 progDesc;              /* progress description */
1265 } AmProgInd;
1266
1267 #if (DEF_SIG_PNNI | DEF_SIG_AINI)
1268 typedef struct amCrankback      /* Crankback Tokens */
1269 {
1270    ElmtHdr eh;                  /* element header */
1271    TknU8   cbLevel;             /* crankback level */
1272    TknU8   blkTransType;        /* blocked transit type */
1273 #ifdef SIG_PNNI
1274    TknStrS blkNodeId;           /* blocked node id */
1275    TknStrS blkLinkPreNodeId;    /* blocked link's preceeding node id */
1276    TknU32  blkLinkPortId;       /* blocked link port id */
1277    TknStrS blkLinkSuccNodeId;   /* blocked link's succeding node id */
1278 #endif /* SIG_PNNI */
1279    TknU8   cbCause;             /* crankback cause */
1280 #ifdef SIG_PNNI
1281    TknStrM cbDgn;               /* crankback cause diagnostics */
1282 #endif /* SIG_PNNI */
1283 } AmCrankback;
1284
1285 typedef struct amCdPtySoftPvc   /* Called Party Soft PVPC/PVCC Tokens */
1286 {
1287    ElmtHdr eh;                  /* element header */
1288    TknU8   selType;             /* VPI/VCI selection Type */
1289    TknU8   vpiId;               /* VPI id */
1290    TknU16  vpi;                 /* VPI */
1291    TknU8   vciId;               /* VCI id */
1292    TknU16  vci;                 /* VCI */
1293 #ifdef SPVC_FR
1294    TknU8   dlciId;              /* DLCI Identifer */
1295    TknU32  dlci;                /* Dlci Value */
1296 #endif /* SPVC_FR */
1297 } AmCdPtySoftPvc;
1298
1299 typedef struct amCgPtySoftPvc   /* Calling Party Soft PVPC/PVCC Tokens */
1300 {
1301    ElmtHdr eh;                  /* element header */
1302    TknU8   vpiId;               /* VPI id */
1303    TknU16  vpi;                 /* VPI */
1304    TknU8   vciId;               /* VCI id */
1305    TknU16  vci;                 /* VCI */
1306 #ifdef SPVC_FR
1307    TknU8   dlciId;              /* DLCI Identifer */
1308    TknU32  dlci;                /* Dlci Value */
1309 #endif /* SPVC_FR */
1310 } AmCgPtySoftPvc;
1311 #endif /* DEF_SIG_PNNI | DEF_SIG_AINI */
1312
1313 typedef struct amConnNmb        /* Connected Number Tokens */
1314 {
1315    ElmtHdr eh;                  /* element header */
1316    TknU8   nmbPlanId;           /* address/numbering plan identification */
1317    TknU8   typeNmb;             /* type of number */
1318    TknU8   screenInd;           /* screening indicator */
1319    TknU8   presInd;             /* presentation indicator */
1320    TknStrS nmbDigits;           /* address/number information */
1321 } AmConnNmb;
1322
1323 #if (DEF_SIG_PNNI | DEF_SIG_AINI | DEF_UNI40)
1324 typedef struct amConnSad        /* Calling Party Sub Address Tokens */
1325 {
1326    ElmtHdr eh;                  /* element header */
1327    TknU8   oddEvenInd;          /* odd/even indicator */
1328    TknU8   typeSad;             /* type of sub address */
1329    TknStrS sadInfo;             /* address/number information */
1330 } AmConnSad;
1331
1332 typedef struct amGenIdTrans     /* Generic Identifier Transport Tokens */
1333 {
1334    ElmtHdr eh;                  /* element header */
1335    TknStrM genId;               /* generic identifier */
1336 } AmGenIdTrans;
1337
1338 typedef AmAtmTfcDesc   AmAltAtmTfcDesc;  /* Alternative ATM Traffic Desc. */
1339
1340 typedef struct amMinAccAtmTfcDesc  /* Minimum acceptable ATM Traffic Desc. */
1341 {
1342    ElmtHdr eh;                     /* element header */
1343    TknU8   fwdPeakCellRateId0;     /* forward  peak  cell rate id, CLP = 0 */
1344    TknU32  fwdPeakCellRate0;       /* forward  peak  cell rate,    CLP = 0   */
1345    TknU8   bwdPeakCellRateId0;     /* backward peak  cell rate id, CLP = 0 */
1346    TknU32  bwdPeakCellRate0;       /* backward peak  cell rate,    CLP = 0   */
1347    TknU8   fwdPeakCellRateId1;     /* forward  peak  cell rate id, CLP = 0+1 */
1348    TknU32  fwdPeakCellRate1;       /* forward  peak  cell rate,    CLP = 0+1 */
1349    TknU8   bwdPeakCellRateId1;     /* backward peak  cell rate id, CLP = 0+1 */
1350    TknU32  bwdPeakCellRate1;       /* backward peak  cell rate,    CLP = 0+1 */
1351 } AmMinAccAtmTfcDesc;
1352
1353 typedef struct amExtQosParam       /* Extended QOS parameter */
1354 {
1355    ElmtHdr eh;                     /* element header */
1356    TknU8   origin;                 /* origin of this IE */
1357    TknU8   accFwdPpCDVId;          /* acceptable forward  peak-to-peak cell 
1358                                     * delay variation identifier */
1359    TknU32  accFwdPpCDV;            /* acceptable forward  peak-to-peak cell
1360                                     * delay variation */
1361    TknU8   accBwdPpCDVId;          /* acceptable backward peak-to-peak cell
1362                                     * delay variation identifier */
1363    TknU32  accBwdPpCDV;            /* acceptable backward peak-to-peak cell
1364                                     * delay variation */
1365    TknU8   cumFwdPpCDVId;          /* cumulative forward  peak-to-peak cell
1366                                     * delay variation identifier */
1367    TknU32  cumFwdPpCDV;            /* cumulative forward  peak-to-peak cell
1368                                     * delay variation */
1369    TknU8   cumBwdPpCDVId;          /* cumulative backward peak-to-peak cell
1370                                     * delay variation identifier */
1371    TknU32  cumBwdPpCDV;            /* cumulative backward peak-to-peak cell
1372                                     * delay variation */
1373    TknU8   accFwdCLRId;            /* acceptable forward  cell loss ratio
1374                                     * identifier */
1375    TknU8   accFwdCLR;              /* acceptable forward  cell loss ratio */
1376    TknU8   accBwdCLRId;            /* acceptable backward cell loss ratio 
1377                                     * identifier */
1378    TknU8   accBwdCLR;              /* acceptable backward cell loss ratio */
1379 } AmExtQosParam;
1380
1381 typedef struct amAbrAddParam       /* ABR additional parameters */
1382 {
1383    ElmtHdr eh;                     /* element header */
1384    TknU8   fwdAddParamRecId;       /* forward  additional parameters record identifier */
1385    TknU32  fwdAddParamRec;         /* forward  additional parameters record */
1386    TknU8   bwdAddParamRecId;       /* backward additional parameters record identifier */
1387    TknU32  bwdAddParamRec;         /* backward additional parameters record */
1388 } AmAbrAddParam;
1389
1390 typedef struct amAbrSetupParam     /* ABR Setup parameters */
1391 {
1392    ElmtHdr eh;                     /* element header */
1393    TknU8   fwdAbrICRId;            /* forward  ABR initial cell rate identifier */
1394    TknU32  fwdAbrICR;              /* forward  ABR initial cell rate */
1395    TknU8   bwdAbrICRId;            /* backward ABR initial cell rate identifier */
1396    TknU32  bwdAbrICR;              /* backward ABR initial cell rate */
1397    TknU8   fwdAbrTBEId;            /* forward  ABR transient buffer exposure identifier */
1398    TknU32  fwdAbrTBE;              /* forward  ABR transient buffer exposure */
1399    TknU8   bwdAbrTBEId;            /* backward ABR transient buffer exposure identifier */
1400    TknU32  bwdAbrTBE;              /* backward ABR transient buffer exposure */
1401    TknU8   cumRmFRTTId;            /* cumulative RM fixed round trip time identifier */
1402    TknU32  cumRmFRTT;              /* cumulative RM fixed round trip time */
1403    TknU8   fwdRIFId;               /* forward  rate increment factor identifier */
1404    TknU8   fwdRIF;                 /* forward  rate increment factor */
1405    TknU8   bwdRIFId;               /* backward rate increment factor identifier */
1406    TknU8   bwdRIF;                 /* backward rate increment factor */
1407    TknU8   fwdRDFId;               /* forward  rate decrement factor identifier */
1408    TknU8   fwdRDF;                 /* forward  rate decrement factor */
1409    TknU8   bwdRDFId;               /* backward rate decrement factor identifier */
1410    TknU8   bwdRDF;                 /* backward rate decrement factor */
1411 } AmAbrSetupParam;
1412 #endif /* DEF_SIG_PNNI | DEF_SIG_AINI | DEF_UNI40 */
1413
1414 #if (DEF_Q2931 | DEF_SIG_PNNI | DEF_SIG_AINI | DEF_UNI40)
1415 typedef struct amNotInd         /* Notification Indicator Tokens */
1416 {
1417    ElmtHdr eh;                  /* element header */
1418    TknStrE notDesc;             /* notification description */
1419 } AmNotInd;
1420 #endif /* DEF_Q2931 | DEF_SIG_PNNI | DEF_SIG_AINI | DEF_UNI40 */
1421
1422 \f
1423 /* AAL structure */
1424
1425 typedef struct aalConParam        /* connection parameters for AAL */
1426 {
1427    AmAalParam     aalParam;       /* AAL Parameters */
1428    AmAtmTfcDesc   atmTfcDesc;     /* ATM Traffic Descriptor */
1429    AmBBearCap     bBearCap;       /* Broadband Bearer Capability */
1430    AmQosParam     qosParam;       /* Qos parameters */
1431    AmEtoeDly      etoeDly;        /* End to End Transit Delay */
1432    AmOamTfcDesc   oamTfcDesc;     /* OAM Traffic Descriptor */
1433 } AalConParam;
1434
1435 typedef struct amCdPtyNmb       /* Called Party Number Tokens */
1436 {
1437    ElmtHdr eh;                  /* element header */
1438    TknU8   nmbPlanId;           /* address/numbering plan identification */
1439    TknU8   typeNmb;             /* type of number */
1440    TknStrS  nmbDigits;           /* address/number information */
1441 } AmCdPtyNmb;
1442
1443 #endif /* CMFILE_REORG_1 */
1444
1445  
1446 \f
1447 /* management structures */
1448
1449 typedef struct smCfg            /* stack manager */
1450 {
1451    Ent ent;                     /* entity */
1452    Inst inst;                   /* instance */
1453    Region region;               /* region */
1454    Pool pool;                   /* pool */
1455    Priority prior;              /* priority */
1456    Route route;                 /* route */
1457    Selector selector;           /* selector */
1458 } SmCfg;
1459
1460 typedef struct mem                /* memory */
1461 {
1462    Region region;                 /* region */
1463    Pool pool;                     /* pool */
1464    U16 spare;                     /* spare for alignment */
1465 } Mem;  
1466    
1467 typedef Mem MemoryId;             /* memory id */
1468
1469
1470 typedef struct resp
1471 {
1472    Selector selector;           /* selector */
1473    Priority prior;              /* priority */
1474    Route route;                 /* route */
1475    MemoryId mem;                /* memory */
1476 }Resp;
1477
1478 typedef struct tds_header       /* header */
1479 {
1480    U16 msgLen;                  /* message length   - optional */
1481    U8 msgType;                  /* message type     - mandatory */
1482    U8 version;                  /* version          - optional */
1483    U16 seqNmb;                  /* sequence number  - optional */
1484    EntityId entId;              /* entity id        - mandatory */
1485    ElmntId elmId;               /* element id       - mandatory */
1486 #ifdef LMINT3
1487    TranId transId;              /* transaction Id - mandatory */
1488    Resp response;               /* response parameters - mandatory */
1489 #endif /* LMINT3 */
1490 } Header;
1491
1492 typedef struct tmrCfg           /* timer configuration structure */
1493 {
1494    Bool enb;                    /* enable */
1495    U16 val;                     /* value */
1496 } TmrCfg;
1497
1498 typedef struct asyncCfg         /* asynchronous configuration */
1499 {
1500    StopBits stopBits;           /* stop bits */
1501    CharLength charLength;       /* character length */
1502    Parity rxParity;             /* receive parity */
1503    Parity txParity;             /* transmit parity */
1504 } AsyncCfg;
1505
1506
1507 /* dateTime structure */
1508   
1509 typedef struct dateTime           /* date and time */
1510 {
1511    U8 month;                      /* month */
1512    U8 day;                        /* day */
1513    U8 year;                       /* year */
1514    U8 hour;                       /* hour - 24 hour clock */
1515    U8 min;                        /* minute */
1516    U8 sec;                        /* second */
1517    U8 tenths;                     /* tenths of second */
1518    /*-- gen_x_001.main_90 - Added variable for microseconds in DateTime--*/
1519 #ifdef SS_DATETIME_USEC
1520    U32 usec;                      /* micro seconds */
1521 #endif /*-- SS_DATETIME_USEC --*/
1522 } DateTime;
1523 /* gen_x_001.main_94: Additions */
1524 /* gen_x_001.main_95: Modifications */
1525 typedef U64 EpcTime;
1526
1527 /* common status */
1528 typedef struct cmStatus
1529 {
1530    U16 status;       /* status of request */
1531    U16 reason;       /* failure reason */
1532 }CmStatus;    
1533
1534 /* common alarm */
1535 typedef struct cmAlarm
1536 {
1537    DateTime dt;      /* data and time */
1538    U16 category;     /* alarm category*/
1539    U16 event;        /* alarm event */
1540    U16 cause;        /* alarm cause */
1541 }CmAlarm;    
1542   
1543 /* duration structure */
1544   
1545 typedef struct duration           /* duration */
1546 {
1547    U8 days;                       /* days */
1548    U8 hours;                      /* hours */
1549    U8 mins;                       /* minutes */
1550    U8 secs;                       /* seconds */
1551    U8 tenths;                     /* tenths of seconds */
1552 } Duration;
1553
1554
1555
1556 \f
1557
1558 #ifdef CMFILE_REORG_1
1559
1560 #ifdef SS
1561 typedef struct ssmsgb Buffer;
1562
1563 #ifdef FLAT_BUFFER_OPT
1564 typedef struct _flatBuffer
1565 {
1566    U8* startAddr;
1567    U8* ptr;
1568    U32 len;
1569 }FlatBuffer;
1570 #endif
1571
1572 #else /* SS */
1573
1574 #ifdef WINNT_IATM                 /* Windows NT Integrated ATM */
1575 #ifndef CFG_APP                   /* Don't include ndis.h for config app. */ 
1576 #include "ndis.h"                 /* to support NDIS calls (listed above) */
1577 #endif /* CFG_APP */
1578
1579 typedef struct _NDIS_PACKET Buffer; /* forward definition - buffer */
1580 #else
1581 typedef struct ss_buffer Buffer;  /* forward definition - buffer */
1582
1583 #endif /* WINNT_IATM */
1584 #endif /* SS */
1585
1586 typedef struct tknBuf
1587 {
1588    U8      pres;                  /* Present Flag */
1589    U8      spare1;                /* for alignment */
1590    U16     spare2;                /* for 32 bit alignment */
1591 #ifdef ALIGN_64BIT
1592    U32     spare3;                /* for 64 bit alignment */
1593 #endif
1594    Buffer  *val;                  /* Buffer type (use allocated memory) */
1595 } TknBuf;
1596
1597 /* defining the CmIpAddr and CmIpAddr6 */
1598 /* socket typedefs and structs */
1599 typedef U32 CmIpAddr;        /* 4 byte IP address */
1600 #ifdef IPV6_SUPPORTED
1601 typedef U8  CmIpAddr6[16];   /* 16 byte IPV6 address */
1602 #endif /* IPV6_SUPPORTED */
1603
1604 /* common packing functions */
1605
1606 /* system services structures */
1607 EXTERN S16 cmPkDateTime ARGS((DateTime *dateTime, Buffer *mBuf));
1608 EXTERN S16 cmPkDuration ARGS((Duration *duration, Buffer *mBuf));
1609 EXTERN S16 cmPkPtr ARGS((PTR ptr, Buffer *mBuf));
1610 EXTERN S16 cmPkEntityId ARGS((EntityId *entityId, Buffer *mBuf));
1611 EXTERN S16 cmPkElmntId  ARGS((ElmntId  *elmntId,  Buffer *mBuf));
1612 EXTERN S16 cmPkMemoryId ARGS((MemoryId *memoryId, Buffer *mBuf));
1613
1614 /* general structures */
1615 EXTERN S16 cmPkSystemId ARGS((SystemId *systemId, Buffer *mBuf));
1616 EXTERN S16 cmPkAddrs    ARGS((Addrs    *addrs,    Buffer *mBuf));
1617 EXTERN S16 cmPkProtAddr ARGS((ProtAddr *protAddr, Buffer *mBuf));
1618 EXTERN S16 cmPkProtAddrTbl ARGS((ProtAddrTbl *protAddr, Buffer *mBuf));
1619 EXTERN S16 cmPkShrtAddrs ARGS((ShrtAddrs    *addrs,    Buffer *mBuf));
1620 EXTERN S16 cmPkAddrMask ARGS((U8    *mask,    Buffer *mBuf));
1621 EXTERN S16 cmPkBndCfg   ARGS((BndCfg   *bndCfg,   Buffer *mBuf));
1622 EXTERN S16 cmPkPst      ARGS((Pst      *pst,      Buffer *mBuf));
1623 EXTERN S16 cmPkElmtHdr  ARGS((ElmtHdr  *m,        Buffer *mBuf));
1624 EXTERN S16 cmPkTknU8    ARGS((TknU8    *tknU8,    Buffer *mBuf));
1625 EXTERN S16 cmPkTknS8    ARGS((TknS8    *tknS8,    Buffer *mBuf));
1626 EXTERN S16 cmPkTknU16   ARGS((TknU16   *tknU16,   Buffer *mBuf));
1627 EXTERN S16 cmPkTknU32   ARGS((TknU32   *tknU32,   Buffer *mBuf));
1628 EXTERN S16 cmPkTknStr   ARGS((TknStr   *tknStr,   Buffer *mBuf));                              
1629 EXTERN S16 cmPkTknStrM  ARGS((TknStrM  *tknStr,   Buffer *mBuf));
1630 EXTERN S16 cmPkTknStrS  ARGS((TknStrS  *tknStr,   Buffer *mBuf));
1631 EXTERN S16 cmPkTknStrE  ARGS((TknStrE  *tknStr,   Buffer *mBuf));
1632
1633 EXTERN S16 cmPkTknStr4   ARGS((TknStr4   *tknStr,   Buffer *mBuf));
1634 EXTERN S16 cmPkTknStr12  ARGS((TknStr12  *tknStr,   Buffer *mBuf));
1635 EXTERN S16 cmPkTknStr32  ARGS((TknStr32  *tknStr,   Buffer *mBuf));
1636 EXTERN S16 cmPkTknStr64  ARGS((TknStr64  *tknStr,   Buffer *mBuf));
1637 EXTERN S16 cmPkTknStr132 ARGS((TknStr132 *tknStr,   Buffer *mBuf));
1638 EXTERN S16 cmPkTknStr256 ARGS((TknStr256 *tknStr,   Buffer *mBuf));
1639
1640 PUBLIC  S16  cmPkTknS32    ARGS((TknS32 *tknS32, Buffer *mBuf));
1641 PUBLIC  S16  cmPkTknOid    ARGS((TknOid *tknOid, Buffer *mBuf));
1642 PUBLIC  S16  cmPkTknBuf    ARGS((TknBuf *tknBuf, Buffer *mBuf));
1643
1644 #ifdef TDS_ROLL_UPGRADE_SUPPORT
1645 PUBLIC  S16  cmPkIntf      ARGS((CmIntf *intf, Buffer *mBuf));
1646 #endif
1647
1648 /* layer management structures */
1649 EXTERN S16 cmPkHeader   ARGS((Header   *header,   Buffer *mBuf));
1650 EXTERN S16 cmPkSmCfg    ARGS((SmCfg    *smCfg,    Buffer *mBuf));
1651 EXTERN S16 cmPkTmrCfg   ARGS((TmrCfg   *tmrCfg,   Buffer *mBuf));
1652 EXTERN S16 cmPkCmStatus ARGS((CmStatus *status,   Buffer *mBuf));
1653 EXTERN S16 cmPkCmAlarm  ARGS((CmAlarm  *alrm,     Buffer *mBuf));
1654
1655 \f
1656 /* common unpacking functions */
1657
1658 /* system services structures */
1659 EXTERN S16 cmUnpkDateTime ARGS((DateTime *dateTime, Buffer *mBuf));
1660 EXTERN S16 cmUnpkDuration ARGS((Duration *duration, Buffer *mBuf));
1661 EXTERN S16 cmUnpkPtr ARGS((PTR *ptr, Buffer *mBuf));
1662 EXTERN S16 cmUnpkEntityId ARGS((EntityId *entityId, Buffer *mBuf));
1663 EXTERN S16 cmUnpkElmntId  ARGS((ElmntId  *elmntId,  Buffer *mBuf));
1664 EXTERN S16 cmUnpkMemoryId ARGS((MemoryId *memoryId, Buffer *mBuf));
1665
1666 /* general structures */
1667 EXTERN S16 cmUnpkSystemId ARGS((SystemId *systemId, Buffer *mBuf));
1668 EXTERN S16 cmUnpkAddrs    ARGS((Addrs    *addrs,    Buffer *mBuf));
1669 EXTERN S16 cmUnpkProtAddr ARGS((ProtAddr *protAddr, Buffer *mBuf));
1670 EXTERN S16 cmUnpkProtAddrTbl ARGS((ProtAddrTbl *protAddr, Buffer *mBuf));
1671 EXTERN S16 cmUnpkShrtAddrs ARGS((ShrtAddrs    *addrs,    Buffer *mBuf));
1672 EXTERN S16 cmUnpkAddrMask ARGS((U8    *mask,    Buffer *mBuf));
1673 EXTERN S16 cmUnpkBndCfg   ARGS((BndCfg   *bndCfg,   Buffer *mBuf));
1674 EXTERN S16 cmUnpkPst      ARGS((Pst      *pst,      Buffer *mBuf));
1675 EXTERN S16 cmUnpkElmtHdr  ARGS((ElmtHdr  *m,        Buffer *mBuf));
1676 EXTERN S16 cmUnpkTknU8    ARGS((TknU8    *tknU8,    Buffer *mBuf));
1677 EXTERN S16 cmUnpkTknS8    ARGS((TknS8    *tknS8,    Buffer *mBuf));
1678 EXTERN S16 cmUnpkTknU16   ARGS((TknU16   *tknU16,   Buffer *mBuf));
1679 EXTERN S16 cmUnpkTknU32   ARGS((TknU32   *tknU32,   Buffer *mBuf));
1680 EXTERN S16 cmUnpkTknStr   ARGS((TknStr   *tknStr,   Buffer *mBuf));                              
1681 EXTERN S16 cmUnpkTknStrM  ARGS((TknStrM  *tknStr,   Buffer *mBuf));
1682 EXTERN S16 cmUnpkTknStrS  ARGS((TknStrS  *tknStr,   Buffer *mBuf));
1683 EXTERN S16 cmUnpkTknStrE  ARGS((TknStrE  *tknStr,   Buffer *mBuf));
1684
1685 EXTERN S16 cmUnpkTknStr4   ARGS((TknStr4   *tknStr,   Buffer *mBuf));
1686 EXTERN S16 cmUnpkTknStr12  ARGS((TknStr12  *tknStr,   Buffer *mBuf));
1687 EXTERN S16 cmUnpkTknStr32  ARGS((TknStr32  *tknStr,   Buffer *mBuf));
1688 EXTERN S16 cmUnpkTknStr64  ARGS((TknStr64  *tknStr,   Buffer *mBuf));
1689 EXTERN S16 cmUnpkTknStr132 ARGS((TknStr132 *tknStr,   Buffer *mBuf));
1690 EXTERN S16 cmUnpkTknStr256 ARGS((TknStr256 *tknStr,   Buffer *mBuf));
1691
1692 PUBLIC  S16  cmUnpkTknS32  ARGS((TknS32 *tknS32, Buffer *mBuf));
1693 PUBLIC  S16  cmUnpkTknOid  ARGS((TknOid *tknOid, Buffer *mBuf));
1694 PUBLIC  S16  cmUnpkTknBuf  ARGS((TknBuf *tknBuf, Buffer **mBuf));
1695
1696 #ifdef TDS_ROLL_UPGRADE_SUPPORT
1697 PUBLIC  S16  cmUnpkIntf    ARGS((CmIntf *intf, Buffer *mBuf));
1698 #endif
1699
1700 /* layer management structures */
1701 EXTERN S16 cmUnpkHeader   ARGS((Header   *header,   Buffer *mBuf));
1702 EXTERN S16 cmUnpkSmCfg    ARGS((SmCfg    *smCfg,    Buffer *mBuf));
1703 EXTERN S16 cmUnpkTmrCfg   ARGS((TmrCfg   *tmrCfg,   Buffer *mBuf));
1704 EXTERN S16 cmUnpkCmStatus ARGS((CmStatus *status,   Buffer *mBuf));
1705 EXTERN S16 cmUnpkCmAlarm  ARGS((CmAlarm  *alrm,     Buffer *mBuf));
1706
1707 #endif /* CMFILE_REORG_1 */
1708 #ifdef XEON_SPECIFIC_CHANGES
1709 void * mtGetWlsHdl();
1710 #endif
1711
1712 #ifdef __cplusplus
1713 }
1714 #endif /* __cplusplus */
1715 #endif /* __GENX__ */
1716
1717 \f  
1718 /********************************************************************30**
1719   
1720          End of file
1721 **********************************************************************/