root/net/netfilter/nf_conntrack_h323_types.c

/* [<][>][^][v][top][bottom][index][help] */
   1 // SPDX-License-Identifier: GPL-2.0-only
   2 /* Generated by Jing Min Zhao's ASN.1 parser, May 16 2007
   3  *
   4  * Copyright (c) 2006 Jing Min Zhao <zhaojingmin@users.sourceforge.net>
   5  */
   6 
   7 static const struct field_t _TransportAddress_ipAddress[] = {   /* SEQUENCE */
   8         {FNAME("ip") OCTSTR, FIXD, 4, 0, DECODE,
   9          offsetof(TransportAddress_ipAddress, ip), NULL},
  10         {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
  11 };
  12 
  13 static const struct field_t _TransportAddress_ipSourceRoute_route[] = { /* SEQUENCE OF */
  14         {FNAME("item") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
  15 };
  16 
  17 static const struct field_t _TransportAddress_ipSourceRoute_routing[] = {       /* CHOICE */
  18         {FNAME("strict") NUL, FIXD, 0, 0, SKIP, 0, NULL},
  19         {FNAME("loose") NUL, FIXD, 0, 0, SKIP, 0, NULL},
  20 };
  21 
  22 static const struct field_t _TransportAddress_ipSourceRoute[] = {       /* SEQUENCE */
  23         {FNAME("ip") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
  24         {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
  25         {FNAME("route") SEQOF, SEMI, 0, 0, SKIP, 0,
  26          _TransportAddress_ipSourceRoute_route},
  27         {FNAME("routing") CHOICE, 1, 2, 2, SKIP | EXT, 0,
  28          _TransportAddress_ipSourceRoute_routing},
  29 };
  30 
  31 static const struct field_t _TransportAddress_ipxAddress[] = {  /* SEQUENCE */
  32         {FNAME("node") OCTSTR, FIXD, 6, 0, SKIP, 0, NULL},
  33         {FNAME("netnum") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
  34         {FNAME("port") OCTSTR, FIXD, 2, 0, SKIP, 0, NULL},
  35 };
  36 
  37 static const struct field_t _TransportAddress_ip6Address[] = {  /* SEQUENCE */
  38         {FNAME("ip") OCTSTR, FIXD, 16, 0, DECODE,
  39          offsetof(TransportAddress_ip6Address, ip), NULL},
  40         {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
  41 };
  42 
  43 static const struct field_t _H221NonStandard[] = {      /* SEQUENCE */
  44         {FNAME("t35CountryCode") INT, BYTE, 0, 0, SKIP, 0, NULL},
  45         {FNAME("t35Extension") INT, BYTE, 0, 0, SKIP, 0, NULL},
  46         {FNAME("manufacturerCode") INT, WORD, 0, 0, SKIP, 0, NULL},
  47 };
  48 
  49 static const struct field_t _NonStandardIdentifier[] = {        /* CHOICE */
  50         {FNAME("object") OID, BYTE, 0, 0, SKIP, 0, NULL},
  51         {FNAME("h221NonStandard") SEQ, 0, 3, 3, SKIP | EXT, 0,
  52          _H221NonStandard},
  53 };
  54 
  55 static const struct field_t _NonStandardParameter[] = { /* SEQUENCE */
  56         {FNAME("nonStandardIdentifier") CHOICE, 1, 2, 2, SKIP | EXT, 0,
  57          _NonStandardIdentifier},
  58         {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
  59 };
  60 
  61 static const struct field_t _TransportAddress[] = {     /* CHOICE */
  62         {FNAME("ipAddress") SEQ, 0, 2, 2, DECODE,
  63          offsetof(TransportAddress, ipAddress), _TransportAddress_ipAddress},
  64         {FNAME("ipSourceRoute") SEQ, 0, 4, 4, SKIP | EXT, 0,
  65          _TransportAddress_ipSourceRoute},
  66         {FNAME("ipxAddress") SEQ, 0, 3, 3, SKIP, 0,
  67          _TransportAddress_ipxAddress},
  68         {FNAME("ip6Address") SEQ, 0, 2, 2, DECODE | EXT,
  69          offsetof(TransportAddress, ip6Address),
  70          _TransportAddress_ip6Address},
  71         {FNAME("netBios") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
  72         {FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
  73         {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0,
  74          _NonStandardParameter},
  75 };
  76 
  77 static const struct field_t _AliasAddress[] = { /* CHOICE */
  78         {FNAME("dialedDigits") NUMDGT, 7, 1, 0, SKIP, 0, NULL},
  79         {FNAME("h323-ID") BMPSTR, BYTE, 1, 0, SKIP, 0, NULL},
  80         {FNAME("url-ID") IA5STR, WORD, 1, 0, SKIP, 0, NULL},
  81         {FNAME("transportID") CHOICE, 3, 7, 7, SKIP | EXT, 0, NULL},
  82         {FNAME("email-ID") IA5STR, WORD, 1, 0, SKIP, 0, NULL},
  83         {FNAME("partyNumber") CHOICE, 3, 5, 5, SKIP | EXT, 0, NULL},
  84         {FNAME("mobileUIM") CHOICE, 1, 2, 2, SKIP | EXT, 0, NULL},
  85 };
  86 
  87 static const struct field_t _Setup_UUIE_sourceAddress[] = {     /* SEQUENCE OF */
  88         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
  89 };
  90 
  91 static const struct field_t _VendorIdentifier[] = {     /* SEQUENCE */
  92         {FNAME("vendor") SEQ, 0, 3, 3, SKIP | EXT, 0, _H221NonStandard},
  93         {FNAME("productId") OCTSTR, BYTE, 1, 0, SKIP | OPT, 0, NULL},
  94         {FNAME("versionId") OCTSTR, BYTE, 1, 0, SKIP | OPT, 0, NULL},
  95 };
  96 
  97 static const struct field_t _GatekeeperInfo[] = {       /* SEQUENCE */
  98         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
  99          _NonStandardParameter},
 100 };
 101 
 102 static const struct field_t _H310Caps[] = {     /* SEQUENCE */
 103         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 104          _NonStandardParameter},
 105         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 106         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
 107 };
 108 
 109 static const struct field_t _H320Caps[] = {     /* SEQUENCE */
 110         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 111          _NonStandardParameter},
 112         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 113         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
 114 };
 115 
 116 static const struct field_t _H321Caps[] = {     /* SEQUENCE */
 117         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 118          _NonStandardParameter},
 119         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 120         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
 121 };
 122 
 123 static const struct field_t _H322Caps[] = {     /* SEQUENCE */
 124         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 125          _NonStandardParameter},
 126         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 127         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
 128 };
 129 
 130 static const struct field_t _H323Caps[] = {     /* SEQUENCE */
 131         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 132          _NonStandardParameter},
 133         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 134         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
 135 };
 136 
 137 static const struct field_t _H324Caps[] = {     /* SEQUENCE */
 138         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 139          _NonStandardParameter},
 140         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 141         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
 142 };
 143 
 144 static const struct field_t _VoiceCaps[] = {    /* SEQUENCE */
 145         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 146          _NonStandardParameter},
 147         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 148         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
 149 };
 150 
 151 static const struct field_t _T120OnlyCaps[] = { /* SEQUENCE */
 152         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 153          _NonStandardParameter},
 154         {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 155         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
 156 };
 157 
 158 static const struct field_t _SupportedProtocols[] = {   /* CHOICE */
 159         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP, 0,
 160          _NonStandardParameter},
 161         {FNAME("h310") SEQ, 1, 1, 3, SKIP | EXT, 0, _H310Caps},
 162         {FNAME("h320") SEQ, 1, 1, 3, SKIP | EXT, 0, _H320Caps},
 163         {FNAME("h321") SEQ, 1, 1, 3, SKIP | EXT, 0, _H321Caps},
 164         {FNAME("h322") SEQ, 1, 1, 3, SKIP | EXT, 0, _H322Caps},
 165         {FNAME("h323") SEQ, 1, 1, 3, SKIP | EXT, 0, _H323Caps},
 166         {FNAME("h324") SEQ, 1, 1, 3, SKIP | EXT, 0, _H324Caps},
 167         {FNAME("voice") SEQ, 1, 1, 3, SKIP | EXT, 0, _VoiceCaps},
 168         {FNAME("t120-only") SEQ, 1, 1, 3, SKIP | EXT, 0, _T120OnlyCaps},
 169         {FNAME("nonStandardProtocol") SEQ, 2, 3, 3, SKIP | EXT, 0, NULL},
 170         {FNAME("t38FaxAnnexbOnly") SEQ, 2, 5, 5, SKIP | EXT, 0, NULL},
 171 };
 172 
 173 static const struct field_t _GatewayInfo_protocol[] = { /* SEQUENCE OF */
 174         {FNAME("item") CHOICE, 4, 9, 11, SKIP | EXT, 0, _SupportedProtocols},
 175 };
 176 
 177 static const struct field_t _GatewayInfo[] = {  /* SEQUENCE */
 178         {FNAME("protocol") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
 179          _GatewayInfo_protocol},
 180         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 181          _NonStandardParameter},
 182 };
 183 
 184 static const struct field_t _McuInfo[] = {      /* SEQUENCE */
 185         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 186          _NonStandardParameter},
 187         {FNAME("protocol") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 188 };
 189 
 190 static const struct field_t _TerminalInfo[] = { /* SEQUENCE */
 191         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 192          _NonStandardParameter},
 193 };
 194 
 195 static const struct field_t _EndpointType[] = { /* SEQUENCE */
 196         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
 197          _NonStandardParameter},
 198         {FNAME("vendor") SEQ, 2, 3, 3, SKIP | EXT | OPT, 0,
 199          _VendorIdentifier},
 200         {FNAME("gatekeeper") SEQ, 1, 1, 1, SKIP | EXT | OPT, 0,
 201          _GatekeeperInfo},
 202         {FNAME("gateway") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, _GatewayInfo},
 203         {FNAME("mcu") SEQ, 1, 1, 2, SKIP | EXT | OPT, 0, _McuInfo},
 204         {FNAME("terminal") SEQ, 1, 1, 1, SKIP | EXT | OPT, 0, _TerminalInfo},
 205         {FNAME("mc") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 206         {FNAME("undefinedNode") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 207         {FNAME("set") BITSTR, FIXD, 32, 0, SKIP | OPT, 0, NULL},
 208         {FNAME("supportedTunnelledProtocols") SEQOF, SEMI, 0, 0, SKIP | OPT,
 209          0, NULL},
 210 };
 211 
 212 static const struct field_t _Setup_UUIE_destinationAddress[] = {        /* SEQUENCE OF */
 213         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
 214 };
 215 
 216 static const struct field_t _Setup_UUIE_destExtraCallInfo[] = { /* SEQUENCE OF */
 217         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
 218 };
 219 
 220 static const struct field_t _Setup_UUIE_destExtraCRV[] = {      /* SEQUENCE OF */
 221         {FNAME("item") INT, WORD, 0, 0, SKIP, 0, NULL},
 222 };
 223 
 224 static const struct field_t _Setup_UUIE_conferenceGoal[] = {    /* CHOICE */
 225         {FNAME("create") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 226         {FNAME("join") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 227         {FNAME("invite") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 228         {FNAME("capability-negotiation") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 229         {FNAME("callIndependentSupplementaryService") NUL, FIXD, 0, 0, SKIP,
 230          0, NULL},
 231 };
 232 
 233 static const struct field_t _Q954Details[] = {  /* SEQUENCE */
 234         {FNAME("conferenceCalling") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 235         {FNAME("threePartyService") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 236 };
 237 
 238 static const struct field_t _QseriesOptions[] = {       /* SEQUENCE */
 239         {FNAME("q932Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 240         {FNAME("q951Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 241         {FNAME("q952Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 242         {FNAME("q953Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 243         {FNAME("q955Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 244         {FNAME("q956Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 245         {FNAME("q957Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 246         {FNAME("q954Info") SEQ, 0, 2, 2, SKIP | EXT, 0, _Q954Details},
 247 };
 248 
 249 static const struct field_t _CallType[] = {     /* CHOICE */
 250         {FNAME("pointToPoint") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 251         {FNAME("oneToN") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 252         {FNAME("nToOne") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 253         {FNAME("nToN") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 254 };
 255 
 256 static const struct field_t _H245_NonStandardIdentifier_h221NonStandard[] = {   /* SEQUENCE */
 257         {FNAME("t35CountryCode") INT, BYTE, 0, 0, SKIP, 0, NULL},
 258         {FNAME("t35Extension") INT, BYTE, 0, 0, SKIP, 0, NULL},
 259         {FNAME("manufacturerCode") INT, WORD, 0, 0, SKIP, 0, NULL},
 260 };
 261 
 262 static const struct field_t _H245_NonStandardIdentifier[] = {   /* CHOICE */
 263         {FNAME("object") OID, BYTE, 0, 0, SKIP, 0, NULL},
 264         {FNAME("h221NonStandard") SEQ, 0, 3, 3, SKIP, 0,
 265          _H245_NonStandardIdentifier_h221NonStandard},
 266 };
 267 
 268 static const struct field_t _H245_NonStandardParameter[] = {    /* SEQUENCE */
 269         {FNAME("nonStandardIdentifier") CHOICE, 1, 2, 2, SKIP, 0,
 270          _H245_NonStandardIdentifier},
 271         {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
 272 };
 273 
 274 static const struct field_t _H261VideoCapability[] = {  /* SEQUENCE */
 275         {FNAME("qcifMPI") INT, 2, 1, 0, SKIP | OPT, 0, NULL},
 276         {FNAME("cifMPI") INT, 2, 1, 0, SKIP | OPT, 0, NULL},
 277         {FNAME("temporalSpatialTradeOffCapability") BOOL, FIXD, 0, 0, SKIP, 0,
 278          NULL},
 279         {FNAME("maxBitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
 280         {FNAME("stillImageTransmission") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 281         {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 282 };
 283 
 284 static const struct field_t _H262VideoCapability[] = {  /* SEQUENCE */
 285         {FNAME("profileAndLevel-SPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 286         {FNAME("profileAndLevel-MPatLL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 287         {FNAME("profileAndLevel-MPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 288         {FNAME("profileAndLevel-MPatH-14") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 289         {FNAME("profileAndLevel-MPatHL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 290         {FNAME("profileAndLevel-SNRatLL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 291         {FNAME("profileAndLevel-SNRatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 292         {FNAME("profileAndLevel-SpatialatH-14") BOOL, FIXD, 0, 0, SKIP, 0,
 293          NULL},
 294         {FNAME("profileAndLevel-HPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 295         {FNAME("profileAndLevel-HPatH-14") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 296         {FNAME("profileAndLevel-HPatHL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 297         {FNAME("videoBitRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
 298         {FNAME("vbvBufferSize") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
 299         {FNAME("samplesPerLine") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
 300         {FNAME("linesPerFrame") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
 301         {FNAME("framesPerSecond") INT, 4, 0, 0, SKIP | OPT, 0, NULL},
 302         {FNAME("luminanceSampleRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
 303         {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 304 };
 305 
 306 static const struct field_t _H263VideoCapability[] = {  /* SEQUENCE */
 307         {FNAME("sqcifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
 308         {FNAME("qcifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
 309         {FNAME("cifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
 310         {FNAME("cif4MPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
 311         {FNAME("cif16MPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
 312         {FNAME("maxBitRate") INT, CONS, 1, 0, SKIP, 0, NULL},
 313         {FNAME("unrestrictedVector") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 314         {FNAME("arithmeticCoding") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 315         {FNAME("advancedPrediction") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 316         {FNAME("pbFrames") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 317         {FNAME("temporalSpatialTradeOffCapability") BOOL, FIXD, 0, 0, SKIP, 0,
 318          NULL},
 319         {FNAME("hrd-B") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
 320         {FNAME("bppMaxKb") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
 321         {FNAME("slowSqcifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
 322         {FNAME("slowQcifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
 323         {FNAME("slowCifMPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
 324         {FNAME("slowCif4MPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
 325         {FNAME("slowCif16MPI") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
 326         {FNAME("errorCompensation") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 327         {FNAME("enhancementLayerInfo") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0,
 328          NULL},
 329         {FNAME("h263Options") SEQ, 5, 29, 31, SKIP | EXT | OPT, 0, NULL},
 330 };
 331 
 332 static const struct field_t _IS11172VideoCapability[] = {       /* SEQUENCE */
 333         {FNAME("constrainedBitstream") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 334         {FNAME("videoBitRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
 335         {FNAME("vbvBufferSize") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
 336         {FNAME("samplesPerLine") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
 337         {FNAME("linesPerFrame") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
 338         {FNAME("pictureRate") INT, 4, 0, 0, SKIP | OPT, 0, NULL},
 339         {FNAME("luminanceSampleRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
 340         {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 341 };
 342 
 343 static const struct field_t _VideoCapability[] = {      /* CHOICE */
 344         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
 345          _H245_NonStandardParameter},
 346         {FNAME("h261VideoCapability") SEQ, 2, 5, 6, SKIP | EXT, 0,
 347          _H261VideoCapability},
 348         {FNAME("h262VideoCapability") SEQ, 6, 17, 18, SKIP | EXT, 0,
 349          _H262VideoCapability},
 350         {FNAME("h263VideoCapability") SEQ, 7, 13, 21, SKIP | EXT, 0,
 351          _H263VideoCapability},
 352         {FNAME("is11172VideoCapability") SEQ, 6, 7, 8, SKIP | EXT, 0,
 353          _IS11172VideoCapability},
 354         {FNAME("genericVideoCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
 355 };
 356 
 357 static const struct field_t _AudioCapability_g7231[] = {        /* SEQUENCE */
 358         {FNAME("maxAl-sduAudioFrames") INT, BYTE, 1, 0, SKIP, 0, NULL},
 359         {FNAME("silenceSuppression") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 360 };
 361 
 362 static const struct field_t _IS11172AudioCapability[] = {       /* SEQUENCE */
 363         {FNAME("audioLayer1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 364         {FNAME("audioLayer2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 365         {FNAME("audioLayer3") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 366         {FNAME("audioSampling32k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 367         {FNAME("audioSampling44k1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 368         {FNAME("audioSampling48k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 369         {FNAME("singleChannel") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 370         {FNAME("twoChannels") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 371         {FNAME("bitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
 372 };
 373 
 374 static const struct field_t _IS13818AudioCapability[] = {       /* SEQUENCE */
 375         {FNAME("audioLayer1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 376         {FNAME("audioLayer2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 377         {FNAME("audioLayer3") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 378         {FNAME("audioSampling16k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 379         {FNAME("audioSampling22k05") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 380         {FNAME("audioSampling24k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 381         {FNAME("audioSampling32k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 382         {FNAME("audioSampling44k1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 383         {FNAME("audioSampling48k") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 384         {FNAME("singleChannel") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 385         {FNAME("twoChannels") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 386         {FNAME("threeChannels2-1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 387         {FNAME("threeChannels3-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 388         {FNAME("fourChannels2-0-2-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 389         {FNAME("fourChannels2-2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 390         {FNAME("fourChannels3-1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 391         {FNAME("fiveChannels3-0-2-0") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 392         {FNAME("fiveChannels3-2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 393         {FNAME("lowFrequencyEnhancement") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 394         {FNAME("multilingual") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 395         {FNAME("bitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
 396 };
 397 
 398 static const struct field_t _AudioCapability[] = {      /* CHOICE */
 399         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
 400          _H245_NonStandardParameter},
 401         {FNAME("g711Alaw64k") INT, BYTE, 1, 0, SKIP, 0, NULL},
 402         {FNAME("g711Alaw56k") INT, BYTE, 1, 0, SKIP, 0, NULL},
 403         {FNAME("g711Ulaw64k") INT, BYTE, 1, 0, SKIP, 0, NULL},
 404         {FNAME("g711Ulaw56k") INT, BYTE, 1, 0, SKIP, 0, NULL},
 405         {FNAME("g722-64k") INT, BYTE, 1, 0, SKIP, 0, NULL},
 406         {FNAME("g722-56k") INT, BYTE, 1, 0, SKIP, 0, NULL},
 407         {FNAME("g722-48k") INT, BYTE, 1, 0, SKIP, 0, NULL},
 408         {FNAME("g7231") SEQ, 0, 2, 2, SKIP, 0, _AudioCapability_g7231},
 409         {FNAME("g728") INT, BYTE, 1, 0, SKIP, 0, NULL},
 410         {FNAME("g729") INT, BYTE, 1, 0, SKIP, 0, NULL},
 411         {FNAME("g729AnnexA") INT, BYTE, 1, 0, SKIP, 0, NULL},
 412         {FNAME("is11172AudioCapability") SEQ, 0, 9, 9, SKIP | EXT, 0,
 413          _IS11172AudioCapability},
 414         {FNAME("is13818AudioCapability") SEQ, 0, 21, 21, SKIP | EXT, 0,
 415          _IS13818AudioCapability},
 416         {FNAME("g729wAnnexB") INT, BYTE, 1, 0, SKIP, 0, NULL},
 417         {FNAME("g729AnnexAwAnnexB") INT, BYTE, 1, 0, SKIP, 0, NULL},
 418         {FNAME("g7231AnnexCCapability") SEQ, 1, 3, 3, SKIP | EXT, 0, NULL},
 419         {FNAME("gsmFullRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL},
 420         {FNAME("gsmHalfRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL},
 421         {FNAME("gsmEnhancedFullRate") SEQ, 0, 3, 3, SKIP | EXT, 0, NULL},
 422         {FNAME("genericAudioCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
 423         {FNAME("g729Extensions") SEQ, 1, 8, 8, SKIP | EXT, 0, NULL},
 424 };
 425 
 426 static const struct field_t _DataProtocolCapability[] = {       /* CHOICE */
 427         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
 428          _H245_NonStandardParameter},
 429         {FNAME("v14buffered") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 430         {FNAME("v42lapm") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 431         {FNAME("hdlcFrameTunnelling") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 432         {FNAME("h310SeparateVCStack") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 433         {FNAME("h310SingleVCStack") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 434         {FNAME("transparent") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 435         {FNAME("segmentationAndReassembly") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 436         {FNAME("hdlcFrameTunnelingwSAR") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 437         {FNAME("v120") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 438         {FNAME("separateLANStack") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 439         {FNAME("v76wCompression") CHOICE, 2, 3, 3, SKIP | EXT, 0, NULL},
 440         {FNAME("tcp") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 441         {FNAME("udp") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 442 };
 443 
 444 static const struct field_t _T84Profile_t84Restricted[] = {     /* SEQUENCE */
 445         {FNAME("qcif") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 446         {FNAME("cif") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 447         {FNAME("ccir601Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 448         {FNAME("ccir601Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 449         {FNAME("hdtvSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 450         {FNAME("hdtvProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 451         {FNAME("g3FacsMH200x100") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 452         {FNAME("g3FacsMH200x200") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 453         {FNAME("g4FacsMMR200x100") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 454         {FNAME("g4FacsMMR200x200") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 455         {FNAME("jbig200x200Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 456         {FNAME("jbig200x200Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 457         {FNAME("jbig300x300Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 458         {FNAME("jbig300x300Prog") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 459         {FNAME("digPhotoLow") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 460         {FNAME("digPhotoMedSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 461         {FNAME("digPhotoMedProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 462         {FNAME("digPhotoHighSeq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 463         {FNAME("digPhotoHighProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 464 };
 465 
 466 static const struct field_t _T84Profile[] = {   /* CHOICE */
 467         {FNAME("t84Unrestricted") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 468         {FNAME("t84Restricted") SEQ, 0, 19, 19, SKIP | EXT, 0,
 469          _T84Profile_t84Restricted},
 470 };
 471 
 472 static const struct field_t _DataApplicationCapability_application_t84[] = {    /* SEQUENCE */
 473         {FNAME("t84Protocol") CHOICE, 3, 7, 14, SKIP | EXT, 0,
 474          _DataProtocolCapability},
 475         {FNAME("t84Profile") CHOICE, 1, 2, 2, SKIP, 0, _T84Profile},
 476 };
 477 
 478 static const struct field_t _DataApplicationCapability_application_nlpid[] = {  /* SEQUENCE */
 479         {FNAME("nlpidProtocol") CHOICE, 3, 7, 14, SKIP | EXT, 0,
 480          _DataProtocolCapability},
 481         {FNAME("nlpidData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
 482 };
 483 
 484 static const struct field_t _DataApplicationCapability_application[] = {        /* CHOICE */
 485         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
 486          _H245_NonStandardParameter},
 487         {FNAME("t120") CHOICE, 3, 7, 14, DECODE | EXT,
 488          offsetof(DataApplicationCapability_application, t120),
 489          _DataProtocolCapability},
 490         {FNAME("dsm-cc") CHOICE, 3, 7, 14, SKIP | EXT, 0,
 491          _DataProtocolCapability},
 492         {FNAME("userData") CHOICE, 3, 7, 14, SKIP | EXT, 0,
 493          _DataProtocolCapability},
 494         {FNAME("t84") SEQ, 0, 2, 2, SKIP, 0,
 495          _DataApplicationCapability_application_t84},
 496         {FNAME("t434") CHOICE, 3, 7, 14, SKIP | EXT, 0,
 497          _DataProtocolCapability},
 498         {FNAME("h224") CHOICE, 3, 7, 14, SKIP | EXT, 0,
 499          _DataProtocolCapability},
 500         {FNAME("nlpid") SEQ, 0, 2, 2, SKIP, 0,
 501          _DataApplicationCapability_application_nlpid},
 502         {FNAME("dsvdControl") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 503         {FNAME("h222DataPartitioning") CHOICE, 3, 7, 14, SKIP | EXT, 0,
 504          _DataProtocolCapability},
 505         {FNAME("t30fax") CHOICE, 3, 7, 14, SKIP | EXT, 0, NULL},
 506         {FNAME("t140") CHOICE, 3, 7, 14, SKIP | EXT, 0, NULL},
 507         {FNAME("t38fax") SEQ, 0, 2, 2, SKIP, 0, NULL},
 508         {FNAME("genericDataCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
 509 };
 510 
 511 static const struct field_t _DataApplicationCapability[] = {    /* SEQUENCE */
 512         {FNAME("application") CHOICE, 4, 10, 14, DECODE | EXT,
 513          offsetof(DataApplicationCapability, application),
 514          _DataApplicationCapability_application},
 515         {FNAME("maxBitRate") INT, CONS, 0, 0, SKIP, 0, NULL},
 516 };
 517 
 518 static const struct field_t _EncryptionMode[] = {       /* CHOICE */
 519         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
 520          _H245_NonStandardParameter},
 521         {FNAME("h233Encryption") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 522 };
 523 
 524 static const struct field_t _DataType[] = {     /* CHOICE */
 525         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
 526          _H245_NonStandardParameter},
 527         {FNAME("nullData") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 528         {FNAME("videoData") CHOICE, 3, 5, 6, SKIP | EXT, 0, _VideoCapability},
 529         {FNAME("audioData") CHOICE, 4, 14, 22, SKIP | EXT, 0,
 530          _AudioCapability},
 531         {FNAME("data") SEQ, 0, 2, 2, DECODE | EXT, offsetof(DataType, data),
 532          _DataApplicationCapability},
 533         {FNAME("encryptionData") CHOICE, 1, 2, 2, SKIP | EXT, 0,
 534          _EncryptionMode},
 535         {FNAME("h235Control") SEQ, 0, 2, 2, SKIP, 0, NULL},
 536         {FNAME("h235Media") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL},
 537         {FNAME("multiplexedStream") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL},
 538 };
 539 
 540 static const struct field_t _H222LogicalChannelParameters[] = { /* SEQUENCE */
 541         {FNAME("resourceID") INT, WORD, 0, 0, SKIP, 0, NULL},
 542         {FNAME("subChannelID") INT, WORD, 0, 0, SKIP, 0, NULL},
 543         {FNAME("pcr-pid") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
 544         {FNAME("programDescriptors") OCTSTR, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 545         {FNAME("streamDescriptors") OCTSTR, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 546 };
 547 
 548 static const struct field_t _H223LogicalChannelParameters_adaptationLayerType_al3[] = { /* SEQUENCE */
 549         {FNAME("controlFieldOctets") INT, 2, 0, 0, SKIP, 0, NULL},
 550         {FNAME("sendBufferSize") INT, CONS, 0, 0, SKIP, 0, NULL},
 551 };
 552 
 553 static const struct field_t _H223LogicalChannelParameters_adaptationLayerType[] = {     /* CHOICE */
 554         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
 555          _H245_NonStandardParameter},
 556         {FNAME("al1Framed") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 557         {FNAME("al1NotFramed") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 558         {FNAME("al2WithoutSequenceNumbers") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 559         {FNAME("al2WithSequenceNumbers") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 560         {FNAME("al3") SEQ, 0, 2, 2, SKIP, 0,
 561          _H223LogicalChannelParameters_adaptationLayerType_al3},
 562         {FNAME("al1M") SEQ, 0, 7, 8, SKIP | EXT, 0, NULL},
 563         {FNAME("al2M") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL},
 564         {FNAME("al3M") SEQ, 0, 5, 6, SKIP | EXT, 0, NULL},
 565 };
 566 
 567 static const struct field_t _H223LogicalChannelParameters[] = { /* SEQUENCE */
 568         {FNAME("adaptationLayerType") CHOICE, 3, 6, 9, SKIP | EXT, 0,
 569          _H223LogicalChannelParameters_adaptationLayerType},
 570         {FNAME("segmentableFlag") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 571 };
 572 
 573 static const struct field_t _CRCLength[] = {    /* CHOICE */
 574         {FNAME("crc8bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 575         {FNAME("crc16bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 576         {FNAME("crc32bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 577 };
 578 
 579 static const struct field_t _V76HDLCParameters[] = {    /* SEQUENCE */
 580         {FNAME("crcLength") CHOICE, 2, 3, 3, SKIP | EXT, 0, _CRCLength},
 581         {FNAME("n401") INT, WORD, 1, 0, SKIP, 0, NULL},
 582         {FNAME("loopbackTestProcedure") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 583 };
 584 
 585 static const struct field_t _V76LogicalChannelParameters_suspendResume[] = {    /* CHOICE */
 586         {FNAME("noSuspendResume") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 587         {FNAME("suspendResumewAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 588         {FNAME("suspendResumewoAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 589 };
 590 
 591 static const struct field_t _V76LogicalChannelParameters_mode_eRM_recovery[] = {        /* CHOICE */
 592         {FNAME("rej") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 593         {FNAME("sREJ") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 594         {FNAME("mSREJ") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 595 };
 596 
 597 static const struct field_t _V76LogicalChannelParameters_mode_eRM[] = { /* SEQUENCE */
 598         {FNAME("windowSize") INT, 7, 1, 0, SKIP, 0, NULL},
 599         {FNAME("recovery") CHOICE, 2, 3, 3, SKIP | EXT, 0,
 600          _V76LogicalChannelParameters_mode_eRM_recovery},
 601 };
 602 
 603 static const struct field_t _V76LogicalChannelParameters_mode[] = {     /* CHOICE */
 604         {FNAME("eRM") SEQ, 0, 2, 2, SKIP | EXT, 0,
 605          _V76LogicalChannelParameters_mode_eRM},
 606         {FNAME("uNERM") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 607 };
 608 
 609 static const struct field_t _V75Parameters[] = {        /* SEQUENCE */
 610         {FNAME("audioHeaderPresent") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 611 };
 612 
 613 static const struct field_t _V76LogicalChannelParameters[] = {  /* SEQUENCE */
 614         {FNAME("hdlcParameters") SEQ, 0, 3, 3, SKIP | EXT, 0,
 615          _V76HDLCParameters},
 616         {FNAME("suspendResume") CHOICE, 2, 3, 3, SKIP | EXT, 0,
 617          _V76LogicalChannelParameters_suspendResume},
 618         {FNAME("uIH") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 619         {FNAME("mode") CHOICE, 1, 2, 2, SKIP | EXT, 0,
 620          _V76LogicalChannelParameters_mode},
 621         {FNAME("v75Parameters") SEQ, 0, 1, 1, SKIP | EXT, 0, _V75Parameters},
 622 };
 623 
 624 static const struct field_t _H2250LogicalChannelParameters_nonStandard[] = {    /* SEQUENCE OF */
 625         {FNAME("item") SEQ, 0, 2, 2, SKIP, 0, _H245_NonStandardParameter},
 626 };
 627 
 628 static const struct field_t _UnicastAddress_iPAddress[] = {     /* SEQUENCE */
 629         {FNAME("network") OCTSTR, FIXD, 4, 0, DECODE,
 630          offsetof(UnicastAddress_iPAddress, network), NULL},
 631         {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
 632 };
 633 
 634 static const struct field_t _UnicastAddress_iPXAddress[] = {    /* SEQUENCE */
 635         {FNAME("node") OCTSTR, FIXD, 6, 0, SKIP, 0, NULL},
 636         {FNAME("netnum") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
 637         {FNAME("tsapIdentifier") OCTSTR, FIXD, 2, 0, SKIP, 0, NULL},
 638 };
 639 
 640 static const struct field_t _UnicastAddress_iP6Address[] = {    /* SEQUENCE */
 641         {FNAME("network") OCTSTR, FIXD, 16, 0, DECODE,
 642          offsetof(UnicastAddress_iP6Address, network), NULL},
 643         {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
 644 };
 645 
 646 static const struct field_t _UnicastAddress_iPSourceRouteAddress_routing[] = {  /* CHOICE */
 647         {FNAME("strict") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 648         {FNAME("loose") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 649 };
 650 
 651 static const struct field_t _UnicastAddress_iPSourceRouteAddress_route[] = {    /* SEQUENCE OF */
 652         {FNAME("item") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
 653 };
 654 
 655 static const struct field_t _UnicastAddress_iPSourceRouteAddress[] = {  /* SEQUENCE */
 656         {FNAME("routing") CHOICE, 1, 2, 2, SKIP, 0,
 657          _UnicastAddress_iPSourceRouteAddress_routing},
 658         {FNAME("network") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
 659         {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
 660         {FNAME("route") SEQOF, SEMI, 0, 0, SKIP, 0,
 661          _UnicastAddress_iPSourceRouteAddress_route},
 662 };
 663 
 664 static const struct field_t _UnicastAddress[] = {       /* CHOICE */
 665         {FNAME("iPAddress") SEQ, 0, 2, 2, DECODE | EXT,
 666          offsetof(UnicastAddress, iPAddress), _UnicastAddress_iPAddress},
 667         {FNAME("iPXAddress") SEQ, 0, 3, 3, SKIP | EXT, 0,
 668          _UnicastAddress_iPXAddress},
 669         {FNAME("iP6Address") SEQ, 0, 2, 2, DECODE | EXT,
 670          offsetof(UnicastAddress, iP6Address), _UnicastAddress_iP6Address},
 671         {FNAME("netBios") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
 672         {FNAME("iPSourceRouteAddress") SEQ, 0, 4, 4, SKIP | EXT, 0,
 673          _UnicastAddress_iPSourceRouteAddress},
 674         {FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
 675         {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, NULL},
 676 };
 677 
 678 static const struct field_t _MulticastAddress_iPAddress[] = {   /* SEQUENCE */
 679         {FNAME("network") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
 680         {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
 681 };
 682 
 683 static const struct field_t _MulticastAddress_iP6Address[] = {  /* SEQUENCE */
 684         {FNAME("network") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
 685         {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
 686 };
 687 
 688 static const struct field_t _MulticastAddress[] = {     /* CHOICE */
 689         {FNAME("iPAddress") SEQ, 0, 2, 2, SKIP | EXT, 0,
 690          _MulticastAddress_iPAddress},
 691         {FNAME("iP6Address") SEQ, 0, 2, 2, SKIP | EXT, 0,
 692          _MulticastAddress_iP6Address},
 693         {FNAME("nsap") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
 694         {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, NULL},
 695 };
 696 
 697 static const struct field_t _H245_TransportAddress[] = {        /* CHOICE */
 698         {FNAME("unicastAddress") CHOICE, 3, 5, 7, DECODE | EXT,
 699          offsetof(H245_TransportAddress, unicastAddress), _UnicastAddress},
 700         {FNAME("multicastAddress") CHOICE, 1, 2, 4, SKIP | EXT, 0,
 701          _MulticastAddress},
 702 };
 703 
 704 static const struct field_t _H2250LogicalChannelParameters[] = {        /* SEQUENCE */
 705         {FNAME("nonStandard") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
 706          _H2250LogicalChannelParameters_nonStandard},
 707         {FNAME("sessionID") INT, BYTE, 0, 0, SKIP, 0, NULL},
 708         {FNAME("associatedSessionID") INT, 8, 1, 0, SKIP | OPT, 0, NULL},
 709         {FNAME("mediaChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
 710          offsetof(H2250LogicalChannelParameters, mediaChannel),
 711          _H245_TransportAddress},
 712         {FNAME("mediaGuaranteedDelivery") BOOL, FIXD, 0, 0, SKIP | OPT, 0,
 713          NULL},
 714         {FNAME("mediaControlChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
 715          offsetof(H2250LogicalChannelParameters, mediaControlChannel),
 716          _H245_TransportAddress},
 717         {FNAME("mediaControlGuaranteedDelivery") BOOL, FIXD, 0, 0, STOP | OPT,
 718          0, NULL},
 719         {FNAME("silenceSuppression") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
 720         {FNAME("destination") SEQ, 0, 2, 2, STOP | EXT | OPT, 0, NULL},
 721         {FNAME("dynamicRTPPayloadType") INT, 5, 96, 0, STOP | OPT, 0, NULL},
 722         {FNAME("mediaPacketization") CHOICE, 0, 1, 2, STOP | EXT | OPT, 0,
 723          NULL},
 724         {FNAME("transportCapability") SEQ, 3, 3, 3, STOP | EXT | OPT, 0,
 725          NULL},
 726         {FNAME("redundancyEncoding") SEQ, 1, 2, 2, STOP | EXT | OPT, 0, NULL},
 727         {FNAME("source") SEQ, 0, 2, 2, SKIP | EXT | OPT, 0, NULL},
 728 };
 729 
 730 static const struct field_t _OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters[] = {       /* CHOICE */
 731         {FNAME("h222LogicalChannelParameters") SEQ, 3, 5, 5, SKIP | EXT, 0,
 732          _H222LogicalChannelParameters},
 733         {FNAME("h223LogicalChannelParameters") SEQ, 0, 2, 2, SKIP | EXT, 0,
 734          _H223LogicalChannelParameters},
 735         {FNAME("v76LogicalChannelParameters") SEQ, 0, 5, 5, SKIP | EXT, 0,
 736          _V76LogicalChannelParameters},
 737         {FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT,
 738          offsetof
 739          (OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters,
 740           h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
 741         {FNAME("none") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 742 };
 743 
 744 static const struct field_t _OpenLogicalChannel_forwardLogicalChannelParameters[] = {   /* SEQUENCE */
 745         {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
 746         {FNAME("dataType") CHOICE, 3, 6, 9, DECODE | EXT,
 747          offsetof(OpenLogicalChannel_forwardLogicalChannelParameters,
 748                   dataType), _DataType},
 749         {FNAME("multiplexParameters") CHOICE, 2, 3, 5, DECODE | EXT,
 750          offsetof(OpenLogicalChannel_forwardLogicalChannelParameters,
 751                   multiplexParameters),
 752          _OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters},
 753         {FNAME("forwardLogicalChannelDependency") INT, WORD, 1, 0, SKIP | OPT,
 754          0, NULL},
 755         {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
 756 };
 757 
 758 static const struct field_t _OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters[] = {       /* CHOICE */
 759         {FNAME("h223LogicalChannelParameters") SEQ, 0, 2, 2, SKIP | EXT, 0,
 760          _H223LogicalChannelParameters},
 761         {FNAME("v76LogicalChannelParameters") SEQ, 0, 5, 5, SKIP | EXT, 0,
 762          _V76LogicalChannelParameters},
 763         {FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT,
 764          offsetof
 765          (OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters,
 766           h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
 767 };
 768 
 769 static const struct field_t _OpenLogicalChannel_reverseLogicalChannelParameters[] = {   /* SEQUENCE */
 770         {FNAME("dataType") CHOICE, 3, 6, 9, SKIP | EXT, 0, _DataType},
 771         {FNAME("multiplexParameters") CHOICE, 1, 2, 3, DECODE | EXT | OPT,
 772          offsetof(OpenLogicalChannel_reverseLogicalChannelParameters,
 773                   multiplexParameters),
 774          _OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters},
 775         {FNAME("reverseLogicalChannelDependency") INT, WORD, 1, 0, SKIP | OPT,
 776          0, NULL},
 777         {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
 778 };
 779 
 780 static const struct field_t _NetworkAccessParameters_distribution[] = { /* CHOICE */
 781         {FNAME("unicast") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 782         {FNAME("multicast") NUL, FIXD, 0, 0, SKIP, 0, NULL},
 783 };
 784 
 785 static const struct field_t _Q2931Address_address[] = { /* CHOICE */
 786         {FNAME("internationalNumber") NUMSTR, 4, 1, 0, SKIP, 0, NULL},
 787         {FNAME("nsapAddress") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
 788 };
 789 
 790 static const struct field_t _Q2931Address[] = { /* SEQUENCE */
 791         {FNAME("address") CHOICE, 1, 2, 2, SKIP | EXT, 0,
 792          _Q2931Address_address},
 793         {FNAME("subaddress") OCTSTR, 5, 1, 0, SKIP | OPT, 0, NULL},
 794 };
 795 
 796 static const struct field_t _NetworkAccessParameters_networkAddress[] = {       /* CHOICE */
 797         {FNAME("q2931Address") SEQ, 1, 2, 2, SKIP | EXT, 0, _Q2931Address},
 798         {FNAME("e164Address") NUMDGT, 7, 1, 0, SKIP, 0, NULL},
 799         {FNAME("localAreaAddress") CHOICE, 1, 2, 2, DECODE | EXT,
 800          offsetof(NetworkAccessParameters_networkAddress, localAreaAddress),
 801          _H245_TransportAddress},
 802 };
 803 
 804 static const struct field_t _NetworkAccessParameters[] = {      /* SEQUENCE */
 805         {FNAME("distribution") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0,
 806          _NetworkAccessParameters_distribution},
 807         {FNAME("networkAddress") CHOICE, 2, 3, 3, DECODE | EXT,
 808          offsetof(NetworkAccessParameters, networkAddress),
 809          _NetworkAccessParameters_networkAddress},
 810         {FNAME("associateConference") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 811         {FNAME("externalReference") OCTSTR, 8, 1, 0, SKIP | OPT, 0, NULL},
 812         {FNAME("t120SetupProcedure") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
 813          NULL},
 814 };
 815 
 816 static const struct field_t _OpenLogicalChannel[] = {   /* SEQUENCE */
 817         {FNAME("forwardLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
 818         {FNAME("forwardLogicalChannelParameters") SEQ, 1, 3, 5, DECODE | EXT,
 819          offsetof(OpenLogicalChannel, forwardLogicalChannelParameters),
 820          _OpenLogicalChannel_forwardLogicalChannelParameters},
 821         {FNAME("reverseLogicalChannelParameters") SEQ, 1, 2, 4,
 822          DECODE | EXT | OPT, offsetof(OpenLogicalChannel,
 823                                       reverseLogicalChannelParameters),
 824          _OpenLogicalChannel_reverseLogicalChannelParameters},
 825         {FNAME("separateStack") SEQ, 2, 4, 5, DECODE | EXT | OPT,
 826          offsetof(OpenLogicalChannel, separateStack),
 827          _NetworkAccessParameters},
 828         {FNAME("encryptionSync") SEQ, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
 829 };
 830 
 831 static const struct field_t _Setup_UUIE_fastStart[] = { /* SEQUENCE OF */
 832         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
 833          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
 834         ,
 835 };
 836 
 837 static const struct field_t _Setup_UUIE[] = {   /* SEQUENCE */
 838         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
 839         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
 840          offsetof(Setup_UUIE, h245Address), _TransportAddress},
 841         {FNAME("sourceAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
 842          _Setup_UUIE_sourceAddress},
 843         {FNAME("sourceInfo") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType},
 844         {FNAME("destinationAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
 845          _Setup_UUIE_destinationAddress},
 846         {FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
 847          offsetof(Setup_UUIE, destCallSignalAddress), _TransportAddress},
 848         {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
 849          _Setup_UUIE_destExtraCallInfo},
 850         {FNAME("destExtraCRV") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
 851          _Setup_UUIE_destExtraCRV},
 852         {FNAME("activeMC") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 853         {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
 854         {FNAME("conferenceGoal") CHOICE, 2, 3, 5, SKIP | EXT, 0,
 855          _Setup_UUIE_conferenceGoal},
 856         {FNAME("callServices") SEQ, 0, 8, 8, SKIP | EXT | OPT, 0,
 857          _QseriesOptions},
 858         {FNAME("callType") CHOICE, 2, 4, 4, SKIP | EXT, 0, _CallType},
 859         {FNAME("sourceCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
 860          offsetof(Setup_UUIE, sourceCallSignalAddress), _TransportAddress},
 861         {FNAME("remoteExtensionAddress") CHOICE, 1, 2, 7, SKIP | EXT | OPT, 0,
 862          NULL},
 863         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
 864         {FNAME("h245SecurityCapability") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
 865          NULL},
 866         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 867         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 868         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
 869          offsetof(Setup_UUIE, fastStart), _Setup_UUIE_fastStart},
 870         {FNAME("mediaWaitForConnect") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 871         {FNAME("canOverlapSend") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 872         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
 873         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 874         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 875         {FNAME("connectionParameters") SEQ, 0, 3, 3, SKIP | EXT | OPT, 0,
 876          NULL},
 877         {FNAME("language") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 878         {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
 879          NULL},
 880         {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
 881          NULL},
 882         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 883         {FNAME("symmetricOperationRequired") NUL, FIXD, 0, 0, SKIP | OPT, 0,
 884          NULL},
 885         {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
 886         {FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL},
 887         {FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 888         {FNAME("neededFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 889         {FNAME("desiredFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 890         {FNAME("supportedFeatures") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 891         {FNAME("parallelH245Control") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 892         {FNAME("additionalSourceAddresses") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
 893          NULL},
 894 };
 895 
 896 static const struct field_t _CallProceeding_UUIE_fastStart[] = {        /* SEQUENCE OF */
 897         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
 898          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
 899         ,
 900 };
 901 
 902 static const struct field_t _CallProceeding_UUIE[] = {  /* SEQUENCE */
 903         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
 904         {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
 905          _EndpointType},
 906         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
 907          offsetof(CallProceeding_UUIE, h245Address), _TransportAddress},
 908         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
 909         {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
 910          NULL},
 911         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 912         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 913         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
 914          offsetof(CallProceeding_UUIE, fastStart),
 915          _CallProceeding_UUIE_fastStart},
 916         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 917         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 918         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
 919         {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
 920 };
 921 
 922 static const struct field_t _Connect_UUIE_fastStart[] = {       /* SEQUENCE OF */
 923         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
 924          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
 925         ,
 926 };
 927 
 928 static const struct field_t _Connect_UUIE[] = { /* SEQUENCE */
 929         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
 930         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
 931          offsetof(Connect_UUIE, h245Address), _TransportAddress},
 932         {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
 933          _EndpointType},
 934         {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
 935         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
 936         {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
 937          NULL},
 938         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 939         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 940         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
 941          offsetof(Connect_UUIE, fastStart), _Connect_UUIE_fastStart},
 942         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 943         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 944         {FNAME("language") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 945         {FNAME("connectedAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 946         {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
 947          NULL},
 948         {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
 949          NULL},
 950         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
 951         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 952         {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
 953         {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
 954 };
 955 
 956 static const struct field_t _Alerting_UUIE_fastStart[] = {      /* SEQUENCE OF */
 957         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
 958          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
 959         ,
 960 };
 961 
 962 static const struct field_t _Alerting_UUIE[] = {        /* SEQUENCE */
 963         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
 964         {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
 965          _EndpointType},
 966         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
 967          offsetof(Alerting_UUIE, h245Address), _TransportAddress},
 968         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
 969         {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
 970          NULL},
 971         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 972         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 973         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
 974          offsetof(Alerting_UUIE, fastStart), _Alerting_UUIE_fastStart},
 975         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 976         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
 977         {FNAME("alertingAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 978         {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
 979          NULL},
 980         {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
 981          NULL},
 982         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
 983         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 984         {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
 985         {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
 986 };
 987 
 988 static const struct field_t _Information_UUIE[] = {     /* SEQUENCE */
 989         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
 990         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
 991         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 992         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
 993         {FNAME("fastStart") SEQOF, SEMI, 0, 30, SKIP | OPT, 0, NULL},
 994         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
 995         {FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL},
 996 };
 997 
 998 static const struct field_t _ReleaseCompleteReason[] = {        /* CHOICE */
 999         {FNAME("noBandwidth") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1000         {FNAME("gatekeeperResources") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1001         {FNAME("unreachableDestination") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1002         {FNAME("destinationRejection") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1003         {FNAME("invalidRevision") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1004         {FNAME("noPermission") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1005         {FNAME("unreachableGatekeeper") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1006         {FNAME("gatewayResources") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1007         {FNAME("badFormatAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1008         {FNAME("adaptiveBusy") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1009         {FNAME("inConf") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1010         {FNAME("undefinedReason") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1011         {FNAME("facilityCallDeflection") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1012         {FNAME("securityDenied") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1013         {FNAME("calledPartyNotRegistered") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1014         {FNAME("callerNotRegistered") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1015         {FNAME("newConnectionNeeded") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1016         {FNAME("nonStandardReason") SEQ, 0, 2, 2, SKIP, 0, NULL},
1017         {FNAME("replaceWithConferenceInvite") OCTSTR, FIXD, 16, 0, SKIP, 0,
1018          NULL},
1019         {FNAME("genericDataReason") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1020         {FNAME("neededFeatureNotSupported") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1021         {FNAME("tunnelledSignallingRejected") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1022 };
1023 
1024 static const struct field_t _ReleaseComplete_UUIE[] = { /* SEQUENCE */
1025         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1026         {FNAME("reason") CHOICE, 4, 12, 22, SKIP | EXT | OPT, 0,
1027          _ReleaseCompleteReason},
1028         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
1029         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1030         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1031         {FNAME("busyAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1032         {FNAME("presentationIndicator") CHOICE, 2, 3, 3, SKIP | EXT | OPT, 0,
1033          NULL},
1034         {FNAME("screeningIndicator") ENUM, 2, 0, 0, SKIP | EXT | OPT, 0,
1035          NULL},
1036         {FNAME("capacity") SEQ, 2, 2, 2, SKIP | EXT | OPT, 0, NULL},
1037         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1038         {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
1039 };
1040 
1041 static const struct field_t _Facility_UUIE_alternativeAliasAddress[] = {        /* SEQUENCE OF */
1042         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1043 };
1044 
1045 static const struct field_t _FacilityReason[] = {       /* CHOICE */
1046         {FNAME("routeCallToGatekeeper") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1047         {FNAME("callForwarded") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1048         {FNAME("routeCallToMC") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1049         {FNAME("undefinedReason") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1050         {FNAME("conferenceListChoice") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1051         {FNAME("startH245") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1052         {FNAME("noH245") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1053         {FNAME("newTokens") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1054         {FNAME("featureSetUpdate") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1055         {FNAME("forwardedElements") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1056         {FNAME("transportedInformation") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1057 };
1058 
1059 static const struct field_t _Facility_UUIE_fastStart[] = {      /* SEQUENCE OF */
1060         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
1061          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
1062         ,
1063 };
1064 
1065 static const struct field_t _Facility_UUIE[] = {        /* SEQUENCE */
1066         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1067         {FNAME("alternativeAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1068          offsetof(Facility_UUIE, alternativeAddress), _TransportAddress},
1069         {FNAME("alternativeAliasAddress") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1070          _Facility_UUIE_alternativeAliasAddress},
1071         {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, SKIP | OPT, 0, NULL},
1072         {FNAME("reason") CHOICE, 2, 4, 11, DECODE | EXT,
1073          offsetof(Facility_UUIE, reason), _FacilityReason},
1074         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
1075         {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1076         {FNAME("remoteExtensionAddress") CHOICE, 1, 2, 7, SKIP | EXT | OPT, 0,
1077          NULL},
1078         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1079         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1080         {FNAME("conferences") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1081         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1082          offsetof(Facility_UUIE, h245Address), _TransportAddress},
1083         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
1084          offsetof(Facility_UUIE, fastStart), _Facility_UUIE_fastStart},
1085         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1086         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1087         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
1088         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1089         {FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL},
1090         {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
1091         {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT | OPT, 0, NULL},
1092         {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
1093          NULL},
1094 };
1095 
1096 static const struct field_t _CallIdentifier[] = {       /* SEQUENCE */
1097         {FNAME("guid") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
1098 };
1099 
1100 static const struct field_t _SecurityServiceMode[] = {  /* CHOICE */
1101         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, _NonStandardParameter},
1102         {FNAME("none") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1103         {FNAME("default") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1104 };
1105 
1106 static const struct field_t _SecurityCapabilities[] = { /* SEQUENCE */
1107         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP | OPT, 0,
1108          _NonStandardParameter},
1109         {FNAME("encryption") CHOICE, 2, 3, 3, SKIP | EXT, 0,
1110          _SecurityServiceMode},
1111         {FNAME("authenticaton") CHOICE, 2, 3, 3, SKIP | EXT, 0,
1112          _SecurityServiceMode},
1113         {FNAME("integrity") CHOICE, 2, 3, 3, SKIP | EXT, 0,
1114          _SecurityServiceMode},
1115 };
1116 
1117 static const struct field_t _H245Security[] = { /* CHOICE */
1118         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, _NonStandardParameter},
1119         {FNAME("noSecurity") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1120         {FNAME("tls") SEQ, 1, 4, 4, SKIP | EXT, 0, _SecurityCapabilities},
1121         {FNAME("ipsec") SEQ, 1, 4, 4, SKIP | EXT, 0, _SecurityCapabilities},
1122 };
1123 
1124 static const struct field_t _DHset[] = {        /* SEQUENCE */
1125         {FNAME("halfkey") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
1126         {FNAME("modSize") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
1127         {FNAME("generator") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
1128 };
1129 
1130 static const struct field_t _TypedCertificate[] = {     /* SEQUENCE */
1131         {FNAME("type") OID, BYTE, 0, 0, SKIP, 0, NULL},
1132         {FNAME("certificate") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1133 };
1134 
1135 static const struct field_t _H235_NonStandardParameter[] = {    /* SEQUENCE */
1136         {FNAME("nonStandardIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1137         {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1138 };
1139 
1140 static const struct field_t _ClearToken[] = {   /* SEQUENCE */
1141         {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1142         {FNAME("timeStamp") INT, CONS, 1, 0, SKIP | OPT, 0, NULL},
1143         {FNAME("password") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1144         {FNAME("dhkey") SEQ, 0, 3, 3, SKIP | EXT | OPT, 0, _DHset},
1145         {FNAME("challenge") OCTSTR, 7, 8, 0, SKIP | OPT, 0, NULL},
1146         {FNAME("random") INT, UNCO, 0, 0, SKIP | OPT, 0, NULL},
1147         {FNAME("certificate") SEQ, 0, 2, 2, SKIP | EXT | OPT, 0,
1148          _TypedCertificate},
1149         {FNAME("generalID") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1150         {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP | OPT, 0,
1151          _H235_NonStandardParameter},
1152         {FNAME("eckasdhkey") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0, NULL},
1153         {FNAME("sendersID") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1154 };
1155 
1156 static const struct field_t _Progress_UUIE_tokens[] = { /* SEQUENCE OF */
1157         {FNAME("item") SEQ, 8, 9, 11, SKIP | EXT, 0, _ClearToken},
1158 };
1159 
1160 static const struct field_t _Params[] = {       /* SEQUENCE */
1161         {FNAME("ranInt") INT, UNCO, 0, 0, SKIP | OPT, 0, NULL},
1162         {FNAME("iv8") OCTSTR, FIXD, 8, 0, SKIP | OPT, 0, NULL},
1163         {FNAME("iv16") OCTSTR, FIXD, 16, 0, SKIP | OPT, 0, NULL},
1164 };
1165 
1166 static const struct field_t _CryptoH323Token_cryptoEPPwdHash_token[] = {        /* SEQUENCE */
1167         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1168         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1169         {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1170 };
1171 
1172 static const struct field_t _CryptoH323Token_cryptoEPPwdHash[] = {      /* SEQUENCE */
1173         {FNAME("alias") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1174         {FNAME("timeStamp") INT, CONS, 1, 0, SKIP, 0, NULL},
1175         {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1176          _CryptoH323Token_cryptoEPPwdHash_token},
1177 };
1178 
1179 static const struct field_t _CryptoH323Token_cryptoGKPwdHash_token[] = {        /* SEQUENCE */
1180         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1181         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1182         {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1183 };
1184 
1185 static const struct field_t _CryptoH323Token_cryptoGKPwdHash[] = {      /* SEQUENCE */
1186         {FNAME("gatekeeperId") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
1187         {FNAME("timeStamp") INT, CONS, 1, 0, SKIP, 0, NULL},
1188         {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1189          _CryptoH323Token_cryptoGKPwdHash_token},
1190 };
1191 
1192 static const struct field_t _CryptoH323Token_cryptoEPPwdEncr[] = {      /* SEQUENCE */
1193         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1194         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1195         {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1196 };
1197 
1198 static const struct field_t _CryptoH323Token_cryptoGKPwdEncr[] = {      /* SEQUENCE */
1199         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1200         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1201         {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1202 };
1203 
1204 static const struct field_t _CryptoH323Token_cryptoEPCert[] = { /* SEQUENCE */
1205         {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1206         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1207         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1208         {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1209 };
1210 
1211 static const struct field_t _CryptoH323Token_cryptoGKCert[] = { /* SEQUENCE */
1212         {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1213         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1214         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1215         {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1216 };
1217 
1218 static const struct field_t _CryptoH323Token_cryptoFastStart[] = {      /* SEQUENCE */
1219         {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1220         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1221         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1222         {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1223 };
1224 
1225 static const struct field_t _CryptoToken_cryptoEncryptedToken_token[] = {       /* SEQUENCE */
1226         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1227         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1228         {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1229 };
1230 
1231 static const struct field_t _CryptoToken_cryptoEncryptedToken[] = {     /* SEQUENCE */
1232         {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1233         {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1234          _CryptoToken_cryptoEncryptedToken_token},
1235 };
1236 
1237 static const struct field_t _CryptoToken_cryptoSignedToken_token[] = {  /* SEQUENCE */
1238         {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1239         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1240         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1241         {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1242 };
1243 
1244 static const struct field_t _CryptoToken_cryptoSignedToken[] = {        /* SEQUENCE */
1245         {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1246         {FNAME("token") SEQ, 0, 4, 4, SKIP, 0,
1247          _CryptoToken_cryptoSignedToken_token},
1248 };
1249 
1250 static const struct field_t _CryptoToken_cryptoHashedToken_token[] = {  /* SEQUENCE */
1251         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1252         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1253         {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1254 };
1255 
1256 static const struct field_t _CryptoToken_cryptoHashedToken[] = {        /* SEQUENCE */
1257         {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1258         {FNAME("hashedVals") SEQ, 8, 9, 11, SKIP | EXT, 0, _ClearToken},
1259         {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1260          _CryptoToken_cryptoHashedToken_token},
1261 };
1262 
1263 static const struct field_t _CryptoToken_cryptoPwdEncr[] = {    /* SEQUENCE */
1264         {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1265         {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1266         {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1267 };
1268 
1269 static const struct field_t _CryptoToken[] = {  /* CHOICE */
1270         {FNAME("cryptoEncryptedToken") SEQ, 0, 2, 2, SKIP, 0,
1271          _CryptoToken_cryptoEncryptedToken},
1272         {FNAME("cryptoSignedToken") SEQ, 0, 2, 2, SKIP, 0,
1273          _CryptoToken_cryptoSignedToken},
1274         {FNAME("cryptoHashedToken") SEQ, 0, 3, 3, SKIP, 0,
1275          _CryptoToken_cryptoHashedToken},
1276         {FNAME("cryptoPwdEncr") SEQ, 0, 3, 3, SKIP, 0,
1277          _CryptoToken_cryptoPwdEncr},
1278 };
1279 
1280 static const struct field_t _CryptoH323Token[] = {      /* CHOICE */
1281         {FNAME("cryptoEPPwdHash") SEQ, 0, 3, 3, SKIP, 0,
1282          _CryptoH323Token_cryptoEPPwdHash},
1283         {FNAME("cryptoGKPwdHash") SEQ, 0, 3, 3, SKIP, 0,
1284          _CryptoH323Token_cryptoGKPwdHash},
1285         {FNAME("cryptoEPPwdEncr") SEQ, 0, 3, 3, SKIP, 0,
1286          _CryptoH323Token_cryptoEPPwdEncr},
1287         {FNAME("cryptoGKPwdEncr") SEQ, 0, 3, 3, SKIP, 0,
1288          _CryptoH323Token_cryptoGKPwdEncr},
1289         {FNAME("cryptoEPCert") SEQ, 0, 4, 4, SKIP, 0,
1290          _CryptoH323Token_cryptoEPCert},
1291         {FNAME("cryptoGKCert") SEQ, 0, 4, 4, SKIP, 0,
1292          _CryptoH323Token_cryptoGKCert},
1293         {FNAME("cryptoFastStart") SEQ, 0, 4, 4, SKIP, 0,
1294          _CryptoH323Token_cryptoFastStart},
1295         {FNAME("nestedcryptoToken") CHOICE, 2, 4, 4, SKIP | EXT, 0,
1296          _CryptoToken},
1297 };
1298 
1299 static const struct field_t _Progress_UUIE_cryptoTokens[] = {   /* SEQUENCE OF */
1300         {FNAME("item") CHOICE, 3, 8, 8, SKIP | EXT, 0, _CryptoH323Token},
1301 };
1302 
1303 static const struct field_t _Progress_UUIE_fastStart[] = {      /* SEQUENCE OF */
1304         {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
1305          sizeof(OpenLogicalChannel), _OpenLogicalChannel}
1306         ,
1307 };
1308 
1309 static const struct field_t _Progress_UUIE[] = {        /* SEQUENCE */
1310         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1311         {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
1312          _EndpointType},
1313         {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1314          offsetof(Progress_UUIE, h245Address), _TransportAddress},
1315         {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0,
1316          _CallIdentifier},
1317         {FNAME("h245SecurityMode") CHOICE, 2, 4, 4, SKIP | EXT | OPT, 0,
1318          _H245Security},
1319         {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1320          _Progress_UUIE_tokens},
1321         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1322          _Progress_UUIE_cryptoTokens},
1323         {FNAME("fastStart") SEQOF, SEMI, 0, 30, DECODE | OPT,
1324          offsetof(Progress_UUIE, fastStart), _Progress_UUIE_fastStart},
1325         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1326         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1327         {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
1328 };
1329 
1330 static const struct field_t _H323_UU_PDU_h323_message_body[] = {        /* CHOICE */
1331         {FNAME("setup") SEQ, 7, 13, 39, DECODE | EXT,
1332          offsetof(H323_UU_PDU_h323_message_body, setup), _Setup_UUIE},
1333         {FNAME("callProceeding") SEQ, 1, 3, 12, DECODE | EXT,
1334          offsetof(H323_UU_PDU_h323_message_body, callProceeding),
1335          _CallProceeding_UUIE},
1336         {FNAME("connect") SEQ, 1, 4, 19, DECODE | EXT,
1337          offsetof(H323_UU_PDU_h323_message_body, connect), _Connect_UUIE},
1338         {FNAME("alerting") SEQ, 1, 3, 17, DECODE | EXT,
1339          offsetof(H323_UU_PDU_h323_message_body, alerting), _Alerting_UUIE},
1340         {FNAME("information") SEQ, 0, 1, 7, SKIP | EXT, 0, _Information_UUIE},
1341         {FNAME("releaseComplete") SEQ, 1, 2, 11, SKIP | EXT, 0,
1342          _ReleaseComplete_UUIE},
1343         {FNAME("facility") SEQ, 3, 5, 21, DECODE | EXT,
1344          offsetof(H323_UU_PDU_h323_message_body, facility), _Facility_UUIE},
1345         {FNAME("progress") SEQ, 5, 8, 11, DECODE | EXT,
1346          offsetof(H323_UU_PDU_h323_message_body, progress), _Progress_UUIE},
1347         {FNAME("empty") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1348         {FNAME("status") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
1349         {FNAME("statusInquiry") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
1350         {FNAME("setupAcknowledge") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
1351         {FNAME("notify") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
1352 };
1353 
1354 static const struct field_t _RequestMessage[] = {       /* CHOICE */
1355         {FNAME("nonStandard") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1356         {FNAME("masterSlaveDetermination") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1357         {FNAME("terminalCapabilitySet") SEQ, 3, 5, 5, STOP | EXT, 0, NULL},
1358         {FNAME("openLogicalChannel") SEQ, 1, 3, 5, DECODE | EXT,
1359          offsetof(RequestMessage, openLogicalChannel), _OpenLogicalChannel},
1360         {FNAME("closeLogicalChannel") SEQ, 0, 2, 3, STOP | EXT, 0, NULL},
1361         {FNAME("requestChannelClose") SEQ, 0, 1, 3, STOP | EXT, 0, NULL},
1362         {FNAME("multiplexEntrySend") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1363         {FNAME("requestMultiplexEntry") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1364         {FNAME("requestMode") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1365         {FNAME("roundTripDelayRequest") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1366         {FNAME("maintenanceLoopRequest") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1367         {FNAME("communicationModeRequest") SEQ, 0, 0, 0, STOP | EXT, 0, NULL},
1368         {FNAME("conferenceRequest") CHOICE, 3, 8, 16, STOP | EXT, 0, NULL},
1369         {FNAME("multilinkRequest") CHOICE, 3, 5, 5, STOP | EXT, 0, NULL},
1370         {FNAME("logicalChannelRateRequest") SEQ, 0, 3, 3, STOP | EXT, 0,
1371          NULL},
1372 };
1373 
1374 static const struct field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters[] = {    /* CHOICE */
1375         {FNAME("h222LogicalChannelParameters") SEQ, 3, 5, 5, SKIP | EXT, 0,
1376          _H222LogicalChannelParameters},
1377         {FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT,
1378          offsetof
1379          (OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters,
1380           h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
1381 };
1382 
1383 static const struct field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters[] = {        /* SEQUENCE */
1384         {FNAME("reverseLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
1385         {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
1386         {FNAME("multiplexParameters") CHOICE, 0, 1, 2, DECODE | EXT | OPT,
1387          offsetof(OpenLogicalChannelAck_reverseLogicalChannelParameters,
1388                   multiplexParameters),
1389          _OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters},
1390         {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
1391 };
1392 
1393 static const struct field_t _H2250LogicalChannelAckParameters_nonStandard[] = { /* SEQUENCE OF */
1394         {FNAME("item") SEQ, 0, 2, 2, SKIP, 0, _H245_NonStandardParameter},
1395 };
1396 
1397 static const struct field_t _H2250LogicalChannelAckParameters[] = {     /* SEQUENCE */
1398         {FNAME("nonStandard") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1399          _H2250LogicalChannelAckParameters_nonStandard},
1400         {FNAME("sessionID") INT, 8, 1, 0, SKIP | OPT, 0, NULL},
1401         {FNAME("mediaChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
1402          offsetof(H2250LogicalChannelAckParameters, mediaChannel),
1403          _H245_TransportAddress},
1404         {FNAME("mediaControlChannel") CHOICE, 1, 2, 2, DECODE | EXT | OPT,
1405          offsetof(H2250LogicalChannelAckParameters, mediaControlChannel),
1406          _H245_TransportAddress},
1407         {FNAME("dynamicRTPPayloadType") INT, 5, 96, 0, SKIP | OPT, 0, NULL},
1408         {FNAME("flowControlToZero") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1409         {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
1410 };
1411 
1412 static const struct field_t _OpenLogicalChannelAck_forwardMultiplexAckParameters[] = {  /* CHOICE */
1413         {FNAME("h2250LogicalChannelAckParameters") SEQ, 5, 5, 7, DECODE | EXT,
1414          offsetof(OpenLogicalChannelAck_forwardMultiplexAckParameters,
1415                   h2250LogicalChannelAckParameters),
1416          _H2250LogicalChannelAckParameters},
1417 };
1418 
1419 static const struct field_t _OpenLogicalChannelAck[] = {        /* SEQUENCE */
1420         {FNAME("forwardLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
1421         {FNAME("reverseLogicalChannelParameters") SEQ, 2, 3, 4,
1422          DECODE | EXT | OPT, offsetof(OpenLogicalChannelAck,
1423                                       reverseLogicalChannelParameters),
1424          _OpenLogicalChannelAck_reverseLogicalChannelParameters},
1425         {FNAME("separateStack") SEQ, 2, 4, 5, DECODE | EXT | OPT,
1426          offsetof(OpenLogicalChannelAck, separateStack),
1427          _NetworkAccessParameters},
1428         {FNAME("forwardMultiplexAckParameters") CHOICE, 0, 1, 1,
1429          DECODE | EXT | OPT, offsetof(OpenLogicalChannelAck,
1430                                       forwardMultiplexAckParameters),
1431          _OpenLogicalChannelAck_forwardMultiplexAckParameters},
1432         {FNAME("encryptionSync") SEQ, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
1433 };
1434 
1435 static const struct field_t _ResponseMessage[] = {      /* CHOICE */
1436         {FNAME("nonStandard") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1437         {FNAME("masterSlaveDeterminationAck") SEQ, 0, 1, 1, STOP | EXT, 0,
1438          NULL},
1439         {FNAME("masterSlaveDeterminationReject") SEQ, 0, 1, 1, STOP | EXT, 0,
1440          NULL},
1441         {FNAME("terminalCapabilitySetAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1442         {FNAME("terminalCapabilitySetReject") SEQ, 0, 2, 2, STOP | EXT, 0,
1443          NULL},
1444         {FNAME("openLogicalChannelAck") SEQ, 1, 2, 5, DECODE | EXT,
1445          offsetof(ResponseMessage, openLogicalChannelAck),
1446          _OpenLogicalChannelAck},
1447         {FNAME("openLogicalChannelReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1448         {FNAME("closeLogicalChannelAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1449         {FNAME("requestChannelCloseAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1450         {FNAME("requestChannelCloseReject") SEQ, 0, 2, 2, STOP | EXT, 0,
1451          NULL},
1452         {FNAME("multiplexEntrySendAck") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1453         {FNAME("multiplexEntrySendReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1454         {FNAME("requestMultiplexEntryAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1455         {FNAME("requestMultiplexEntryReject") SEQ, 0, 2, 2, STOP | EXT, 0,
1456          NULL},
1457         {FNAME("requestModeAck") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1458         {FNAME("requestModeReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1459         {FNAME("roundTripDelayResponse") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1460         {FNAME("maintenanceLoopAck") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1461         {FNAME("maintenanceLoopReject") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1462         {FNAME("communicationModeResponse") CHOICE, 0, 1, 1, STOP | EXT, 0,
1463          NULL},
1464         {FNAME("conferenceResponse") CHOICE, 3, 8, 16, STOP | EXT, 0, NULL},
1465         {FNAME("multilinkResponse") CHOICE, 3, 5, 5, STOP | EXT, 0, NULL},
1466         {FNAME("logicalChannelRateAcknowledge") SEQ, 0, 3, 3, STOP | EXT, 0,
1467          NULL},
1468         {FNAME("logicalChannelRateReject") SEQ, 1, 4, 4, STOP | EXT, 0, NULL},
1469 };
1470 
1471 static const struct field_t _MultimediaSystemControlMessage[] = {       /* CHOICE */
1472         {FNAME("request") CHOICE, 4, 11, 15, DECODE | EXT,
1473          offsetof(MultimediaSystemControlMessage, request), _RequestMessage},
1474         {FNAME("response") CHOICE, 5, 19, 24, DECODE | EXT,
1475          offsetof(MultimediaSystemControlMessage, response),
1476          _ResponseMessage},
1477         {FNAME("command") CHOICE, 3, 7, 12, STOP | EXT, 0, NULL},
1478         {FNAME("indication") CHOICE, 4, 14, 23, STOP | EXT, 0, NULL},
1479 };
1480 
1481 static const struct field_t _H323_UU_PDU_h245Control[] = {      /* SEQUENCE OF */
1482         {FNAME("item") CHOICE, 2, 4, 4, DECODE | OPEN | EXT,
1483          sizeof(MultimediaSystemControlMessage),
1484          _MultimediaSystemControlMessage}
1485         ,
1486 };
1487 
1488 static const struct field_t _H323_UU_PDU[] = {  /* SEQUENCE */
1489         {FNAME("h323-message-body") CHOICE, 3, 7, 13, DECODE | EXT,
1490          offsetof(H323_UU_PDU, h323_message_body),
1491          _H323_UU_PDU_h323_message_body},
1492         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1493          _NonStandardParameter},
1494         {FNAME("h4501SupplementaryService") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1495          NULL},
1496         {FNAME("h245Tunneling") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1497         {FNAME("h245Control") SEQOF, SEMI, 0, 4, DECODE | OPT,
1498          offsetof(H323_UU_PDU, h245Control), _H323_UU_PDU_h245Control},
1499         {FNAME("nonStandardControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1500         {FNAME("callLinkage") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
1501         {FNAME("tunnelledSignallingMessage") SEQ, 2, 4, 4, STOP | EXT | OPT,
1502          0, NULL},
1503         {FNAME("provisionalRespToH245Tunneling") NUL, FIXD, 0, 0, STOP | OPT,
1504          0, NULL},
1505         {FNAME("stimulusControl") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1506         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1507 };
1508 
1509 static const struct field_t _H323_UserInformation[] = { /* SEQUENCE */
1510         {FNAME("h323-uu-pdu") SEQ, 1, 2, 11, DECODE | EXT,
1511          offsetof(H323_UserInformation, h323_uu_pdu), _H323_UU_PDU},
1512         {FNAME("user-data") SEQ, 0, 2, 2, STOP | EXT | OPT, 0, NULL},
1513 };
1514 
1515 static const struct field_t _GatekeeperRequest[] = {    /* SEQUENCE */
1516         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1517         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1518         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1519          _NonStandardParameter},
1520         {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1521          offsetof(GatekeeperRequest, rasAddress), _TransportAddress},
1522         {FNAME("endpointType") SEQ, 6, 8, 10, STOP | EXT, 0, NULL},
1523         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1524         {FNAME("callServices") SEQ, 0, 8, 8, STOP | EXT | OPT, 0, NULL},
1525         {FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1526         {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1527         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1528         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1529         {FNAME("authenticationCapability") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1530          NULL},
1531         {FNAME("algorithmOIDs") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1532         {FNAME("integrity") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1533         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1534         {FNAME("supportsAltGK") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1535         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1536         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1537 };
1538 
1539 static const struct field_t _GatekeeperConfirm[] = {    /* SEQUENCE */
1540         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1541         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1542         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1543          _NonStandardParameter},
1544         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1545         {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1546          offsetof(GatekeeperConfirm, rasAddress), _TransportAddress},
1547         {FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1548         {FNAME("authenticationMode") CHOICE, 3, 7, 8, STOP | EXT | OPT, 0,
1549          NULL},
1550         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1551         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1552         {FNAME("algorithmOID") OID, BYTE, 0, 0, STOP | OPT, 0, NULL},
1553         {FNAME("integrity") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1554         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1555         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1556         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1557 };
1558 
1559 static const struct field_t _RegistrationRequest_callSignalAddress[] = {        /* SEQUENCE OF */
1560         {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1561          sizeof(TransportAddress), _TransportAddress}
1562         ,
1563 };
1564 
1565 static const struct field_t _RegistrationRequest_rasAddress[] = {       /* SEQUENCE OF */
1566         {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1567          sizeof(TransportAddress), _TransportAddress}
1568         ,
1569 };
1570 
1571 static const struct field_t _RegistrationRequest_terminalAlias[] = {    /* SEQUENCE OF */
1572         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1573 };
1574 
1575 static const struct field_t _RegistrationRequest[] = {  /* SEQUENCE */
1576         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1577         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1578         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1579          _NonStandardParameter},
1580         {FNAME("discoveryComplete") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
1581         {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
1582          offsetof(RegistrationRequest, callSignalAddress),
1583          _RegistrationRequest_callSignalAddress},
1584         {FNAME("rasAddress") SEQOF, SEMI, 0, 10, DECODE,
1585          offsetof(RegistrationRequest, rasAddress),
1586          _RegistrationRequest_rasAddress},
1587         {FNAME("terminalType") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType},
1588         {FNAME("terminalAlias") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1589          _RegistrationRequest_terminalAlias},
1590         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1591         {FNAME("endpointVendor") SEQ, 2, 3, 3, SKIP | EXT, 0,
1592          _VendorIdentifier},
1593         {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1594         {FNAME("timeToLive") INT, CONS, 1, 0, DECODE | OPT,
1595          offsetof(RegistrationRequest, timeToLive), NULL},
1596         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1597         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1598         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1599         {FNAME("keepAlive") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1600         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1601         {FNAME("willSupplyUUIEs") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1602         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1603         {FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT,
1604          0, NULL},
1605         {FNAME("additiveRegistration") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1606         {FNAME("terminalAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1607          NULL},
1608         {FNAME("supportsAltGK") NUL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1609         {FNAME("usageReportingCapability") SEQ, 3, 4, 4, STOP | EXT | OPT, 0,
1610          NULL},
1611         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1612         {FNAME("supportedH248Packages") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1613          NULL},
1614         {FNAME("callCreditCapability") SEQ, 2, 2, 2, STOP | EXT | OPT, 0,
1615          NULL},
1616         {FNAME("capacityReportingCapability") SEQ, 0, 1, 1, STOP | EXT | OPT,
1617          0, NULL},
1618         {FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
1619         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1620         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1621 };
1622 
1623 static const struct field_t _RegistrationConfirm_callSignalAddress[] = {        /* SEQUENCE OF */
1624         {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1625          sizeof(TransportAddress), _TransportAddress}
1626         ,
1627 };
1628 
1629 static const struct field_t _RegistrationConfirm_terminalAlias[] = {    /* SEQUENCE OF */
1630         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1631 };
1632 
1633 static const struct field_t _RegistrationConfirm[] = {  /* SEQUENCE */
1634         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1635         {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1636         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1637          _NonStandardParameter},
1638         {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
1639          offsetof(RegistrationConfirm, callSignalAddress),
1640          _RegistrationConfirm_callSignalAddress},
1641         {FNAME("terminalAlias") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1642          _RegistrationConfirm_terminalAlias},
1643         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1644         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
1645         {FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
1646         {FNAME("timeToLive") INT, CONS, 1, 0, DECODE | OPT,
1647          offsetof(RegistrationConfirm, timeToLive), NULL},
1648         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1649         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1650         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1651         {FNAME("willRespondToIRR") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1652         {FNAME("preGrantedARQ") SEQ, 0, 4, 8, STOP | EXT | OPT, 0, NULL},
1653         {FNAME("maintainConnection") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1654         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1655         {FNAME("supportsAdditiveRegistration") NUL, FIXD, 0, 0, STOP | OPT, 0,
1656          NULL},
1657         {FNAME("terminalAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1658          NULL},
1659         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1660         {FNAME("usageSpec") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1661         {FNAME("featureServerAlias") CHOICE, 1, 2, 7, STOP | EXT | OPT, 0,
1662          NULL},
1663         {FNAME("capacityReportingSpec") SEQ, 0, 1, 1, STOP | EXT | OPT, 0,
1664          NULL},
1665         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1666         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1667 };
1668 
1669 static const struct field_t _UnregistrationRequest_callSignalAddress[] = {      /* SEQUENCE OF */
1670         {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1671          sizeof(TransportAddress), _TransportAddress}
1672         ,
1673 };
1674 
1675 static const struct field_t _UnregistrationRequest[] = {        /* SEQUENCE */
1676         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1677         {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
1678          offsetof(UnregistrationRequest, callSignalAddress),
1679          _UnregistrationRequest_callSignalAddress},
1680         {FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1681         {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1682         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1683         {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1684         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1685         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1686         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1687         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1688         {FNAME("reason") CHOICE, 2, 4, 5, STOP | EXT | OPT, 0, NULL},
1689         {FNAME("endpointAliasPattern") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1690          NULL},
1691         {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1692         {FNAME("alternateGatekeeper") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1693         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1694 };
1695 
1696 static const struct field_t _CallModel[] = {    /* CHOICE */
1697         {FNAME("direct") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1698         {FNAME("gatekeeperRouted") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1699 };
1700 
1701 static const struct field_t _AdmissionRequest_destinationInfo[] = {     /* SEQUENCE OF */
1702         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1703 };
1704 
1705 static const struct field_t _AdmissionRequest_destExtraCallInfo[] = {   /* SEQUENCE OF */
1706         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1707 };
1708 
1709 static const struct field_t _AdmissionRequest_srcInfo[] = {     /* SEQUENCE OF */
1710         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1711 };
1712 
1713 static const struct field_t _AdmissionRequest[] = {     /* SEQUENCE */
1714         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1715         {FNAME("callType") CHOICE, 2, 4, 4, SKIP | EXT, 0, _CallType},
1716         {FNAME("callModel") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0, _CallModel},
1717         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
1718         {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1719          _AdmissionRequest_destinationInfo},
1720         {FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1721          offsetof(AdmissionRequest, destCallSignalAddress),
1722          _TransportAddress},
1723         {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1724          _AdmissionRequest_destExtraCallInfo},
1725         {FNAME("srcInfo") SEQOF, SEMI, 0, 0, SKIP, 0,
1726          _AdmissionRequest_srcInfo},
1727         {FNAME("srcCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1728          offsetof(AdmissionRequest, srcCallSignalAddress), _TransportAddress},
1729         {FNAME("bandWidth") INT, CONS, 0, 0, STOP, 0, NULL},
1730         {FNAME("callReferenceValue") INT, WORD, 0, 0, STOP, 0, NULL},
1731         {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1732         {FNAME("callServices") SEQ, 0, 8, 8, STOP | EXT | OPT, 0, NULL},
1733         {FNAME("conferenceID") OCTSTR, FIXD, 16, 0, STOP, 0, NULL},
1734         {FNAME("activeMC") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1735         {FNAME("answerCall") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1736         {FNAME("canMapAlias") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1737         {FNAME("callIdentifier") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1738         {FNAME("srcAlternatives") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1739         {FNAME("destAlternatives") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1740         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1741         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1742         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1743         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1744         {FNAME("transportQOS") CHOICE, 2, 3, 3, STOP | EXT | OPT, 0, NULL},
1745         {FNAME("willSupplyUUIEs") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1746         {FNAME("callLinkage") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
1747         {FNAME("gatewayDataRate") SEQ, 2, 3, 3, STOP | EXT | OPT, 0, NULL},
1748         {FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
1749         {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1750         {FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1751         {FNAME("desiredTunnelledProtocol") SEQ, 1, 2, 2, STOP | EXT | OPT, 0,
1752          NULL},
1753         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1754         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1755 };
1756 
1757 static const struct field_t _AdmissionConfirm[] = {     /* SEQUENCE */
1758         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1759         {FNAME("bandWidth") INT, CONS, 0, 0, SKIP, 0, NULL},
1760         {FNAME("callModel") CHOICE, 1, 2, 2, SKIP | EXT, 0, _CallModel},
1761         {FNAME("destCallSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1762          offsetof(AdmissionConfirm, destCallSignalAddress),
1763          _TransportAddress},
1764         {FNAME("irrFrequency") INT, WORD, 1, 0, STOP | OPT, 0, NULL},
1765         {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1766         {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1767         {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1768         {FNAME("destinationType") SEQ, 6, 8, 10, STOP | EXT | OPT, 0, NULL},
1769         {FNAME("remoteExtensionAddress") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1770          NULL},
1771         {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1772         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1773         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1774         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1775         {FNAME("transportQOS") CHOICE, 2, 3, 3, STOP | EXT | OPT, 0, NULL},
1776         {FNAME("willRespondToIRR") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1777         {FNAME("uuiesRequested") SEQ, 0, 9, 13, STOP | EXT, 0, NULL},
1778         {FNAME("language") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1779         {FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT,
1780          0, NULL},
1781         {FNAME("useSpecifiedTransport") CHOICE, 1, 2, 2, STOP | EXT | OPT, 0,
1782          NULL},
1783         {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1784         {FNAME("usageSpec") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1785         {FNAME("supportedProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1786         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1787         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1788         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1789         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1790 };
1791 
1792 static const struct field_t _LocationRequest_destinationInfo[] = {      /* SEQUENCE OF */
1793         {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1794 };
1795 
1796 static const struct field_t _LocationRequest[] = {      /* SEQUENCE */
1797         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1798         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1799         {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, SKIP, 0,
1800          _LocationRequest_destinationInfo},
1801         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1802          _NonStandardParameter},
1803         {FNAME("replyAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1804          offsetof(LocationRequest, replyAddress), _TransportAddress},
1805         {FNAME("sourceInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1806         {FNAME("canMapAlias") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1807         {FNAME("gatekeeperIdentifier") BMPSTR, 7, 1, 0, STOP | OPT, 0, NULL},
1808         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1809         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1810         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1811         {FNAME("desiredProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1812         {FNAME("desiredTunnelledProtocol") SEQ, 1, 2, 2, STOP | EXT | OPT, 0,
1813          NULL},
1814         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1815         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1816         {FNAME("hopCount") INT, 8, 1, 0, STOP | OPT, 0, NULL},
1817         {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1818 };
1819 
1820 static const struct field_t _LocationConfirm[] = {      /* SEQUENCE */
1821         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1822         {FNAME("callSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1823          offsetof(LocationConfirm, callSignalAddress), _TransportAddress},
1824         {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1825          offsetof(LocationConfirm, rasAddress), _TransportAddress},
1826         {FNAME("nonStandardData") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1827         {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1828         {FNAME("destExtraCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1829         {FNAME("destinationType") SEQ, 6, 8, 10, STOP | EXT | OPT, 0, NULL},
1830         {FNAME("remoteExtensionAddress") SEQOF, SEMI, 0, 0, STOP | OPT, 0,
1831          NULL},
1832         {FNAME("alternateEndpoints") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1833         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1834         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1835         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1836         {FNAME("alternateTransportAddresses") SEQ, 1, 1, 1, STOP | EXT | OPT,
1837          0, NULL},
1838         {FNAME("supportedProtocols") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1839         {FNAME("multipleCalls") BOOL, FIXD, 0, 0, STOP | OPT, 0, NULL},
1840         {FNAME("featureSet") SEQ, 3, 4, 4, STOP | EXT | OPT, 0, NULL},
1841         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1842         {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1843         {FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1844 };
1845 
1846 static const struct field_t _InfoRequestResponse_callSignalAddress[] = {        /* SEQUENCE OF */
1847         {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1848          sizeof(TransportAddress), _TransportAddress}
1849         ,
1850 };
1851 
1852 static const struct field_t _InfoRequestResponse[] = {  /* SEQUENCE */
1853         {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1854          _NonStandardParameter},
1855         {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1856         {FNAME("endpointType") SEQ, 6, 8, 10, SKIP | EXT, 0, _EndpointType},
1857         {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
1858         {FNAME("rasAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1859          offsetof(InfoRequestResponse, rasAddress), _TransportAddress},
1860         {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
1861          offsetof(InfoRequestResponse, callSignalAddress),
1862          _InfoRequestResponse_callSignalAddress},
1863         {FNAME("endpointAlias") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1864         {FNAME("perCallInfo") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1865         {FNAME("tokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1866         {FNAME("cryptoTokens") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1867         {FNAME("integrityCheckValue") SEQ, 0, 2, 2, STOP | OPT, 0, NULL},
1868         {FNAME("needResponse") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1869         {FNAME("capacity") SEQ, 2, 2, 2, STOP | EXT | OPT, 0, NULL},
1870         {FNAME("irrStatus") CHOICE, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
1871         {FNAME("unsolicited") BOOL, FIXD, 0, 0, STOP, 0, NULL},
1872         {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1873 };
1874 
1875 static const struct field_t _RasMessage[] = {   /* CHOICE */
1876         {FNAME("gatekeeperRequest") SEQ, 4, 8, 18, DECODE | EXT,
1877          offsetof(RasMessage, gatekeeperRequest), _GatekeeperRequest},
1878         {FNAME("gatekeeperConfirm") SEQ, 2, 5, 14, DECODE | EXT,
1879          offsetof(RasMessage, gatekeeperConfirm), _GatekeeperConfirm},
1880         {FNAME("gatekeeperReject") SEQ, 2, 5, 11, STOP | EXT, 0, NULL},
1881         {FNAME("registrationRequest") SEQ, 3, 10, 31, DECODE | EXT,
1882          offsetof(RasMessage, registrationRequest), _RegistrationRequest},
1883         {FNAME("registrationConfirm") SEQ, 3, 7, 24, DECODE | EXT,
1884          offsetof(RasMessage, registrationConfirm), _RegistrationConfirm},
1885         {FNAME("registrationReject") SEQ, 2, 5, 11, STOP | EXT, 0, NULL},
1886         {FNAME("unregistrationRequest") SEQ, 3, 5, 15, DECODE | EXT,
1887          offsetof(RasMessage, unregistrationRequest), _UnregistrationRequest},
1888         {FNAME("unregistrationConfirm") SEQ, 1, 2, 6, STOP | EXT, 0, NULL},
1889         {FNAME("unregistrationReject") SEQ, 1, 3, 8, STOP | EXT, 0, NULL},
1890         {FNAME("admissionRequest") SEQ, 7, 16, 34, DECODE | EXT,
1891          offsetof(RasMessage, admissionRequest), _AdmissionRequest},
1892         {FNAME("admissionConfirm") SEQ, 2, 6, 27, DECODE | EXT,
1893          offsetof(RasMessage, admissionConfirm), _AdmissionConfirm},
1894         {FNAME("admissionReject") SEQ, 1, 3, 11, STOP | EXT, 0, NULL},
1895         {FNAME("bandwidthRequest") SEQ, 2, 7, 18, STOP | EXT, 0, NULL},
1896         {FNAME("bandwidthConfirm") SEQ, 1, 3, 8, STOP | EXT, 0, NULL},
1897         {FNAME("bandwidthReject") SEQ, 1, 4, 9, STOP | EXT, 0, NULL},
1898         {FNAME("disengageRequest") SEQ, 1, 6, 19, STOP | EXT, 0, NULL},
1899         {FNAME("disengageConfirm") SEQ, 1, 2, 9, STOP | EXT, 0, NULL},
1900         {FNAME("disengageReject") SEQ, 1, 3, 8, STOP | EXT, 0, NULL},
1901         {FNAME("locationRequest") SEQ, 2, 5, 17, DECODE | EXT,
1902          offsetof(RasMessage, locationRequest), _LocationRequest},
1903         {FNAME("locationConfirm") SEQ, 1, 4, 19, DECODE | EXT,
1904          offsetof(RasMessage, locationConfirm), _LocationConfirm},
1905         {FNAME("locationReject") SEQ, 1, 3, 10, STOP | EXT, 0, NULL},
1906         {FNAME("infoRequest") SEQ, 2, 4, 15, STOP | EXT, 0, NULL},
1907         {FNAME("infoRequestResponse") SEQ, 3, 8, 16, DECODE | EXT,
1908          offsetof(RasMessage, infoRequestResponse), _InfoRequestResponse},
1909         {FNAME("nonStandardMessage") SEQ, 0, 2, 7, STOP | EXT, 0, NULL},
1910         {FNAME("unknownMessageResponse") SEQ, 0, 1, 5, STOP | EXT, 0, NULL},
1911         {FNAME("requestInProgress") SEQ, 4, 6, 6, STOP | EXT, 0, NULL},
1912         {FNAME("resourcesAvailableIndicate") SEQ, 4, 9, 11, STOP | EXT, 0,
1913          NULL},
1914         {FNAME("resourcesAvailableConfirm") SEQ, 4, 6, 7, STOP | EXT, 0,
1915          NULL},
1916         {FNAME("infoRequestAck") SEQ, 4, 5, 5, STOP | EXT, 0, NULL},
1917         {FNAME("infoRequestNak") SEQ, 5, 7, 7, STOP | EXT, 0, NULL},
1918         {FNAME("serviceControlIndication") SEQ, 8, 10, 10, STOP | EXT, 0,
1919          NULL},
1920         {FNAME("serviceControlResponse") SEQ, 7, 8, 8, STOP | EXT, 0, NULL},
1921 };

/* [<][>][^][v][top][bottom][index][help] */