Commit 905e3e8ec5899ae618846c9ac6f38dd6c22e604e

Authored by Jan Engelhardt
Committed by David S. Miller
1 parent 3cb609d57c

[NETFILTER]: nf_conntrack_h323: constify and annotate H.323 helper

Constify data tables (predominantly in nf_conntrack_h323_types.c, but
also a few in nf_conntrack_h323_asn1.c) and use const qualifiers on
variables where possible in the h323 sources.

Signed-off-by: Jan Engelhardt <jengelh@computergmbh.de>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>

Showing 4 changed files with 230 additions and 216 deletions Side-by-side Diff

net/ipv4/netfilter/nf_nat_h323.c
... ... @@ -32,7 +32,8 @@
32 32 __be32 ip;
33 33 __be16 port;
34 34 } __attribute__ ((__packed__)) buf;
35   - struct tcphdr _tcph, *th;
  35 + const struct tcphdr *th;
  36 + struct tcphdr _tcph;
36 37  
37 38 buf.ip = ip;
38 39 buf.port = port;
... ... @@ -99,7 +100,7 @@
99 100 unsigned char **data,
100 101 TransportAddress *taddr, int count)
101 102 {
102   - struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
  103 + const struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
103 104 int dir = CTINFO2DIR(ctinfo);
104 105 int i;
105 106 __be16 port;
net/netfilter/nf_conntrack_h323_asn1.c
... ... @@ -87,7 +87,7 @@
87 87 unsigned char ub;
88 88 unsigned short attr;
89 89 unsigned short offset;
90   - struct field_t *fields;
  90 + const struct field_t *fields;
91 91 } field_t;
92 92  
93 93 /* Bit Stream */
94 94  
... ... @@ -111,21 +111,21 @@
111 111 static unsigned int get_uint(bitstr_t *bs, int b);
112 112  
113 113 /* Decoder Functions */
114   -static int decode_nul(bitstr_t *bs, field_t *f, char *base, int level);
115   -static int decode_bool(bitstr_t *bs, field_t *f, char *base, int level);
116   -static int decode_oid(bitstr_t *bs, field_t *f, char *base, int level);
117   -static int decode_int(bitstr_t *bs, field_t *f, char *base, int level);
118   -static int decode_enum(bitstr_t *bs, field_t *f, char *base, int level);
119   -static int decode_bitstr(bitstr_t *bs, field_t *f, char *base, int level);
120   -static int decode_numstr(bitstr_t *bs, field_t *f, char *base, int level);
121   -static int decode_octstr(bitstr_t *bs, field_t *f, char *base, int level);
122   -static int decode_bmpstr(bitstr_t *bs, field_t *f, char *base, int level);
123   -static int decode_seq(bitstr_t *bs, field_t *f, char *base, int level);
124   -static int decode_seqof(bitstr_t *bs, field_t *f, char *base, int level);
125   -static int decode_choice(bitstr_t *bs, field_t *f, char *base, int level);
  114 +static int decode_nul(bitstr_t *bs, const struct field_t *f, char *base, int level);
  115 +static int decode_bool(bitstr_t *bs, const struct field_t *f, char *base, int level);
  116 +static int decode_oid(bitstr_t *bs, const struct field_t *f, char *base, int level);
  117 +static int decode_int(bitstr_t *bs, const struct field_t *f, char *base, int level);
  118 +static int decode_enum(bitstr_t *bs, const struct field_t *f, char *base, int level);
  119 +static int decode_bitstr(bitstr_t *bs, const struct field_t *f, char *base, int level);
  120 +static int decode_numstr(bitstr_t *bs, const struct field_t *f, char *base, int level);
  121 +static int decode_octstr(bitstr_t *bs, const struct field_t *f, char *base, int level);
  122 +static int decode_bmpstr(bitstr_t *bs, const struct field_t *f, char *base, int level);
  123 +static int decode_seq(bitstr_t *bs, const struct field_t *f, char *base, int level);
  124 +static int decode_seqof(bitstr_t *bs, const struct field_t *f, char *base, int level);
  125 +static int decode_choice(bitstr_t *bs, const struct field_t *f, char *base, int level);
126 126  
127 127 /* Decoder Functions Vector */
128   -typedef int (*decoder_t)(bitstr_t *, field_t *, char *, int);
  128 +typedef int (*decoder_t)(bitstr_t *, const struct field_t *, char *, int);
129 129 static const decoder_t Decoders[] = {
130 130 decode_nul,
131 131 decode_bool,
... ... @@ -264,7 +264,8 @@
264 264 }
265 265  
266 266 /****************************************************************************/
267   -static int decode_nul(bitstr_t *bs, field_t *f, char *base, int level)
  267 +static int decode_nul(bitstr_t *bs, const struct field_t *f,
  268 + char *base, int level)
268 269 {
269 270 PRINT("%*.s%s\n", level * TAB_SIZE, " ", f->name);
270 271  
... ... @@ -272,7 +273,8 @@
272 273 }
273 274  
274 275 /****************************************************************************/
275   -static int decode_bool(bitstr_t *bs, field_t *f, char *base, int level)
  276 +static int decode_bool(bitstr_t *bs, const struct field_t *f,
  277 + char *base, int level)
276 278 {
277 279 PRINT("%*.s%s\n", level * TAB_SIZE, " ", f->name);
278 280  
... ... @@ -283,7 +285,8 @@
283 285 }
284 286  
285 287 /****************************************************************************/
286   -static int decode_oid(bitstr_t *bs, field_t *f, char *base, int level)
  288 +static int decode_oid(bitstr_t *bs, const struct field_t *f,
  289 + char *base, int level)
287 290 {
288 291 int len;
289 292  
... ... @@ -299,7 +302,8 @@
299 302 }
300 303  
301 304 /****************************************************************************/
302   -static int decode_int(bitstr_t *bs, field_t *f, char *base, int level)
  305 +static int decode_int(bitstr_t *bs, const struct field_t *f,
  306 + char *base, int level)
303 307 {
304 308 unsigned int len;
305 309  
... ... @@ -342,7 +346,8 @@
342 346 }
343 347  
344 348 /****************************************************************************/
345   -static int decode_enum(bitstr_t *bs, field_t *f, char *base, int level)
  349 +static int decode_enum(bitstr_t *bs, const struct field_t *f,
  350 + char *base, int level)
346 351 {
347 352 PRINT("%*.s%s\n", level * TAB_SIZE, " ", f->name);
348 353  
... ... @@ -357,7 +362,8 @@
357 362 }
358 363  
359 364 /****************************************************************************/
360   -static int decode_bitstr(bitstr_t *bs, field_t *f, char *base, int level)
  365 +static int decode_bitstr(bitstr_t *bs, const struct field_t *f,
  366 + char *base, int level)
361 367 {
362 368 unsigned int len;
363 369  
... ... @@ -390,7 +396,8 @@
390 396 }
391 397  
392 398 /****************************************************************************/
393   -static int decode_numstr(bitstr_t *bs, field_t *f, char *base, int level)
  399 +static int decode_numstr(bitstr_t *bs, const struct field_t *f,
  400 + char *base, int level)
394 401 {
395 402 unsigned int len;
396 403  
... ... @@ -407,7 +414,8 @@
407 414 }
408 415  
409 416 /****************************************************************************/
410   -static int decode_octstr(bitstr_t *bs, field_t *f, char *base, int level)
  417 +static int decode_octstr(bitstr_t *bs, const struct field_t *f,
  418 + char *base, int level)
411 419 {
412 420 unsigned int len;
413 421  
... ... @@ -455,7 +463,8 @@
455 463 }
456 464  
457 465 /****************************************************************************/
458   -static int decode_bmpstr(bitstr_t *bs, field_t *f, char *base, int level)
  466 +static int decode_bmpstr(bitstr_t *bs, const struct field_t *f,
  467 + char *base, int level)
459 468 {
460 469 unsigned int len;
461 470  
462 471  
... ... @@ -480,11 +489,12 @@
480 489 }
481 490  
482 491 /****************************************************************************/
483   -static int decode_seq(bitstr_t *bs, field_t *f, char *base, int level)
  492 +static int decode_seq(bitstr_t *bs, const struct field_t *f,
  493 + char *base, int level)
484 494 {
485 495 unsigned int ext, bmp, i, opt, len = 0, bmp2, bmp2_len;
486 496 int err;
487   - field_t *son;
  497 + const struct field_t *son;
488 498 unsigned char *beg = NULL;
489 499  
490 500 PRINT("%*.s%s\n", level * TAB_SIZE, " ", f->name);
491 501  
... ... @@ -596,11 +606,12 @@
596 606 }
597 607  
598 608 /****************************************************************************/
599   -static int decode_seqof(bitstr_t *bs, field_t *f, char *base, int level)
  609 +static int decode_seqof(bitstr_t *bs, const struct field_t *f,
  610 + char *base, int level)
600 611 {
601 612 unsigned int count, effective_count = 0, i, len = 0;
602 613 int err;
603   - field_t *son;
  614 + const struct field_t *son;
604 615 unsigned char *beg = NULL;
605 616  
606 617 PRINT("%*.s%s\n", level * TAB_SIZE, " ", f->name);
607 618  
... ... @@ -685,11 +696,12 @@
685 696  
686 697  
687 698 /****************************************************************************/
688   -static int decode_choice(bitstr_t *bs, field_t *f, char *base, int level)
  699 +static int decode_choice(bitstr_t *bs, const struct field_t *f,
  700 + char *base, int level)
689 701 {
690 702 unsigned int type, ext, len = 0;
691 703 int err;
692   - field_t *son;
  704 + const struct field_t *son;
693 705 unsigned char *beg = NULL;
694 706  
695 707 PRINT("%*.s%s\n", level * TAB_SIZE, " ", f->name);
... ... @@ -756,7 +768,7 @@
756 768 /****************************************************************************/
757 769 int DecodeRasMessage(unsigned char *buf, size_t sz, RasMessage *ras)
758 770 {
759   - static field_t ras_message = {
  771 + static const struct field_t ras_message = {
760 772 FNAME("RasMessage") CHOICE, 5, 24, 32, DECODE | EXT,
761 773 0, _RasMessage
762 774 };
... ... @@ -773,7 +785,7 @@
773 785 static int DecodeH323_UserInformation(unsigned char *buf, unsigned char *beg,
774 786 size_t sz, H323_UserInformation *uuie)
775 787 {
776   - static field_t h323_userinformation = {
  788 + static const struct field_t h323_userinformation = {
777 789 FNAME("H323-UserInformation") SEQ, 1, 2, 2, DECODE | EXT,
778 790 0, _H323_UserInformation
779 791 };
... ... @@ -792,7 +804,7 @@
792 804 MultimediaSystemControlMessage *
793 805 mscm)
794 806 {
795   - static field_t multimediasystemcontrolmessage = {
  807 + static const struct field_t multimediasystemcontrolmessage = {
796 808 FNAME("MultimediaSystemControlMessage") CHOICE, 2, 4, 4,
797 809 DECODE | EXT, 0, _MultimediaSystemControlMessage
798 810 };
net/netfilter/nf_conntrack_h323_main.c
... ... @@ -114,7 +114,8 @@
114 114 {
115 115 struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
116 116 int dir = CTINFO2DIR(ctinfo);
117   - struct tcphdr _tcph, *th;
  117 + const struct tcphdr *th;
  118 + struct tcphdr _tcph;
118 119 int tcpdatalen;
119 120 int tcpdataoff;
120 121 unsigned char *tpkt;
121 122  
... ... @@ -212,11 +213,11 @@
212 213 }
213 214  
214 215 /****************************************************************************/
215   -static int get_h245_addr(struct nf_conn *ct, unsigned char *data,
  216 +static int get_h245_addr(struct nf_conn *ct, const unsigned char *data,
216 217 H245_TransportAddress *taddr,
217 218 union nf_inet_addr *addr, __be16 *port)
218 219 {
219   - unsigned char *p;
  220 + const unsigned char *p;
220 221 int family = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.l3num;
221 222 int len;
222 223  
... ... @@ -625,7 +626,7 @@
625 626 TransportAddress *taddr,
626 627 union nf_inet_addr *addr, __be16 *port)
627 628 {
628   - unsigned char *p;
  629 + const unsigned char *p;
629 630 int family = ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.l3num;
630 631 int len;
631 632  
... ... @@ -704,9 +705,8 @@
704 705  
705 706 /* If the calling party is on the same side of the forward-to party,
706 707 * we don't need to track the second call */
707   -static int callforward_do_filter(union nf_inet_addr *src,
708   - union nf_inet_addr *dst,
709   - int family)
  708 +static int callforward_do_filter(const union nf_inet_addr *src,
  709 + const union nf_inet_addr *dst, int family)
710 710 {
711 711 const struct nf_afinfo *afinfo;
712 712 struct flowi fl1, fl2;
... ... @@ -1185,7 +1185,8 @@
1185 1185 static unsigned char *get_udp_data(struct sk_buff *skb, unsigned int protoff,
1186 1186 int *datalen)
1187 1187 {
1188   - struct udphdr _uh, *uh;
  1188 + const struct udphdr *uh;
  1189 + struct udphdr _uh;
1189 1190 int dataoff;
1190 1191  
1191 1192 uh = skb_header_pointer(skb, protoff, sizeof(_uh), &_uh);
... ... @@ -1468,7 +1469,7 @@
1468 1469 enum ip_conntrack_info ctinfo,
1469 1470 unsigned char **data, AdmissionRequest *arq)
1470 1471 {
1471   - struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
  1472 + const struct nf_ct_h323_master *info = &nfct_help(ct)->help.ct_h323_info;
1472 1473 int dir = CTINFO2DIR(ctinfo);
1473 1474 __be16 port;
1474 1475 union nf_inet_addr addr;
net/netfilter/nf_conntrack_h323_types.c
Changes suppressed. Click to show
... ... @@ -5,22 +5,22 @@
5 5 * This source code is licensed under General Public License version 2.
6 6 */
7 7  
8   -static field_t _TransportAddress_ipAddress[] = { /* SEQUENCE */
  8 +static const struct field_t _TransportAddress_ipAddress[] = { /* SEQUENCE */
9 9 {FNAME("ip") OCTSTR, FIXD, 4, 0, DECODE,
10 10 offsetof(TransportAddress_ipAddress, ip), NULL},
11 11 {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
12 12 };
13 13  
14   -static field_t _TransportAddress_ipSourceRoute_route[] = { /* SEQUENCE OF */
  14 +static const struct field_t _TransportAddress_ipSourceRoute_route[] = { /* SEQUENCE OF */
15 15 {FNAME("item") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
16 16 };
17 17  
18   -static field_t _TransportAddress_ipSourceRoute_routing[] = { /* CHOICE */
  18 +static const struct field_t _TransportAddress_ipSourceRoute_routing[] = { /* CHOICE */
19 19 {FNAME("strict") NUL, FIXD, 0, 0, SKIP, 0, NULL},
20 20 {FNAME("loose") NUL, FIXD, 0, 0, SKIP, 0, NULL},
21 21 };
22 22  
23   -static field_t _TransportAddress_ipSourceRoute[] = { /* SEQUENCE */
  23 +static const struct field_t _TransportAddress_ipSourceRoute[] = { /* SEQUENCE */
24 24 {FNAME("ip") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
25 25 {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
26 26 {FNAME("route") SEQOF, SEMI, 0, 0, SKIP, 0,
27 27  
28 28  
29 29  
30 30  
31 31  
... ... @@ -29,37 +29,37 @@
29 29 _TransportAddress_ipSourceRoute_routing},
30 30 };
31 31  
32   -static field_t _TransportAddress_ipxAddress[] = { /* SEQUENCE */
  32 +static const struct field_t _TransportAddress_ipxAddress[] = { /* SEQUENCE */
33 33 {FNAME("node") OCTSTR, FIXD, 6, 0, SKIP, 0, NULL},
34 34 {FNAME("netnum") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
35 35 {FNAME("port") OCTSTR, FIXD, 2, 0, SKIP, 0, NULL},
36 36 };
37 37  
38   -static field_t _TransportAddress_ip6Address[] = { /* SEQUENCE */
  38 +static const struct field_t _TransportAddress_ip6Address[] = { /* SEQUENCE */
39 39 {FNAME("ip") OCTSTR, FIXD, 16, 0, DECODE,
40 40 offsetof(TransportAddress_ip6Address, ip), NULL},
41 41 {FNAME("port") INT, WORD, 0, 0, SKIP, 0, NULL},
42 42 };
43 43  
44   -static field_t _H221NonStandard[] = { /* SEQUENCE */
  44 +static const struct field_t _H221NonStandard[] = { /* SEQUENCE */
45 45 {FNAME("t35CountryCode") INT, BYTE, 0, 0, SKIP, 0, NULL},
46 46 {FNAME("t35Extension") INT, BYTE, 0, 0, SKIP, 0, NULL},
47 47 {FNAME("manufacturerCode") INT, WORD, 0, 0, SKIP, 0, NULL},
48 48 };
49 49  
50   -static field_t _NonStandardIdentifier[] = { /* CHOICE */
  50 +static const struct field_t _NonStandardIdentifier[] = { /* CHOICE */
51 51 {FNAME("object") OID, BYTE, 0, 0, SKIP, 0, NULL},
52 52 {FNAME("h221NonStandard") SEQ, 0, 3, 3, SKIP | EXT, 0,
53 53 _H221NonStandard},
54 54 };
55 55  
56   -static field_t _NonStandardParameter[] = { /* SEQUENCE */
  56 +static const struct field_t _NonStandardParameter[] = { /* SEQUENCE */
57 57 {FNAME("nonStandardIdentifier") CHOICE, 1, 2, 2, SKIP | EXT, 0,
58 58 _NonStandardIdentifier},
59 59 {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
60 60 };
61 61  
62   -static field_t _TransportAddress[] = { /* CHOICE */
  62 +static const struct field_t _TransportAddress[] = { /* CHOICE */
63 63 {FNAME("ipAddress") SEQ, 0, 2, 2, DECODE,
64 64 offsetof(TransportAddress, ipAddress), _TransportAddress_ipAddress},
65 65 {FNAME("ipSourceRoute") SEQ, 0, 4, 4, SKIP | EXT, 0,
... ... @@ -75,7 +75,7 @@
75 75 _NonStandardParameter},
76 76 };
77 77  
78   -static field_t _AliasAddress[] = { /* CHOICE */
  78 +static const struct field_t _AliasAddress[] = { /* CHOICE */
79 79 {FNAME("dialedDigits") NUMDGT, 7, 1, 0, SKIP, 0, NULL},
80 80 {FNAME("h323-ID") BMPSTR, BYTE, 1, 0, SKIP, 0, NULL},
81 81 {FNAME("url-ID") IA5STR, WORD, 1, 0, SKIP, 0, NULL},
82 82  
83 83  
84 84  
85 85  
86 86  
87 87  
88 88  
89 89  
90 90  
91 91  
92 92  
... ... @@ -85,78 +85,78 @@
85 85 {FNAME("mobileUIM") CHOICE, 1, 2, 2, SKIP | EXT, 0, NULL},
86 86 };
87 87  
88   -static field_t _Setup_UUIE_sourceAddress[] = { /* SEQUENCE OF */
  88 +static const struct field_t _Setup_UUIE_sourceAddress[] = { /* SEQUENCE OF */
89 89 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
90 90 };
91 91  
92   -static field_t _VendorIdentifier[] = { /* SEQUENCE */
  92 +static const struct field_t _VendorIdentifier[] = { /* SEQUENCE */
93 93 {FNAME("vendor") SEQ, 0, 3, 3, SKIP | EXT, 0, _H221NonStandard},
94 94 {FNAME("productId") OCTSTR, BYTE, 1, 0, SKIP | OPT, 0, NULL},
95 95 {FNAME("versionId") OCTSTR, BYTE, 1, 0, SKIP | OPT, 0, NULL},
96 96 };
97 97  
98   -static field_t _GatekeeperInfo[] = { /* SEQUENCE */
  98 +static const struct field_t _GatekeeperInfo[] = { /* SEQUENCE */
99 99 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
100 100 _NonStandardParameter},
101 101 };
102 102  
103   -static field_t _H310Caps[] = { /* SEQUENCE */
  103 +static const struct field_t _H310Caps[] = { /* SEQUENCE */
104 104 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
105 105 _NonStandardParameter},
106 106 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
107 107 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
108 108 };
109 109  
110   -static field_t _H320Caps[] = { /* SEQUENCE */
  110 +static const struct field_t _H320Caps[] = { /* SEQUENCE */
111 111 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
112 112 _NonStandardParameter},
113 113 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
114 114 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
115 115 };
116 116  
117   -static field_t _H321Caps[] = { /* SEQUENCE */
  117 +static const struct field_t _H321Caps[] = { /* SEQUENCE */
118 118 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
119 119 _NonStandardParameter},
120 120 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
121 121 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
122 122 };
123 123  
124   -static field_t _H322Caps[] = { /* SEQUENCE */
  124 +static const struct field_t _H322Caps[] = { /* SEQUENCE */
125 125 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
126 126 _NonStandardParameter},
127 127 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
128 128 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
129 129 };
130 130  
131   -static field_t _H323Caps[] = { /* SEQUENCE */
  131 +static const struct field_t _H323Caps[] = { /* SEQUENCE */
132 132 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
133 133 _NonStandardParameter},
134 134 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
135 135 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
136 136 };
137 137  
138   -static field_t _H324Caps[] = { /* SEQUENCE */
  138 +static const struct field_t _H324Caps[] = { /* SEQUENCE */
139 139 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
140 140 _NonStandardParameter},
141 141 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
142 142 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
143 143 };
144 144  
145   -static field_t _VoiceCaps[] = { /* SEQUENCE */
  145 +static const struct field_t _VoiceCaps[] = { /* SEQUENCE */
146 146 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
147 147 _NonStandardParameter},
148 148 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
149 149 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
150 150 };
151 151  
152   -static field_t _T120OnlyCaps[] = { /* SEQUENCE */
  152 +static const struct field_t _T120OnlyCaps[] = { /* SEQUENCE */
153 153 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
154 154 _NonStandardParameter},
155 155 {FNAME("dataRatesSupported") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
156 156 {FNAME("supportedPrefixes") SEQOF, SEMI, 0, 0, SKIP, 0, NULL},
157 157 };
158 158  
159   -static field_t _SupportedProtocols[] = { /* CHOICE */
  159 +static const struct field_t _SupportedProtocols[] = { /* CHOICE */
160 160 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP, 0,
161 161 _NonStandardParameter},
162 162 {FNAME("h310") SEQ, 1, 1, 3, SKIP | EXT, 0, _H310Caps},
163 163  
164 164  
165 165  
166 166  
... ... @@ -171,29 +171,29 @@
171 171 {FNAME("t38FaxAnnexbOnly") SEQ, 2, 5, 5, SKIP | EXT, 0, NULL},
172 172 };
173 173  
174   -static field_t _GatewayInfo_protocol[] = { /* SEQUENCE OF */
  174 +static const struct field_t _GatewayInfo_protocol[] = { /* SEQUENCE OF */
175 175 {FNAME("item") CHOICE, 4, 9, 11, SKIP | EXT, 0, _SupportedProtocols},
176 176 };
177 177  
178   -static field_t _GatewayInfo[] = { /* SEQUENCE */
  178 +static const struct field_t _GatewayInfo[] = { /* SEQUENCE */
179 179 {FNAME("protocol") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
180 180 _GatewayInfo_protocol},
181 181 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
182 182 _NonStandardParameter},
183 183 };
184 184  
185   -static field_t _McuInfo[] = { /* SEQUENCE */
  185 +static const struct field_t _McuInfo[] = { /* SEQUENCE */
186 186 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
187 187 _NonStandardParameter},
188 188 {FNAME("protocol") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
189 189 };
190 190  
191   -static field_t _TerminalInfo[] = { /* SEQUENCE */
  191 +static const struct field_t _TerminalInfo[] = { /* SEQUENCE */
192 192 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
193 193 _NonStandardParameter},
194 194 };
195 195  
196   -static field_t _EndpointType[] = { /* SEQUENCE */
  196 +static const struct field_t _EndpointType[] = { /* SEQUENCE */
197 197 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
198 198 _NonStandardParameter},
199 199 {FNAME("vendor") SEQ, 2, 3, 3, SKIP | EXT | OPT, 0,
200 200  
201 201  
202 202  
... ... @@ -210,19 +210,19 @@
210 210 0, NULL},
211 211 };
212 212  
213   -static field_t _Setup_UUIE_destinationAddress[] = { /* SEQUENCE OF */
  213 +static const struct field_t _Setup_UUIE_destinationAddress[] = { /* SEQUENCE OF */
214 214 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
215 215 };
216 216  
217   -static field_t _Setup_UUIE_destExtraCallInfo[] = { /* SEQUENCE OF */
  217 +static const struct field_t _Setup_UUIE_destExtraCallInfo[] = { /* SEQUENCE OF */
218 218 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
219 219 };
220 220  
221   -static field_t _Setup_UUIE_destExtraCRV[] = { /* SEQUENCE OF */
  221 +static const struct field_t _Setup_UUIE_destExtraCRV[] = { /* SEQUENCE OF */
222 222 {FNAME("item") INT, WORD, 0, 0, SKIP, 0, NULL},
223 223 };
224 224  
225   -static field_t _Setup_UUIE_conferenceGoal[] = { /* CHOICE */
  225 +static const struct field_t _Setup_UUIE_conferenceGoal[] = { /* CHOICE */
226 226 {FNAME("create") NUL, FIXD, 0, 0, SKIP, 0, NULL},
227 227 {FNAME("join") NUL, FIXD, 0, 0, SKIP, 0, NULL},
228 228 {FNAME("invite") NUL, FIXD, 0, 0, SKIP, 0, NULL},
229 229  
... ... @@ -231,12 +231,12 @@
231 231 0, NULL},
232 232 };
233 233  
234   -static field_t _Q954Details[] = { /* SEQUENCE */
  234 +static const struct field_t _Q954Details[] = { /* SEQUENCE */
235 235 {FNAME("conferenceCalling") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
236 236 {FNAME("threePartyService") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
237 237 };
238 238  
239   -static field_t _QseriesOptions[] = { /* SEQUENCE */
  239 +static const struct field_t _QseriesOptions[] = { /* SEQUENCE */
240 240 {FNAME("q932Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
241 241 {FNAME("q951Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
242 242 {FNAME("q952Full") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
243 243  
244 244  
245 245  
246 246  
... ... @@ -247,32 +247,32 @@
247 247 {FNAME("q954Info") SEQ, 0, 2, 2, SKIP | EXT, 0, _Q954Details},
248 248 };
249 249  
250   -static field_t _CallType[] = { /* CHOICE */
  250 +static const struct field_t _CallType[] = { /* CHOICE */
251 251 {FNAME("pointToPoint") NUL, FIXD, 0, 0, SKIP, 0, NULL},
252 252 {FNAME("oneToN") NUL, FIXD, 0, 0, SKIP, 0, NULL},
253 253 {FNAME("nToOne") NUL, FIXD, 0, 0, SKIP, 0, NULL},
254 254 {FNAME("nToN") NUL, FIXD, 0, 0, SKIP, 0, NULL},
255 255 };
256 256  
257   -static field_t _H245_NonStandardIdentifier_h221NonStandard[] = { /* SEQUENCE */
  257 +static const struct field_t _H245_NonStandardIdentifier_h221NonStandard[] = { /* SEQUENCE */
258 258 {FNAME("t35CountryCode") INT, BYTE, 0, 0, SKIP, 0, NULL},
259 259 {FNAME("t35Extension") INT, BYTE, 0, 0, SKIP, 0, NULL},
260 260 {FNAME("manufacturerCode") INT, WORD, 0, 0, SKIP, 0, NULL},
261 261 };
262 262  
263   -static field_t _H245_NonStandardIdentifier[] = { /* CHOICE */
  263 +static const struct field_t _H245_NonStandardIdentifier[] = { /* CHOICE */
264 264 {FNAME("object") OID, BYTE, 0, 0, SKIP, 0, NULL},
265 265 {FNAME("h221NonStandard") SEQ, 0, 3, 3, SKIP, 0,
266 266 _H245_NonStandardIdentifier_h221NonStandard},
267 267 };
268 268  
269   -static field_t _H245_NonStandardParameter[] = { /* SEQUENCE */
  269 +static const struct field_t _H245_NonStandardParameter[] = { /* SEQUENCE */
270 270 {FNAME("nonStandardIdentifier") CHOICE, 1, 2, 2, SKIP, 0,
271 271 _H245_NonStandardIdentifier},
272 272 {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
273 273 };
274 274  
275   -static field_t _H261VideoCapability[] = { /* SEQUENCE */
  275 +static const struct field_t _H261VideoCapability[] = { /* SEQUENCE */
276 276 {FNAME("qcifMPI") INT, 2, 1, 0, SKIP | OPT, 0, NULL},
277 277 {FNAME("cifMPI") INT, 2, 1, 0, SKIP | OPT, 0, NULL},
278 278 {FNAME("temporalSpatialTradeOffCapability") BOOL, FIXD, 0, 0, SKIP, 0,
... ... @@ -282,7 +282,7 @@
282 282 {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
283 283 };
284 284  
285   -static field_t _H262VideoCapability[] = { /* SEQUENCE */
  285 +static const struct field_t _H262VideoCapability[] = { /* SEQUENCE */
286 286 {FNAME("profileAndLevel-SPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
287 287 {FNAME("profileAndLevel-MPatLL") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
288 288 {FNAME("profileAndLevel-MPatML") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
... ... @@ -304,7 +304,7 @@
304 304 {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
305 305 };
306 306  
307   -static field_t _H263VideoCapability[] = { /* SEQUENCE */
  307 +static const struct field_t _H263VideoCapability[] = { /* SEQUENCE */
308 308 {FNAME("sqcifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
309 309 {FNAME("qcifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
310 310 {FNAME("cifMPI") INT, 5, 1, 0, SKIP | OPT, 0, NULL},
... ... @@ -330,7 +330,7 @@
330 330 {FNAME("h263Options") SEQ, 5, 29, 31, SKIP | EXT | OPT, 0, NULL},
331 331 };
332 332  
333   -static field_t _IS11172VideoCapability[] = { /* SEQUENCE */
  333 +static const struct field_t _IS11172VideoCapability[] = { /* SEQUENCE */
334 334 {FNAME("constrainedBitstream") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
335 335 {FNAME("videoBitRate") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
336 336 {FNAME("vbvBufferSize") INT, CONS, 0, 0, SKIP | OPT, 0, NULL},
... ... @@ -341,7 +341,7 @@
341 341 {FNAME("videoBadMBsCap") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
342 342 };
343 343  
344   -static field_t _VideoCapability[] = { /* CHOICE */
  344 +static const struct field_t _VideoCapability[] = { /* CHOICE */
345 345 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
346 346 _H245_NonStandardParameter},
347 347 {FNAME("h261VideoCapability") SEQ, 2, 5, 6, SKIP | EXT, 0,
348 348  
... ... @@ -355,12 +355,12 @@
355 355 {FNAME("genericVideoCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
356 356 };
357 357  
358   -static field_t _AudioCapability_g7231[] = { /* SEQUENCE */
  358 +static const struct field_t _AudioCapability_g7231[] = { /* SEQUENCE */
359 359 {FNAME("maxAl-sduAudioFrames") INT, BYTE, 1, 0, SKIP, 0, NULL},
360 360 {FNAME("silenceSuppression") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
361 361 };
362 362  
363   -static field_t _IS11172AudioCapability[] = { /* SEQUENCE */
  363 +static const struct field_t _IS11172AudioCapability[] = { /* SEQUENCE */
364 364 {FNAME("audioLayer1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
365 365 {FNAME("audioLayer2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
366 366 {FNAME("audioLayer3") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
... ... @@ -372,7 +372,7 @@
372 372 {FNAME("bitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
373 373 };
374 374  
375   -static field_t _IS13818AudioCapability[] = { /* SEQUENCE */
  375 +static const struct field_t _IS13818AudioCapability[] = { /* SEQUENCE */
376 376 {FNAME("audioLayer1") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
377 377 {FNAME("audioLayer2") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
378 378 {FNAME("audioLayer3") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
... ... @@ -396,7 +396,7 @@
396 396 {FNAME("bitRate") INT, WORD, 1, 0, SKIP, 0, NULL},
397 397 };
398 398  
399   -static field_t _AudioCapability[] = { /* CHOICE */
  399 +static const struct field_t _AudioCapability[] = { /* CHOICE */
400 400 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
401 401 _H245_NonStandardParameter},
402 402 {FNAME("g711Alaw64k") INT, BYTE, 1, 0, SKIP, 0, NULL},
... ... @@ -424,7 +424,7 @@
424 424 {FNAME("g729Extensions") SEQ, 1, 8, 8, SKIP | EXT, 0, NULL},
425 425 };
426 426  
427   -static field_t _DataProtocolCapability[] = { /* CHOICE */
  427 +static const struct field_t _DataProtocolCapability[] = { /* CHOICE */
428 428 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
429 429 _H245_NonStandardParameter},
430 430 {FNAME("v14buffered") NUL, FIXD, 0, 0, SKIP, 0, NULL},
... ... @@ -442,7 +442,7 @@
442 442 {FNAME("udp") NUL, FIXD, 0, 0, SKIP, 0, NULL},
443 443 };
444 444  
445   -static field_t _T84Profile_t84Restricted[] = { /* SEQUENCE */
  445 +static const struct field_t _T84Profile_t84Restricted[] = { /* SEQUENCE */
446 446 {FNAME("qcif") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
447 447 {FNAME("cif") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
448 448 {FNAME("ccir601Seq") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
449 449  
450 450  
451 451  
... ... @@ -464,25 +464,25 @@
464 464 {FNAME("digPhotoHighProg") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
465 465 };
466 466  
467   -static field_t _T84Profile[] = { /* CHOICE */
  467 +static const struct field_t _T84Profile[] = { /* CHOICE */
468 468 {FNAME("t84Unrestricted") NUL, FIXD, 0, 0, SKIP, 0, NULL},
469 469 {FNAME("t84Restricted") SEQ, 0, 19, 19, SKIP | EXT, 0,
470 470 _T84Profile_t84Restricted},
471 471 };
472 472  
473   -static field_t _DataApplicationCapability_application_t84[] = { /* SEQUENCE */
  473 +static const struct field_t _DataApplicationCapability_application_t84[] = { /* SEQUENCE */
474 474 {FNAME("t84Protocol") CHOICE, 3, 7, 14, SKIP | EXT, 0,
475 475 _DataProtocolCapability},
476 476 {FNAME("t84Profile") CHOICE, 1, 2, 2, SKIP, 0, _T84Profile},
477 477 };
478 478  
479   -static field_t _DataApplicationCapability_application_nlpid[] = { /* SEQUENCE */
  479 +static const struct field_t _DataApplicationCapability_application_nlpid[] = { /* SEQUENCE */
480 480 {FNAME("nlpidProtocol") CHOICE, 3, 7, 14, SKIP | EXT, 0,
481 481 _DataProtocolCapability},
482 482 {FNAME("nlpidData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
483 483 };
484 484  
485   -static field_t _DataApplicationCapability_application[] = { /* CHOICE */
  485 +static const struct field_t _DataApplicationCapability_application[] = { /* CHOICE */
486 486 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
487 487 _H245_NonStandardParameter},
488 488 {FNAME("t120") CHOICE, 3, 7, 14, DECODE | EXT,
489 489  
490 490  
... ... @@ -509,20 +509,20 @@
509 509 {FNAME("genericDataCapability") SEQ, 5, 6, 6, SKIP | EXT, 0, NULL},
510 510 };
511 511  
512   -static field_t _DataApplicationCapability[] = { /* SEQUENCE */
  512 +static const struct field_t _DataApplicationCapability[] = { /* SEQUENCE */
513 513 {FNAME("application") CHOICE, 4, 10, 14, DECODE | EXT,
514 514 offsetof(DataApplicationCapability, application),
515 515 _DataApplicationCapability_application},
516 516 {FNAME("maxBitRate") INT, CONS, 0, 0, SKIP, 0, NULL},
517 517 };
518 518  
519   -static field_t _EncryptionMode[] = { /* CHOICE */
  519 +static const struct field_t _EncryptionMode[] = { /* CHOICE */
520 520 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
521 521 _H245_NonStandardParameter},
522 522 {FNAME("h233Encryption") NUL, FIXD, 0, 0, SKIP, 0, NULL},
523 523 };
524 524  
525   -static field_t _DataType[] = { /* CHOICE */
  525 +static const struct field_t _DataType[] = { /* CHOICE */
526 526 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
527 527 _H245_NonStandardParameter},
528 528 {FNAME("nullData") NUL, FIXD, 0, 0, SKIP, 0, NULL},
... ... @@ -538,7 +538,7 @@
538 538 {FNAME("multiplexedStream") SEQ, 0, 2, 2, SKIP | EXT, 0, NULL},
539 539 };
540 540  
541   -static field_t _H222LogicalChannelParameters[] = { /* SEQUENCE */
  541 +static const struct field_t _H222LogicalChannelParameters[] = { /* SEQUENCE */
542 542 {FNAME("resourceID") INT, WORD, 0, 0, SKIP, 0, NULL},
543 543 {FNAME("subChannelID") INT, WORD, 0, 0, SKIP, 0, NULL},
544 544 {FNAME("pcr-pid") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
545 545  
... ... @@ -546,12 +546,12 @@
546 546 {FNAME("streamDescriptors") OCTSTR, SEMI, 0, 0, SKIP | OPT, 0, NULL},
547 547 };
548 548  
549   -static field_t _H223LogicalChannelParameters_adaptationLayerType_al3[] = { /* SEQUENCE */
  549 +static const struct field_t _H223LogicalChannelParameters_adaptationLayerType_al3[] = { /* SEQUENCE */
550 550 {FNAME("controlFieldOctets") INT, 2, 0, 0, SKIP, 0, NULL},
551 551 {FNAME("sendBufferSize") INT, CONS, 0, 0, SKIP, 0, NULL},
552 552 };
553 553  
554   -static field_t _H223LogicalChannelParameters_adaptationLayerType[] = { /* CHOICE */
  554 +static const struct field_t _H223LogicalChannelParameters_adaptationLayerType[] = { /* CHOICE */
555 555 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0,
556 556 _H245_NonStandardParameter},
557 557 {FNAME("al1Framed") NUL, FIXD, 0, 0, SKIP, 0, NULL},
558 558  
559 559  
560 560  
561 561  
562 562  
563 563  
564 564  
565 565  
... ... @@ -565,53 +565,53 @@
565 565 {FNAME("al3M") SEQ, 0, 5, 6, SKIP | EXT, 0, NULL},
566 566 };
567 567  
568   -static field_t _H223LogicalChannelParameters[] = { /* SEQUENCE */
  568 +static const struct field_t _H223LogicalChannelParameters[] = { /* SEQUENCE */
569 569 {FNAME("adaptationLayerType") CHOICE, 3, 6, 9, SKIP | EXT, 0,
570 570 _H223LogicalChannelParameters_adaptationLayerType},
571 571 {FNAME("segmentableFlag") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
572 572 };
573 573  
574   -static field_t _CRCLength[] = { /* CHOICE */
  574 +static const struct field_t _CRCLength[] = { /* CHOICE */
575 575 {FNAME("crc8bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
576 576 {FNAME("crc16bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
577 577 {FNAME("crc32bit") NUL, FIXD, 0, 0, SKIP, 0, NULL},
578 578 };
579 579  
580   -static field_t _V76HDLCParameters[] = { /* SEQUENCE */
  580 +static const struct field_t _V76HDLCParameters[] = { /* SEQUENCE */
581 581 {FNAME("crcLength") CHOICE, 2, 3, 3, SKIP | EXT, 0, _CRCLength},
582 582 {FNAME("n401") INT, WORD, 1, 0, SKIP, 0, NULL},
583 583 {FNAME("loopbackTestProcedure") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
584 584 };
585 585  
586   -static field_t _V76LogicalChannelParameters_suspendResume[] = { /* CHOICE */
  586 +static const struct field_t _V76LogicalChannelParameters_suspendResume[] = { /* CHOICE */
587 587 {FNAME("noSuspendResume") NUL, FIXD, 0, 0, SKIP, 0, NULL},
588 588 {FNAME("suspendResumewAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
589 589 {FNAME("suspendResumewoAddress") NUL, FIXD, 0, 0, SKIP, 0, NULL},
590 590 };
591 591  
592   -static field_t _V76LogicalChannelParameters_mode_eRM_recovery[] = { /* CHOICE */
  592 +static const struct field_t _V76LogicalChannelParameters_mode_eRM_recovery[] = { /* CHOICE */
593 593 {FNAME("rej") NUL, FIXD, 0, 0, SKIP, 0, NULL},
594 594 {FNAME("sREJ") NUL, FIXD, 0, 0, SKIP, 0, NULL},
595 595 {FNAME("mSREJ") NUL, FIXD, 0, 0, SKIP, 0, NULL},
596 596 };
597 597  
598   -static field_t _V76LogicalChannelParameters_mode_eRM[] = { /* SEQUENCE */
  598 +static const struct field_t _V76LogicalChannelParameters_mode_eRM[] = { /* SEQUENCE */
599 599 {FNAME("windowSize") INT, 7, 1, 0, SKIP, 0, NULL},
600 600 {FNAME("recovery") CHOICE, 2, 3, 3, SKIP | EXT, 0,
601 601 _V76LogicalChannelParameters_mode_eRM_recovery},
602 602 };
603 603  
604   -static field_t _V76LogicalChannelParameters_mode[] = { /* CHOICE */
  604 +static const struct field_t _V76LogicalChannelParameters_mode[] = { /* CHOICE */
605 605 {FNAME("eRM") SEQ, 0, 2, 2, SKIP | EXT, 0,
606 606 _V76LogicalChannelParameters_mode_eRM},
607 607 {FNAME("uNERM") NUL, FIXD, 0, 0, SKIP, 0, NULL},
608 608 };
609 609  
610   -static field_t _V75Parameters[] = { /* SEQUENCE */
  610 +static const struct field_t _V75Parameters[] = { /* SEQUENCE */
611 611 {FNAME("audioHeaderPresent") BOOL, FIXD, 0, 0, SKIP, 0, NULL},
612 612 };
613 613  
614   -static field_t _V76LogicalChannelParameters[] = { /* SEQUENCE */
  614 +static const struct field_t _V76LogicalChannelParameters[] = { /* SEQUENCE */
615 615 {FNAME("hdlcParameters") SEQ, 0, 3, 3, SKIP | EXT, 0,
616 616 _V76HDLCParameters},
617 617 {FNAME("suspendResume") CHOICE, 2, 3, 3, SKIP | EXT, 0,
618 618  
619 619  
620 620  
621 621  
622 622  
623 623  
... ... @@ -622,38 +622,38 @@
622 622 {FNAME("v75Parameters") SEQ, 0, 1, 1, SKIP | EXT, 0, _V75Parameters},
623 623 };
624 624  
625   -static field_t _H2250LogicalChannelParameters_nonStandard[] = { /* SEQUENCE OF */
  625 +static const struct field_t _H2250LogicalChannelParameters_nonStandard[] = { /* SEQUENCE OF */
626 626 {FNAME("item") SEQ, 0, 2, 2, SKIP, 0, _H245_NonStandardParameter},
627 627 };
628 628  
629   -static field_t _UnicastAddress_iPAddress[] = { /* SEQUENCE */
  629 +static const struct field_t _UnicastAddress_iPAddress[] = { /* SEQUENCE */
630 630 {FNAME("network") OCTSTR, FIXD, 4, 0, DECODE,
631 631 offsetof(UnicastAddress_iPAddress, network), NULL},
632 632 {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
633 633 };
634 634  
635   -static field_t _UnicastAddress_iPXAddress[] = { /* SEQUENCE */
  635 +static const struct field_t _UnicastAddress_iPXAddress[] = { /* SEQUENCE */
636 636 {FNAME("node") OCTSTR, FIXD, 6, 0, SKIP, 0, NULL},
637 637 {FNAME("netnum") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
638 638 {FNAME("tsapIdentifier") OCTSTR, FIXD, 2, 0, SKIP, 0, NULL},
639 639 };
640 640  
641   -static field_t _UnicastAddress_iP6Address[] = { /* SEQUENCE */
  641 +static const struct field_t _UnicastAddress_iP6Address[] = { /* SEQUENCE */
642 642 {FNAME("network") OCTSTR, FIXD, 16, 0, DECODE,
643 643 offsetof(UnicastAddress_iP6Address, network), NULL},
644 644 {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
645 645 };
646 646  
647   -static field_t _UnicastAddress_iPSourceRouteAddress_routing[] = { /* CHOICE */
  647 +static const struct field_t _UnicastAddress_iPSourceRouteAddress_routing[] = { /* CHOICE */
648 648 {FNAME("strict") NUL, FIXD, 0, 0, SKIP, 0, NULL},
649 649 {FNAME("loose") NUL, FIXD, 0, 0, SKIP, 0, NULL},
650 650 };
651 651  
652   -static field_t _UnicastAddress_iPSourceRouteAddress_route[] = { /* SEQUENCE OF */
  652 +static const struct field_t _UnicastAddress_iPSourceRouteAddress_route[] = { /* SEQUENCE OF */
653 653 {FNAME("item") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
654 654 };
655 655  
656   -static field_t _UnicastAddress_iPSourceRouteAddress[] = { /* SEQUENCE */
  656 +static const struct field_t _UnicastAddress_iPSourceRouteAddress[] = { /* SEQUENCE */
657 657 {FNAME("routing") CHOICE, 1, 2, 2, SKIP, 0,
658 658 _UnicastAddress_iPSourceRouteAddress_routing},
659 659 {FNAME("network") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
... ... @@ -662,7 +662,7 @@
662 662 _UnicastAddress_iPSourceRouteAddress_route},
663 663 };
664 664  
665   -static field_t _UnicastAddress[] = { /* CHOICE */
  665 +static const struct field_t _UnicastAddress[] = { /* CHOICE */
666 666 {FNAME("iPAddress") SEQ, 0, 2, 2, DECODE | EXT,
667 667 offsetof(UnicastAddress, iPAddress), _UnicastAddress_iPAddress},
668 668 {FNAME("iPXAddress") SEQ, 0, 3, 3, SKIP | EXT, 0,
669 669  
670 670  
... ... @@ -676,17 +676,17 @@
676 676 {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, NULL},
677 677 };
678 678  
679   -static field_t _MulticastAddress_iPAddress[] = { /* SEQUENCE */
  679 +static const struct field_t _MulticastAddress_iPAddress[] = { /* SEQUENCE */
680 680 {FNAME("network") OCTSTR, FIXD, 4, 0, SKIP, 0, NULL},
681 681 {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
682 682 };
683 683  
684   -static field_t _MulticastAddress_iP6Address[] = { /* SEQUENCE */
  684 +static const struct field_t _MulticastAddress_iP6Address[] = { /* SEQUENCE */
685 685 {FNAME("network") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
686 686 {FNAME("tsapIdentifier") INT, WORD, 0, 0, SKIP, 0, NULL},
687 687 };
688 688  
689   -static field_t _MulticastAddress[] = { /* CHOICE */
  689 +static const struct field_t _MulticastAddress[] = { /* CHOICE */
690 690 {FNAME("iPAddress") SEQ, 0, 2, 2, SKIP | EXT, 0,
691 691 _MulticastAddress_iPAddress},
692 692 {FNAME("iP6Address") SEQ, 0, 2, 2, SKIP | EXT, 0,
693 693  
... ... @@ -695,14 +695,14 @@
695 695 {FNAME("nonStandardAddress") SEQ, 0, 2, 2, SKIP, 0, NULL},
696 696 };
697 697  
698   -static field_t _H245_TransportAddress[] = { /* CHOICE */
  698 +static const struct field_t _H245_TransportAddress[] = { /* CHOICE */
699 699 {FNAME("unicastAddress") CHOICE, 3, 5, 7, DECODE | EXT,
700 700 offsetof(H245_TransportAddress, unicastAddress), _UnicastAddress},
701 701 {FNAME("multicastAddress") CHOICE, 1, 2, 4, SKIP | EXT, 0,
702 702 _MulticastAddress},
703 703 };
704 704  
705   -static field_t _H2250LogicalChannelParameters[] = { /* SEQUENCE */
  705 +static const struct field_t _H2250LogicalChannelParameters[] = { /* SEQUENCE */
706 706 {FNAME("nonStandard") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
707 707 _H2250LogicalChannelParameters_nonStandard},
708 708 {FNAME("sessionID") INT, BYTE, 0, 0, SKIP, 0, NULL},
... ... @@ -728,7 +728,7 @@
728 728 {FNAME("source") SEQ, 0, 2, 2, SKIP | EXT | OPT, 0, NULL},
729 729 };
730 730  
731   -static field_t _OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters[] = { /* CHOICE */
  731 +static const struct field_t _OpenLogicalChannel_forwardLogicalChannelParameters_multiplexParameters[] = { /* CHOICE */
732 732 {FNAME("h222LogicalChannelParameters") SEQ, 3, 5, 5, SKIP | EXT, 0,
733 733 _H222LogicalChannelParameters},
734 734 {FNAME("h223LogicalChannelParameters") SEQ, 0, 2, 2, SKIP | EXT, 0,
... ... @@ -742,7 +742,7 @@
742 742 {FNAME("none") NUL, FIXD, 0, 0, SKIP, 0, NULL},
743 743 };
744 744  
745   -static field_t _OpenLogicalChannel_forwardLogicalChannelParameters[] = { /* SEQUENCE */
  745 +static const struct field_t _OpenLogicalChannel_forwardLogicalChannelParameters[] = { /* SEQUENCE */
746 746 {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
747 747 {FNAME("dataType") CHOICE, 3, 6, 9, DECODE | EXT,
748 748 offsetof(OpenLogicalChannel_forwardLogicalChannelParameters,
... ... @@ -756,7 +756,7 @@
756 756 {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
757 757 };
758 758  
759   -static field_t _OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters[] = { /* CHOICE */
  759 +static const struct field_t _OpenLogicalChannel_reverseLogicalChannelParameters_multiplexParameters[] = { /* CHOICE */
760 760 {FNAME("h223LogicalChannelParameters") SEQ, 0, 2, 2, SKIP | EXT, 0,
761 761 _H223LogicalChannelParameters},
762 762 {FNAME("v76LogicalChannelParameters") SEQ, 0, 5, 5, SKIP | EXT, 0,
... ... @@ -767,7 +767,7 @@
767 767 h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
768 768 };
769 769  
770   -static field_t _OpenLogicalChannel_reverseLogicalChannelParameters[] = { /* SEQUENCE */
  770 +static const struct field_t _OpenLogicalChannel_reverseLogicalChannelParameters[] = { /* SEQUENCE */
771 771 {FNAME("dataType") CHOICE, 3, 6, 9, SKIP | EXT, 0, _DataType},
772 772 {FNAME("multiplexParameters") CHOICE, 1, 2, 3, DECODE | EXT | OPT,
773 773 offsetof(OpenLogicalChannel_reverseLogicalChannelParameters,
774 774  
775 775  
776 776  
... ... @@ -778,23 +778,23 @@
778 778 {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
779 779 };
780 780  
781   -static field_t _NetworkAccessParameters_distribution[] = { /* CHOICE */
  781 +static const struct field_t _NetworkAccessParameters_distribution[] = { /* CHOICE */
782 782 {FNAME("unicast") NUL, FIXD, 0, 0, SKIP, 0, NULL},
783 783 {FNAME("multicast") NUL, FIXD, 0, 0, SKIP, 0, NULL},
784 784 };
785 785  
786   -static field_t _Q2931Address_address[] = { /* CHOICE */
  786 +static const struct field_t _Q2931Address_address[] = { /* CHOICE */
787 787 {FNAME("internationalNumber") NUMSTR, 4, 1, 0, SKIP, 0, NULL},
788 788 {FNAME("nsapAddress") OCTSTR, 5, 1, 0, SKIP, 0, NULL},
789 789 };
790 790  
791   -static field_t _Q2931Address[] = { /* SEQUENCE */
  791 +static const struct field_t _Q2931Address[] = { /* SEQUENCE */
792 792 {FNAME("address") CHOICE, 1, 2, 2, SKIP | EXT, 0,
793 793 _Q2931Address_address},
794 794 {FNAME("subaddress") OCTSTR, 5, 1, 0, SKIP | OPT, 0, NULL},
795 795 };
796 796  
797   -static field_t _NetworkAccessParameters_networkAddress[] = { /* CHOICE */
  797 +static const struct field_t _NetworkAccessParameters_networkAddress[] = { /* CHOICE */
798 798 {FNAME("q2931Address") SEQ, 1, 2, 2, SKIP | EXT, 0, _Q2931Address},
799 799 {FNAME("e164Address") NUMDGT, 7, 1, 0, SKIP, 0, NULL},
800 800 {FNAME("localAreaAddress") CHOICE, 1, 2, 2, DECODE | EXT,
... ... @@ -802,7 +802,7 @@
802 802 _H245_TransportAddress},
803 803 };
804 804  
805   -static field_t _NetworkAccessParameters[] = { /* SEQUENCE */
  805 +static const struct field_t _NetworkAccessParameters[] = { /* SEQUENCE */
806 806 {FNAME("distribution") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0,
807 807 _NetworkAccessParameters_distribution},
808 808 {FNAME("networkAddress") CHOICE, 2, 3, 3, DECODE | EXT,
... ... @@ -814,7 +814,7 @@
814 814 NULL},
815 815 };
816 816  
817   -static field_t _OpenLogicalChannel[] = { /* SEQUENCE */
  817 +static const struct field_t _OpenLogicalChannel[] = { /* SEQUENCE */
818 818 {FNAME("forwardLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
819 819 {FNAME("forwardLogicalChannelParameters") SEQ, 1, 3, 5, DECODE | EXT,
820 820 offsetof(OpenLogicalChannel, forwardLogicalChannelParameters),
821 821  
... ... @@ -829,13 +829,13 @@
829 829 {FNAME("encryptionSync") SEQ, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
830 830 };
831 831  
832   -static field_t _Setup_UUIE_fastStart[] = { /* SEQUENCE OF */
  832 +static const struct field_t _Setup_UUIE_fastStart[] = { /* SEQUENCE OF */
833 833 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
834 834 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
835 835 ,
836 836 };
837 837  
838   -static field_t _Setup_UUIE[] = { /* SEQUENCE */
  838 +static const struct field_t _Setup_UUIE[] = { /* SEQUENCE */
839 839 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
840 840 {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
841 841 offsetof(Setup_UUIE, h245Address), _TransportAddress},
842 842  
... ... @@ -894,13 +894,13 @@
894 894 NULL},
895 895 };
896 896  
897   -static field_t _CallProceeding_UUIE_fastStart[] = { /* SEQUENCE OF */
  897 +static const struct field_t _CallProceeding_UUIE_fastStart[] = { /* SEQUENCE OF */
898 898 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
899 899 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
900 900 ,
901 901 };
902 902  
903   -static field_t _CallProceeding_UUIE[] = { /* SEQUENCE */
  903 +static const struct field_t _CallProceeding_UUIE[] = { /* SEQUENCE */
904 904 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
905 905 {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
906 906 _EndpointType},
907 907  
... ... @@ -920,13 +920,13 @@
920 920 {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
921 921 };
922 922  
923   -static field_t _Connect_UUIE_fastStart[] = { /* SEQUENCE OF */
  923 +static const struct field_t _Connect_UUIE_fastStart[] = { /* SEQUENCE OF */
924 924 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
925 925 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
926 926 ,
927 927 };
928 928  
929   -static field_t _Connect_UUIE[] = { /* SEQUENCE */
  929 +static const struct field_t _Connect_UUIE[] = { /* SEQUENCE */
930 930 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
931 931 {FNAME("h245Address") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
932 932 offsetof(Connect_UUIE, h245Address), _TransportAddress},
933 933  
... ... @@ -954,13 +954,13 @@
954 954 {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
955 955 };
956 956  
957   -static field_t _Alerting_UUIE_fastStart[] = { /* SEQUENCE OF */
  957 +static const struct field_t _Alerting_UUIE_fastStart[] = { /* SEQUENCE OF */
958 958 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
959 959 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
960 960 ,
961 961 };
962 962  
963   -static field_t _Alerting_UUIE[] = { /* SEQUENCE */
  963 +static const struct field_t _Alerting_UUIE[] = { /* SEQUENCE */
964 964 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
965 965 {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
966 966 _EndpointType},
... ... @@ -986,7 +986,7 @@
986 986 {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
987 987 };
988 988  
989   -static field_t _Information_UUIE[] = { /* SEQUENCE */
  989 +static const struct field_t _Information_UUIE[] = { /* SEQUENCE */
990 990 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
991 991 {FNAME("callIdentifier") SEQ, 0, 1, 1, SKIP | EXT, 0, NULL},
992 992 {FNAME("tokens") SEQOF, SEMI, 0, 0, SKIP | OPT, 0, NULL},
... ... @@ -996,7 +996,7 @@
996 996 {FNAME("circuitInfo") SEQ, 3, 3, 3, SKIP | EXT | OPT, 0, NULL},
997 997 };
998 998  
999   -static field_t _ReleaseCompleteReason[] = { /* CHOICE */
  999 +static const struct field_t _ReleaseCompleteReason[] = { /* CHOICE */
1000 1000 {FNAME("noBandwidth") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1001 1001 {FNAME("gatekeeperResources") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1002 1002 {FNAME("unreachableDestination") NUL, FIXD, 0, 0, SKIP, 0, NULL},
... ... @@ -1022,7 +1022,7 @@
1022 1022 {FNAME("tunnelledSignallingRejected") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1023 1023 };
1024 1024  
1025   -static field_t _ReleaseComplete_UUIE[] = { /* SEQUENCE */
  1025 +static const struct field_t _ReleaseComplete_UUIE[] = { /* SEQUENCE */
1026 1026 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1027 1027 {FNAME("reason") CHOICE, 4, 12, 22, SKIP | EXT | OPT, 0,
1028 1028 _ReleaseCompleteReason},
1029 1029  
... ... @@ -1039,11 +1039,11 @@
1039 1039 {FNAME("featureSet") SEQ, 3, 4, 4, SKIP | EXT | OPT, 0, NULL},
1040 1040 };
1041 1041  
1042   -static field_t _Facility_UUIE_alternativeAliasAddress[] = { /* SEQUENCE OF */
  1042 +static const struct field_t _Facility_UUIE_alternativeAliasAddress[] = { /* SEQUENCE OF */
1043 1043 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1044 1044 };
1045 1045  
1046   -static field_t _FacilityReason[] = { /* CHOICE */
  1046 +static const struct field_t _FacilityReason[] = { /* CHOICE */
1047 1047 {FNAME("routeCallToGatekeeper") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1048 1048 {FNAME("callForwarded") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1049 1049 {FNAME("routeCallToMC") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1050 1050  
... ... @@ -1057,13 +1057,13 @@
1057 1057 {FNAME("transportedInformation") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1058 1058 };
1059 1059  
1060   -static field_t _Facility_UUIE_fastStart[] = { /* SEQUENCE OF */
  1060 +static const struct field_t _Facility_UUIE_fastStart[] = { /* SEQUENCE OF */
1061 1061 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
1062 1062 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
1063 1063 ,
1064 1064 };
1065 1065  
1066   -static field_t _Facility_UUIE[] = { /* SEQUENCE */
  1066 +static const struct field_t _Facility_UUIE[] = { /* SEQUENCE */
1067 1067 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1068 1068 {FNAME("alternativeAddress") CHOICE, 3, 7, 7, DECODE | EXT | OPT,
1069 1069 offsetof(Facility_UUIE, alternativeAddress), _TransportAddress},
1070 1070  
1071 1071  
... ... @@ -1094,17 +1094,17 @@
1094 1094 NULL},
1095 1095 };
1096 1096  
1097   -static field_t _CallIdentifier[] = { /* SEQUENCE */
  1097 +static const struct field_t _CallIdentifier[] = { /* SEQUENCE */
1098 1098 {FNAME("guid") OCTSTR, FIXD, 16, 0, SKIP, 0, NULL},
1099 1099 };
1100 1100  
1101   -static field_t _SecurityServiceMode[] = { /* CHOICE */
  1101 +static const struct field_t _SecurityServiceMode[] = { /* CHOICE */
1102 1102 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, _NonStandardParameter},
1103 1103 {FNAME("none") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1104 1104 {FNAME("default") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1105 1105 };
1106 1106  
1107   -static field_t _SecurityCapabilities[] = { /* SEQUENCE */
  1107 +static const struct field_t _SecurityCapabilities[] = { /* SEQUENCE */
1108 1108 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP | OPT, 0,
1109 1109 _NonStandardParameter},
1110 1110 {FNAME("encryption") CHOICE, 2, 3, 3, SKIP | EXT, 0,
1111 1111  
1112 1112  
1113 1113  
1114 1114  
... ... @@ -1115,30 +1115,30 @@
1115 1115 _SecurityServiceMode},
1116 1116 };
1117 1117  
1118   -static field_t _H245Security[] = { /* CHOICE */
  1118 +static const struct field_t _H245Security[] = { /* CHOICE */
1119 1119 {FNAME("nonStandard") SEQ, 0, 2, 2, SKIP, 0, _NonStandardParameter},
1120 1120 {FNAME("noSecurity") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1121 1121 {FNAME("tls") SEQ, 1, 4, 4, SKIP | EXT, 0, _SecurityCapabilities},
1122 1122 {FNAME("ipsec") SEQ, 1, 4, 4, SKIP | EXT, 0, _SecurityCapabilities},
1123 1123 };
1124 1124  
1125   -static field_t _DHset[] = { /* SEQUENCE */
  1125 +static const struct field_t _DHset[] = { /* SEQUENCE */
1126 1126 {FNAME("halfkey") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
1127 1127 {FNAME("modSize") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
1128 1128 {FNAME("generator") BITSTR, WORD, 0, 0, SKIP, 0, NULL},
1129 1129 };
1130 1130  
1131   -static field_t _TypedCertificate[] = { /* SEQUENCE */
  1131 +static const struct field_t _TypedCertificate[] = { /* SEQUENCE */
1132 1132 {FNAME("type") OID, BYTE, 0, 0, SKIP, 0, NULL},
1133 1133 {FNAME("certificate") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1134 1134 };
1135 1135  
1136   -static field_t _H235_NonStandardParameter[] = { /* SEQUENCE */
  1136 +static const struct field_t _H235_NonStandardParameter[] = { /* SEQUENCE */
1137 1137 {FNAME("nonStandardIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1138 1138 {FNAME("data") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1139 1139 };
1140 1140  
1141   -static field_t _ClearToken[] = { /* SEQUENCE */
  1141 +static const struct field_t _ClearToken[] = { /* SEQUENCE */
1142 1142 {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1143 1143 {FNAME("timeStamp") INT, CONS, 1, 0, SKIP | OPT, 0, NULL},
1144 1144 {FNAME("password") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1145 1145  
1146 1146  
1147 1147  
1148 1148  
1149 1149  
1150 1150  
1151 1151  
1152 1152  
1153 1153  
1154 1154  
1155 1155  
1156 1156  
1157 1157  
1158 1158  
1159 1159  
1160 1160  
1161 1161  
1162 1162  
... ... @@ -1154,120 +1154,120 @@
1154 1154 {FNAME("sendersID") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1155 1155 };
1156 1156  
1157   -static field_t _Progress_UUIE_tokens[] = { /* SEQUENCE OF */
  1157 +static const struct field_t _Progress_UUIE_tokens[] = { /* SEQUENCE OF */
1158 1158 {FNAME("item") SEQ, 8, 9, 11, SKIP | EXT, 0, _ClearToken},
1159 1159 };
1160 1160  
1161   -static field_t _Params[] = { /* SEQUENCE */
  1161 +static const struct field_t _Params[] = { /* SEQUENCE */
1162 1162 {FNAME("ranInt") INT, UNCO, 0, 0, SKIP | OPT, 0, NULL},
1163 1163 {FNAME("iv8") OCTSTR, FIXD, 8, 0, SKIP | OPT, 0, NULL},
1164 1164 {FNAME("iv16") OCTSTR, FIXD, 16, 0, SKIP | OPT, 0, NULL},
1165 1165 };
1166 1166  
1167   -static field_t _CryptoH323Token_cryptoEPPwdHash_token[] = { /* SEQUENCE */
  1167 +static const struct field_t _CryptoH323Token_cryptoEPPwdHash_token[] = { /* SEQUENCE */
1168 1168 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1169 1169 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1170 1170 {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1171 1171 };
1172 1172  
1173   -static field_t _CryptoH323Token_cryptoEPPwdHash[] = { /* SEQUENCE */
  1173 +static const struct field_t _CryptoH323Token_cryptoEPPwdHash[] = { /* SEQUENCE */
1174 1174 {FNAME("alias") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1175 1175 {FNAME("timeStamp") INT, CONS, 1, 0, SKIP, 0, NULL},
1176 1176 {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1177 1177 _CryptoH323Token_cryptoEPPwdHash_token},
1178 1178 };
1179 1179  
1180   -static field_t _CryptoH323Token_cryptoGKPwdHash_token[] = { /* SEQUENCE */
  1180 +static const struct field_t _CryptoH323Token_cryptoGKPwdHash_token[] = { /* SEQUENCE */
1181 1181 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1182 1182 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1183 1183 {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1184 1184 };
1185 1185  
1186   -static field_t _CryptoH323Token_cryptoGKPwdHash[] = { /* SEQUENCE */
  1186 +static const struct field_t _CryptoH323Token_cryptoGKPwdHash[] = { /* SEQUENCE */
1187 1187 {FNAME("gatekeeperId") BMPSTR, 7, 1, 0, SKIP, 0, NULL},
1188 1188 {FNAME("timeStamp") INT, CONS, 1, 0, SKIP, 0, NULL},
1189 1189 {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1190 1190 _CryptoH323Token_cryptoGKPwdHash_token},
1191 1191 };
1192 1192  
1193   -static field_t _CryptoH323Token_cryptoEPPwdEncr[] = { /* SEQUENCE */
  1193 +static const struct field_t _CryptoH323Token_cryptoEPPwdEncr[] = { /* SEQUENCE */
1194 1194 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1195 1195 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1196 1196 {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1197 1197 };
1198 1198  
1199   -static field_t _CryptoH323Token_cryptoGKPwdEncr[] = { /* SEQUENCE */
  1199 +static const struct field_t _CryptoH323Token_cryptoGKPwdEncr[] = { /* SEQUENCE */
1200 1200 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1201 1201 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1202 1202 {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1203 1203 };
1204 1204  
1205   -static field_t _CryptoH323Token_cryptoEPCert[] = { /* SEQUENCE */
  1205 +static const struct field_t _CryptoH323Token_cryptoEPCert[] = { /* SEQUENCE */
1206 1206 {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1207 1207 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1208 1208 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1209 1209 {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1210 1210 };
1211 1211  
1212   -static field_t _CryptoH323Token_cryptoGKCert[] = { /* SEQUENCE */
  1212 +static const struct field_t _CryptoH323Token_cryptoGKCert[] = { /* SEQUENCE */
1213 1213 {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1214 1214 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1215 1215 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1216 1216 {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1217 1217 };
1218 1218  
1219   -static field_t _CryptoH323Token_cryptoFastStart[] = { /* SEQUENCE */
  1219 +static const struct field_t _CryptoH323Token_cryptoFastStart[] = { /* SEQUENCE */
1220 1220 {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1221 1221 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1222 1222 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1223 1223 {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1224 1224 };
1225 1225  
1226   -static field_t _CryptoToken_cryptoEncryptedToken_token[] = { /* SEQUENCE */
  1226 +static const struct field_t _CryptoToken_cryptoEncryptedToken_token[] = { /* SEQUENCE */
1227 1227 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1228 1228 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1229 1229 {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1230 1230 };
1231 1231  
1232   -static field_t _CryptoToken_cryptoEncryptedToken[] = { /* SEQUENCE */
  1232 +static const struct field_t _CryptoToken_cryptoEncryptedToken[] = { /* SEQUENCE */
1233 1233 {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1234 1234 {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1235 1235 _CryptoToken_cryptoEncryptedToken_token},
1236 1236 };
1237 1237  
1238   -static field_t _CryptoToken_cryptoSignedToken_token[] = { /* SEQUENCE */
  1238 +static const struct field_t _CryptoToken_cryptoSignedToken_token[] = { /* SEQUENCE */
1239 1239 {FNAME("toBeSigned") SEQ, 8, 9, 11, SKIP | OPEN | EXT, 0, NULL},
1240 1240 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1241 1241 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1242 1242 {FNAME("signature") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1243 1243 };
1244 1244  
1245   -static field_t _CryptoToken_cryptoSignedToken[] = { /* SEQUENCE */
  1245 +static const struct field_t _CryptoToken_cryptoSignedToken[] = { /* SEQUENCE */
1246 1246 {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1247 1247 {FNAME("token") SEQ, 0, 4, 4, SKIP, 0,
1248 1248 _CryptoToken_cryptoSignedToken_token},
1249 1249 };
1250 1250  
1251   -static field_t _CryptoToken_cryptoHashedToken_token[] = { /* SEQUENCE */
  1251 +static const struct field_t _CryptoToken_cryptoHashedToken_token[] = { /* SEQUENCE */
1252 1252 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1253 1253 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1254 1254 {FNAME("hash") BITSTR, SEMI, 0, 0, SKIP, 0, NULL},
1255 1255 };
1256 1256  
1257   -static field_t _CryptoToken_cryptoHashedToken[] = { /* SEQUENCE */
  1257 +static const struct field_t _CryptoToken_cryptoHashedToken[] = { /* SEQUENCE */
1258 1258 {FNAME("tokenOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1259 1259 {FNAME("hashedVals") SEQ, 8, 9, 11, SKIP | EXT, 0, _ClearToken},
1260 1260 {FNAME("token") SEQ, 0, 3, 3, SKIP, 0,
1261 1261 _CryptoToken_cryptoHashedToken_token},
1262 1262 };
1263 1263  
1264   -static field_t _CryptoToken_cryptoPwdEncr[] = { /* SEQUENCE */
  1264 +static const struct field_t _CryptoToken_cryptoPwdEncr[] = { /* SEQUENCE */
1265 1265 {FNAME("algorithmOID") OID, BYTE, 0, 0, SKIP, 0, NULL},
1266 1266 {FNAME("paramS") SEQ, 2, 2, 3, SKIP | EXT, 0, _Params},
1267 1267 {FNAME("encryptedData") OCTSTR, SEMI, 0, 0, SKIP, 0, NULL},
1268 1268 };
1269 1269  
1270   -static field_t _CryptoToken[] = { /* CHOICE */
  1270 +static const struct field_t _CryptoToken[] = { /* CHOICE */
1271 1271 {FNAME("cryptoEncryptedToken") SEQ, 0, 2, 2, SKIP, 0,
1272 1272 _CryptoToken_cryptoEncryptedToken},
1273 1273 {FNAME("cryptoSignedToken") SEQ, 0, 2, 2, SKIP, 0,
... ... @@ -1278,7 +1278,7 @@
1278 1278 _CryptoToken_cryptoPwdEncr},
1279 1279 };
1280 1280  
1281   -static field_t _CryptoH323Token[] = { /* CHOICE */
  1281 +static const struct field_t _CryptoH323Token[] = { /* CHOICE */
1282 1282 {FNAME("cryptoEPPwdHash") SEQ, 0, 3, 3, SKIP, 0,
1283 1283 _CryptoH323Token_cryptoEPPwdHash},
1284 1284 {FNAME("cryptoGKPwdHash") SEQ, 0, 3, 3, SKIP, 0,
1285 1285  
1286 1286  
... ... @@ -1297,17 +1297,17 @@
1297 1297 _CryptoToken},
1298 1298 };
1299 1299  
1300   -static field_t _Progress_UUIE_cryptoTokens[] = { /* SEQUENCE OF */
  1300 +static const struct field_t _Progress_UUIE_cryptoTokens[] = { /* SEQUENCE OF */
1301 1301 {FNAME("item") CHOICE, 3, 8, 8, SKIP | EXT, 0, _CryptoH323Token},
1302 1302 };
1303 1303  
1304   -static field_t _Progress_UUIE_fastStart[] = { /* SEQUENCE OF */
  1304 +static const struct field_t _Progress_UUIE_fastStart[] = { /* SEQUENCE OF */
1305 1305 {FNAME("item") SEQ, 1, 3, 5, DECODE | OPEN | EXT,
1306 1306 sizeof(OpenLogicalChannel), _OpenLogicalChannel}
1307 1307 ,
1308 1308 };
1309 1309  
1310   -static field_t _Progress_UUIE[] = { /* SEQUENCE */
  1310 +static const struct field_t _Progress_UUIE[] = { /* SEQUENCE */
1311 1311 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1312 1312 {FNAME("destinationInfo") SEQ, 6, 8, 10, SKIP | EXT, 0,
1313 1313 _EndpointType},
... ... @@ -1328,7 +1328,7 @@
1328 1328 {FNAME("fastConnectRefused") NUL, FIXD, 0, 0, SKIP | OPT, 0, NULL},
1329 1329 };
1330 1330  
1331   -static field_t _H323_UU_PDU_h323_message_body[] = { /* CHOICE */
  1331 +static const struct field_t _H323_UU_PDU_h323_message_body[] = { /* CHOICE */
1332 1332 {FNAME("setup") SEQ, 7, 13, 39, DECODE | EXT,
1333 1333 offsetof(H323_UU_PDU_h323_message_body, setup), _Setup_UUIE},
1334 1334 {FNAME("callProceeding") SEQ, 1, 3, 12, DECODE | EXT,
... ... @@ -1352,7 +1352,7 @@
1352 1352 {FNAME("notify") SEQ, 2, 4, 4, SKIP | EXT, 0, NULL},
1353 1353 };
1354 1354  
1355   -static field_t _RequestMessage[] = { /* CHOICE */
  1355 +static const struct field_t _RequestMessage[] = { /* CHOICE */
1356 1356 {FNAME("nonStandard") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1357 1357 {FNAME("masterSlaveDetermination") SEQ, 0, 2, 2, STOP | EXT, 0, NULL},
1358 1358 {FNAME("terminalCapabilitySet") SEQ, 3, 5, 5, STOP | EXT, 0, NULL},
... ... @@ -1372,7 +1372,7 @@
1372 1372 NULL},
1373 1373 };
1374 1374  
1375   -static field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters[] = { /* CHOICE */
  1375 +static const struct field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters_multiplexParameters[] = { /* CHOICE */
1376 1376 {FNAME("h222LogicalChannelParameters") SEQ, 3, 5, 5, SKIP | EXT, 0,
1377 1377 _H222LogicalChannelParameters},
1378 1378 {FNAME("h2250LogicalChannelParameters") SEQ, 10, 11, 14, DECODE | EXT,
... ... @@ -1381,7 +1381,7 @@
1381 1381 h2250LogicalChannelParameters), _H2250LogicalChannelParameters},
1382 1382 };
1383 1383  
1384   -static field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters[] = { /* SEQUENCE */
  1384 +static const struct field_t _OpenLogicalChannelAck_reverseLogicalChannelParameters[] = { /* SEQUENCE */
1385 1385 {FNAME("reverseLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
1386 1386 {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
1387 1387 {FNAME("multiplexParameters") CHOICE, 0, 1, 2, DECODE | EXT | OPT,
1388 1388  
... ... @@ -1391,11 +1391,11 @@
1391 1391 {FNAME("replacementFor") INT, WORD, 1, 0, SKIP | OPT, 0, NULL},
1392 1392 };
1393 1393  
1394   -static field_t _H2250LogicalChannelAckParameters_nonStandard[] = { /* SEQUENCE OF */
  1394 +static const struct field_t _H2250LogicalChannelAckParameters_nonStandard[] = { /* SEQUENCE OF */
1395 1395 {FNAME("item") SEQ, 0, 2, 2, SKIP, 0, _H245_NonStandardParameter},
1396 1396 };
1397 1397  
1398   -static field_t _H2250LogicalChannelAckParameters[] = { /* SEQUENCE */
  1398 +static const struct field_t _H2250LogicalChannelAckParameters[] = { /* SEQUENCE */
1399 1399 {FNAME("nonStandard") SEQOF, SEMI, 0, 0, SKIP | OPT, 0,
1400 1400 _H2250LogicalChannelAckParameters_nonStandard},
1401 1401 {FNAME("sessionID") INT, 8, 1, 0, SKIP | OPT, 0, NULL},
1402 1402  
... ... @@ -1410,14 +1410,14 @@
1410 1410 {FNAME("portNumber") INT, WORD, 0, 0, SKIP | OPT, 0, NULL},
1411 1411 };
1412 1412  
1413   -static field_t _OpenLogicalChannelAck_forwardMultiplexAckParameters[] = { /* CHOICE */
  1413 +static const struct field_t _OpenLogicalChannelAck_forwardMultiplexAckParameters[] = { /* CHOICE */
1414 1414 {FNAME("h2250LogicalChannelAckParameters") SEQ, 5, 5, 7, DECODE | EXT,
1415 1415 offsetof(OpenLogicalChannelAck_forwardMultiplexAckParameters,
1416 1416 h2250LogicalChannelAckParameters),
1417 1417 _H2250LogicalChannelAckParameters},
1418 1418 };
1419 1419  
1420   -static field_t _OpenLogicalChannelAck[] = { /* SEQUENCE */
  1420 +static const struct field_t _OpenLogicalChannelAck[] = { /* SEQUENCE */
1421 1421 {FNAME("forwardLogicalChannelNumber") INT, WORD, 1, 0, SKIP, 0, NULL},
1422 1422 {FNAME("reverseLogicalChannelParameters") SEQ, 2, 3, 4,
1423 1423 DECODE | EXT | OPT, offsetof(OpenLogicalChannelAck,
... ... @@ -1433,7 +1433,7 @@
1433 1433 {FNAME("encryptionSync") SEQ, 2, 4, 4, STOP | EXT | OPT, 0, NULL},
1434 1434 };
1435 1435  
1436   -static field_t _ResponseMessage[] = { /* CHOICE */
  1436 +static const struct field_t _ResponseMessage[] = { /* CHOICE */
1437 1437 {FNAME("nonStandard") SEQ, 0, 1, 1, STOP | EXT, 0, NULL},
1438 1438 {FNAME("masterSlaveDeterminationAck") SEQ, 0, 1, 1, STOP | EXT, 0,
1439 1439 NULL},
... ... @@ -1469,7 +1469,7 @@
1469 1469 {FNAME("logicalChannelRateReject") SEQ, 1, 4, 4, STOP | EXT, 0, NULL},
1470 1470 };
1471 1471  
1472   -static field_t _MultimediaSystemControlMessage[] = { /* CHOICE */
  1472 +static const struct field_t _MultimediaSystemControlMessage[] = { /* CHOICE */
1473 1473 {FNAME("request") CHOICE, 4, 11, 15, DECODE | EXT,
1474 1474 offsetof(MultimediaSystemControlMessage, request), _RequestMessage},
1475 1475 {FNAME("response") CHOICE, 5, 19, 24, DECODE | EXT,
1476 1476  
... ... @@ -1479,14 +1479,14 @@
1479 1479 {FNAME("indication") CHOICE, 4, 14, 23, STOP | EXT, 0, NULL},
1480 1480 };
1481 1481  
1482   -static field_t _H323_UU_PDU_h245Control[] = { /* SEQUENCE OF */
  1482 +static const struct field_t _H323_UU_PDU_h245Control[] = { /* SEQUENCE OF */
1483 1483 {FNAME("item") CHOICE, 2, 4, 4, DECODE | OPEN | EXT,
1484 1484 sizeof(MultimediaSystemControlMessage),
1485 1485 _MultimediaSystemControlMessage}
1486 1486 ,
1487 1487 };
1488 1488  
1489   -static field_t _H323_UU_PDU[] = { /* SEQUENCE */
  1489 +static const struct field_t _H323_UU_PDU[] = { /* SEQUENCE */
1490 1490 {FNAME("h323-message-body") CHOICE, 3, 7, 13, DECODE | EXT,
1491 1491 offsetof(H323_UU_PDU, h323_message_body),
1492 1492 _H323_UU_PDU_h323_message_body},
1493 1493  
... ... @@ -1507,13 +1507,13 @@
1507 1507 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1508 1508 };
1509 1509  
1510   -static field_t _H323_UserInformation[] = { /* SEQUENCE */
  1510 +static const struct field_t _H323_UserInformation[] = { /* SEQUENCE */
1511 1511 {FNAME("h323-uu-pdu") SEQ, 1, 2, 11, DECODE | EXT,
1512 1512 offsetof(H323_UserInformation, h323_uu_pdu), _H323_UU_PDU},
1513 1513 {FNAME("user-data") SEQ, 0, 2, 2, STOP | EXT | OPT, 0, NULL},
1514 1514 };
1515 1515  
1516   -static field_t _GatekeeperRequest[] = { /* SEQUENCE */
  1516 +static const struct field_t _GatekeeperRequest[] = { /* SEQUENCE */
1517 1517 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1518 1518 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1519 1519 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
... ... @@ -1537,7 +1537,7 @@
1537 1537 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1538 1538 };
1539 1539  
1540   -static field_t _GatekeeperConfirm[] = { /* SEQUENCE */
  1540 +static const struct field_t _GatekeeperConfirm[] = { /* SEQUENCE */
1541 1541 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1542 1542 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1543 1543 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1544 1544  
1545 1545  
1546 1546  
... ... @@ -1557,23 +1557,23 @@
1557 1557 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1558 1558 };
1559 1559  
1560   -static field_t _RegistrationRequest_callSignalAddress[] = { /* SEQUENCE OF */
  1560 +static const struct field_t _RegistrationRequest_callSignalAddress[] = { /* SEQUENCE OF */
1561 1561 {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1562 1562 sizeof(TransportAddress), _TransportAddress}
1563 1563 ,
1564 1564 };
1565 1565  
1566   -static field_t _RegistrationRequest_rasAddress[] = { /* SEQUENCE OF */
  1566 +static const struct field_t _RegistrationRequest_rasAddress[] = { /* SEQUENCE OF */
1567 1567 {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1568 1568 sizeof(TransportAddress), _TransportAddress}
1569 1569 ,
1570 1570 };
1571 1571  
1572   -static field_t _RegistrationRequest_terminalAlias[] = { /* SEQUENCE OF */
  1572 +static const struct field_t _RegistrationRequest_terminalAlias[] = { /* SEQUENCE OF */
1573 1573 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1574 1574 };
1575 1575  
1576   -static field_t _RegistrationRequest[] = { /* SEQUENCE */
  1576 +static const struct field_t _RegistrationRequest[] = { /* SEQUENCE */
1577 1577 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1578 1578 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1579 1579 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1580 1580  
1581 1581  
... ... @@ -1621,17 +1621,17 @@
1621 1621 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1622 1622 };
1623 1623  
1624   -static field_t _RegistrationConfirm_callSignalAddress[] = { /* SEQUENCE OF */
  1624 +static const struct field_t _RegistrationConfirm_callSignalAddress[] = { /* SEQUENCE OF */
1625 1625 {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1626 1626 sizeof(TransportAddress), _TransportAddress}
1627 1627 ,
1628 1628 };
1629 1629  
1630   -static field_t _RegistrationConfirm_terminalAlias[] = { /* SEQUENCE OF */
  1630 +static const struct field_t _RegistrationConfirm_terminalAlias[] = { /* SEQUENCE OF */
1631 1631 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1632 1632 };
1633 1633  
1634   -static field_t _RegistrationConfirm[] = { /* SEQUENCE */
  1634 +static const struct field_t _RegistrationConfirm[] = { /* SEQUENCE */
1635 1635 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1636 1636 {FNAME("protocolIdentifier") OID, BYTE, 0, 0, SKIP, 0, NULL},
1637 1637 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1638 1638  
... ... @@ -1667,13 +1667,13 @@
1667 1667 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1668 1668 };
1669 1669  
1670   -static field_t _UnregistrationRequest_callSignalAddress[] = { /* SEQUENCE OF */
  1670 +static const struct field_t _UnregistrationRequest_callSignalAddress[] = { /* SEQUENCE OF */
1671 1671 {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1672 1672 sizeof(TransportAddress), _TransportAddress}
1673 1673 ,
1674 1674 };
1675 1675  
1676   -static field_t _UnregistrationRequest[] = { /* SEQUENCE */
  1676 +static const struct field_t _UnregistrationRequest[] = { /* SEQUENCE */
1677 1677 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1678 1678 {FNAME("callSignalAddress") SEQOF, SEMI, 0, 10, DECODE,
1679 1679 offsetof(UnregistrationRequest, callSignalAddress),
1680 1680  
1681 1681  
1682 1682  
1683 1683  
... ... @@ -1694,24 +1694,24 @@
1694 1694 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1695 1695 };
1696 1696  
1697   -static field_t _CallModel[] = { /* CHOICE */
  1697 +static const struct field_t _CallModel[] = { /* CHOICE */
1698 1698 {FNAME("direct") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1699 1699 {FNAME("gatekeeperRouted") NUL, FIXD, 0, 0, SKIP, 0, NULL},
1700 1700 };
1701 1701  
1702   -static field_t _AdmissionRequest_destinationInfo[] = { /* SEQUENCE OF */
  1702 +static const struct field_t _AdmissionRequest_destinationInfo[] = { /* SEQUENCE OF */
1703 1703 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1704 1704 };
1705 1705  
1706   -static field_t _AdmissionRequest_destExtraCallInfo[] = { /* SEQUENCE OF */
  1706 +static const struct field_t _AdmissionRequest_destExtraCallInfo[] = { /* SEQUENCE OF */
1707 1707 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1708 1708 };
1709 1709  
1710   -static field_t _AdmissionRequest_srcInfo[] = { /* SEQUENCE OF */
  1710 +static const struct field_t _AdmissionRequest_srcInfo[] = { /* SEQUENCE OF */
1711 1711 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1712 1712 };
1713 1713  
1714   -static field_t _AdmissionRequest[] = { /* SEQUENCE */
  1714 +static const struct field_t _AdmissionRequest[] = { /* SEQUENCE */
1715 1715 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1716 1716 {FNAME("callType") CHOICE, 2, 4, 4, SKIP | EXT, 0, _CallType},
1717 1717 {FNAME("callModel") CHOICE, 1, 2, 2, SKIP | EXT | OPT, 0, _CallModel},
... ... @@ -1755,7 +1755,7 @@
1755 1755 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1756 1756 };
1757 1757  
1758   -static field_t _AdmissionConfirm[] = { /* SEQUENCE */
  1758 +static const struct field_t _AdmissionConfirm[] = { /* SEQUENCE */
1759 1759 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1760 1760 {FNAME("bandWidth") INT, CONS, 0, 0, SKIP, 0, NULL},
1761 1761 {FNAME("callModel") CHOICE, 1, 2, 2, SKIP | EXT, 0, _CallModel},
1762 1762  
... ... @@ -1790,11 +1790,11 @@
1790 1790 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1791 1791 };
1792 1792  
1793   -static field_t _LocationRequest_destinationInfo[] = { /* SEQUENCE OF */
  1793 +static const struct field_t _LocationRequest_destinationInfo[] = { /* SEQUENCE OF */
1794 1794 {FNAME("item") CHOICE, 1, 2, 7, SKIP | EXT, 0, _AliasAddress},
1795 1795 };
1796 1796  
1797   -static field_t _LocationRequest[] = { /* SEQUENCE */
  1797 +static const struct field_t _LocationRequest[] = { /* SEQUENCE */
1798 1798 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1799 1799 {FNAME("endpointIdentifier") BMPSTR, 7, 1, 0, SKIP | OPT, 0, NULL},
1800 1800 {FNAME("destinationInfo") SEQOF, SEMI, 0, 0, SKIP, 0,
... ... @@ -1818,7 +1818,7 @@
1818 1818 {FNAME("circuitInfo") SEQ, 3, 3, 3, STOP | EXT | OPT, 0, NULL},
1819 1819 };
1820 1820  
1821   -static field_t _LocationConfirm[] = { /* SEQUENCE */
  1821 +static const struct field_t _LocationConfirm[] = { /* SEQUENCE */
1822 1822 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
1823 1823 {FNAME("callSignalAddress") CHOICE, 3, 7, 7, DECODE | EXT,
1824 1824 offsetof(LocationConfirm, callSignalAddress), _TransportAddress},
1825 1825  
... ... @@ -1844,13 +1844,13 @@
1844 1844 {FNAME("serviceControl") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1845 1845 };
1846 1846  
1847   -static field_t _InfoRequestResponse_callSignalAddress[] = { /* SEQUENCE OF */
  1847 +static const struct field_t _InfoRequestResponse_callSignalAddress[] = { /* SEQUENCE OF */
1848 1848 {FNAME("item") CHOICE, 3, 7, 7, DECODE | EXT,
1849 1849 sizeof(TransportAddress), _TransportAddress}
1850 1850 ,
1851 1851 };
1852 1852  
1853   -static field_t _InfoRequestResponse[] = { /* SEQUENCE */
  1853 +static const struct field_t _InfoRequestResponse[] = { /* SEQUENCE */
1854 1854 {FNAME("nonStandardData") SEQ, 0, 2, 2, SKIP | OPT, 0,
1855 1855 _NonStandardParameter},
1856 1856 {FNAME("requestSeqNum") INT, WORD, 1, 0, SKIP, 0, NULL},
... ... @@ -1873,7 +1873,7 @@
1873 1873 {FNAME("genericData") SEQOF, SEMI, 0, 0, STOP | OPT, 0, NULL},
1874 1874 };
1875 1875  
1876   -static field_t _RasMessage[] = { /* CHOICE */
  1876 +static const struct field_t _RasMessage[] = { /* CHOICE */
1877 1877 {FNAME("gatekeeperRequest") SEQ, 4, 8, 18, DECODE | EXT,
1878 1878 offsetof(RasMessage, gatekeeperRequest), _GatekeeperRequest},
1879 1879 {FNAME("gatekeeperConfirm") SEQ, 2, 5, 14, DECODE | EXT,