xref: /freebsd/contrib/unbound/sldns/rrdef.c (revision 8f76bb7d)
109a3aaf3SDag-Erling Smørgrav /* rrdef.c
209a3aaf3SDag-Erling Smørgrav  *
309a3aaf3SDag-Erling Smørgrav  * access functions to rr definitions list.
409a3aaf3SDag-Erling Smørgrav  * a Net::DNS like library for C
509a3aaf3SDag-Erling Smørgrav  * LibDNS Team @ NLnet Labs
609a3aaf3SDag-Erling Smørgrav  *
709a3aaf3SDag-Erling Smørgrav  * (c) NLnet Labs, 2004-2006
809a3aaf3SDag-Erling Smørgrav  * See the file LICENSE for the license
909a3aaf3SDag-Erling Smørgrav  */
1009a3aaf3SDag-Erling Smørgrav /**
1109a3aaf3SDag-Erling Smørgrav  * \file
1209a3aaf3SDag-Erling Smørgrav  *
1309a3aaf3SDag-Erling Smørgrav  * Defines resource record types and constants.
1409a3aaf3SDag-Erling Smørgrav  */
1509a3aaf3SDag-Erling Smørgrav #include "config.h"
1609a3aaf3SDag-Erling Smørgrav #include "sldns/rrdef.h"
1709a3aaf3SDag-Erling Smørgrav #include "sldns/parseutil.h"
1809a3aaf3SDag-Erling Smørgrav 
1909a3aaf3SDag-Erling Smørgrav /* classes  */
2009a3aaf3SDag-Erling Smørgrav static sldns_lookup_table sldns_rr_classes_data[] = {
2109a3aaf3SDag-Erling Smørgrav         { LDNS_RR_CLASS_IN, "IN" },
2209a3aaf3SDag-Erling Smørgrav         { LDNS_RR_CLASS_CH, "CH" },
2309a3aaf3SDag-Erling Smørgrav         { LDNS_RR_CLASS_HS, "HS" },
2409a3aaf3SDag-Erling Smørgrav         { LDNS_RR_CLASS_NONE, "NONE" },
2509a3aaf3SDag-Erling Smørgrav         { LDNS_RR_CLASS_ANY, "ANY" },
2609a3aaf3SDag-Erling Smørgrav         { 0, NULL }
2709a3aaf3SDag-Erling Smørgrav };
2809a3aaf3SDag-Erling Smørgrav sldns_lookup_table* sldns_rr_classes = sldns_rr_classes_data;
2909a3aaf3SDag-Erling Smørgrav 
3009a3aaf3SDag-Erling Smørgrav /* types */
3109a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_0_wireformat[] = { LDNS_RDF_TYPE_UNKNOWN };
3209a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_a_wireformat[] = { LDNS_RDF_TYPE_A };
3309a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_ns_wireformat[] = { LDNS_RDF_TYPE_DNAME };
3409a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_md_wireformat[] = { LDNS_RDF_TYPE_DNAME };
3509a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_mf_wireformat[] = { LDNS_RDF_TYPE_DNAME };
3609a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_cname_wireformat[] = { LDNS_RDF_TYPE_DNAME };
3709a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_soa_wireformat[] = {
3809a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_INT32,
3909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_PERIOD, LDNS_RDF_TYPE_PERIOD, LDNS_RDF_TYPE_PERIOD,
4009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_PERIOD
4109a3aaf3SDag-Erling Smørgrav };
4209a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_mb_wireformat[] = { LDNS_RDF_TYPE_DNAME };
4309a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_mg_wireformat[] = { LDNS_RDF_TYPE_DNAME };
4409a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_mr_wireformat[] = { LDNS_RDF_TYPE_DNAME };
4509a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_wks_wireformat[] = {
4609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_A, LDNS_RDF_TYPE_WKS
4709a3aaf3SDag-Erling Smørgrav };
4809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_ptr_wireformat[] = { LDNS_RDF_TYPE_DNAME };
4909a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_hinfo_wireformat[] = {
5009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_STR, LDNS_RDF_TYPE_STR
5109a3aaf3SDag-Erling Smørgrav };
5209a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_minfo_wireformat[] = {
5309a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_DNAME
5409a3aaf3SDag-Erling Smørgrav };
5509a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_mx_wireformat[] = {
5609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_DNAME
5709a3aaf3SDag-Erling Smørgrav };
5809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_rp_wireformat[] = {
5909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_DNAME
6009a3aaf3SDag-Erling Smørgrav };
6109a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_afsdb_wireformat[] = {
6209a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_DNAME
6309a3aaf3SDag-Erling Smørgrav };
6409a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_x25_wireformat[] = { LDNS_RDF_TYPE_STR };
6509a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_isdn_wireformat[] = {
6609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_STR, LDNS_RDF_TYPE_STR
6709a3aaf3SDag-Erling Smørgrav };
6809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_rt_wireformat[] = {
6909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_DNAME
7009a3aaf3SDag-Erling Smørgrav };
7109a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_nsap_wireformat[] = {
7209a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_NSAP
7309a3aaf3SDag-Erling Smørgrav };
7409a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_nsap_ptr_wireformat[] = {
7509a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_STR
7609a3aaf3SDag-Erling Smørgrav };
7709a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_sig_wireformat[] = {
7809a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_TYPE, LDNS_RDF_TYPE_ALG, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT32,
7909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_TIME, LDNS_RDF_TYPE_TIME, LDNS_RDF_TYPE_INT16,
8009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_B64
8109a3aaf3SDag-Erling Smørgrav };
8209a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_key_wireformat[] = {
8309a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_B64
8409a3aaf3SDag-Erling Smørgrav };
8509a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_px_wireformat[] = {
8609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_DNAME
8709a3aaf3SDag-Erling Smørgrav };
8809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_gpos_wireformat[] = {
8909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_STR, LDNS_RDF_TYPE_STR, LDNS_RDF_TYPE_STR
9009a3aaf3SDag-Erling Smørgrav };
9109a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_aaaa_wireformat[] = { LDNS_RDF_TYPE_AAAA };
9209a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_loc_wireformat[] = { LDNS_RDF_TYPE_LOC };
9309a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_nxt_wireformat[] = {
9409a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_UNKNOWN
9509a3aaf3SDag-Erling Smørgrav };
9609a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_eid_wireformat[] = {
9709a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_HEX
9809a3aaf3SDag-Erling Smørgrav };
9909a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_nimloc_wireformat[] = {
10009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_HEX
10109a3aaf3SDag-Erling Smørgrav };
10209a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_srv_wireformat[] = {
10309a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_DNAME
10409a3aaf3SDag-Erling Smørgrav };
10509a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_atma_wireformat[] = {
10609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_ATMA
10709a3aaf3SDag-Erling Smørgrav };
10809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_naptr_wireformat[] = {
10909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_STR, LDNS_RDF_TYPE_STR, LDNS_RDF_TYPE_STR, LDNS_RDF_TYPE_DNAME
11009a3aaf3SDag-Erling Smørgrav };
11109a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_kx_wireformat[] = {
11209a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_DNAME
11309a3aaf3SDag-Erling Smørgrav };
11409a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_cert_wireformat[] = {
11509a3aaf3SDag-Erling Smørgrav 	 LDNS_RDF_TYPE_CERT_ALG, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_ALG, LDNS_RDF_TYPE_B64
11609a3aaf3SDag-Erling Smørgrav };
11709a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_a6_wireformat[] = { LDNS_RDF_TYPE_UNKNOWN };
11809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_dname_wireformat[] = { LDNS_RDF_TYPE_DNAME };
11909a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_sink_wireformat[] = { LDNS_RDF_TYPE_INT8,
12009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_B64
12109a3aaf3SDag-Erling Smørgrav };
12209a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_apl_wireformat[] = {
12309a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_APL
12409a3aaf3SDag-Erling Smørgrav };
12509a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_ds_wireformat[] = {
12609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_ALG, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_HEX
12709a3aaf3SDag-Erling Smørgrav };
12809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_sshfp_wireformat[] = {
12909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_HEX
13009a3aaf3SDag-Erling Smørgrav };
13109a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_ipseckey_wireformat[] = {
13209a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_IPSECKEY
13309a3aaf3SDag-Erling Smørgrav };
13409a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_rrsig_wireformat[] = {
13509a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_TYPE, LDNS_RDF_TYPE_ALG, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT32,
13609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_TIME, LDNS_RDF_TYPE_TIME, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_B64
13709a3aaf3SDag-Erling Smørgrav };
13809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_nsec_wireformat[] = {
13909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_NSEC
14009a3aaf3SDag-Erling Smørgrav };
14109a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_dhcid_wireformat[] = {
14209a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_B64
14309a3aaf3SDag-Erling Smørgrav };
14409a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_talink_wireformat[] = {
14509a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_DNAME, LDNS_RDF_TYPE_DNAME
14609a3aaf3SDag-Erling Smørgrav };
147f61ef7f6SDag-Erling Smørgrav static const sldns_rdf_type type_openpgpkey_wireformat[] = {
148f61ef7f6SDag-Erling Smørgrav 	LDNS_RDF_TYPE_B64
149f61ef7f6SDag-Erling Smørgrav };
150f61ef7f6SDag-Erling Smørgrav static const sldns_rdf_type type_csync_wireformat[] = {
151f61ef7f6SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT32, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_NSEC
152f61ef7f6SDag-Erling Smørgrav };
1535469a995SCy Schubert static const sldns_rdf_type type_zonemd_wireformat[] = {
1545469a995SCy Schubert 	LDNS_RDF_TYPE_INT32, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_HEX
1555469a995SCy Schubert };
1565469a995SCy Schubert static const sldns_rdf_type type_svcb_wireformat[] = {
1575469a995SCy Schubert 	LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_DNAME
1585469a995SCy Schubert };
15909a3aaf3SDag-Erling Smørgrav /* nsec3 is some vars, followed by same type of data of nsec */
16009a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_nsec3_wireformat[] = {
16109a3aaf3SDag-Erling Smørgrav /*	LDNS_RDF_TYPE_NSEC3_VARS, LDNS_RDF_TYPE_NSEC3_NEXT_OWNER, LDNS_RDF_TYPE_NSEC*/
16209a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT8, LDNS_RDF_TYPE_INT16, LDNS_RDF_TYPE_NSEC3_SALT, LDNS_RDF_TYPE_NSEC3_NEXT_OWNER, LDNS_RDF_TYPE_NSEC
16309a3aaf3SDag-Erling Smørgrav };
16409a3aaf3SDag-Erling Smørgrav 
16509a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_nsec3param_wireformat[] = {
16609a3aaf3SDag-Erling Smørgrav /*	LDNS_RDF_TYPE_NSEC3_PARAMS_VARS*/
16709a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT8,
16809a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT8,
16909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
17009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_NSEC3_SALT
17109a3aaf3SDag-Erling Smørgrav };
17209a3aaf3SDag-Erling Smørgrav 
17309a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_dnskey_wireformat[] = {
17409a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
17509a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT8,
17609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_ALG,
17709a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_B64
17809a3aaf3SDag-Erling Smørgrav };
17909a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_tkey_wireformat[] = {
18009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_DNAME,
18109a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_TIME,
18209a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_TIME,
18309a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
184c7f4d7adSDag-Erling Smørgrav 	LDNS_RDF_TYPE_TSIGERROR,
18509a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16_DATA,
18609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16_DATA,
18709a3aaf3SDag-Erling Smørgrav };
18809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_tsig_wireformat[] = {
18909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_DNAME,
19009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_TSIGTIME,
19109a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
19209a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16_DATA,
19309a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
194c7f4d7adSDag-Erling Smørgrav 	LDNS_RDF_TYPE_TSIGERROR,
19509a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16_DATA
19609a3aaf3SDag-Erling Smørgrav };
19709a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_tlsa_wireformat[] = {
19809a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT8,
19909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT8,
20009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT8,
20109a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_HEX
20209a3aaf3SDag-Erling Smørgrav };
20309a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_hip_wireformat[] = {
20409a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_HIP
20509a3aaf3SDag-Erling Smørgrav };
20609a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_nid_wireformat[] = {
20709a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
20809a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_ILNP64
20909a3aaf3SDag-Erling Smørgrav };
21009a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_l32_wireformat[] = {
21109a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
21209a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_A
21309a3aaf3SDag-Erling Smørgrav };
21409a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_l64_wireformat[] = {
21509a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
21609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_ILNP64
21709a3aaf3SDag-Erling Smørgrav };
21809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_lp_wireformat[] = {
21909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
22009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_DNAME
22109a3aaf3SDag-Erling Smørgrav };
22209a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_eui48_wireformat[] = {
22309a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_EUI48
22409a3aaf3SDag-Erling Smørgrav };
22509a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_eui64_wireformat[] = {
22609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_EUI64
22709a3aaf3SDag-Erling Smørgrav };
22809a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_uri_wireformat[] = {
22909a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
23009a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT16,
23109a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_LONG_STR
23209a3aaf3SDag-Erling Smørgrav };
23309a3aaf3SDag-Erling Smørgrav static const sldns_rdf_type type_caa_wireformat[] = {
23409a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_INT8,
23509a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_TAG,
23609a3aaf3SDag-Erling Smørgrav 	LDNS_RDF_TYPE_LONG_STR
23709a3aaf3SDag-Erling Smørgrav };
23809a3aaf3SDag-Erling Smørgrav 
23909a3aaf3SDag-Erling Smørgrav /* All RR's defined in 1035 are well known and can thus
24009a3aaf3SDag-Erling Smørgrav  * be compressed. See RFC3597. These RR's are:
24109a3aaf3SDag-Erling Smørgrav  * CNAME HINFO MB MD MF MG MINFO MR MX NULL NS PTR SOA TXT
24209a3aaf3SDag-Erling Smørgrav  */
24309a3aaf3SDag-Erling Smørgrav static sldns_rr_descriptor rdata_field_descriptors[] = {
24409a3aaf3SDag-Erling Smørgrav 	/* 0 */
2450eefd307SCy Schubert 	{(enum sldns_enum_rr_type)0, NULL, 0, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
24609a3aaf3SDag-Erling Smørgrav 	/* 1 */
24709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_A, "A", 1, 1, type_a_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
24809a3aaf3SDag-Erling Smørgrav 	/* 2 */
24909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NS, "NS", 1, 1, type_ns_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 1 },
25009a3aaf3SDag-Erling Smørgrav 	/* 3 */
25109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_MD, "MD", 1, 1, type_md_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 1 },
25209a3aaf3SDag-Erling Smørgrav 	/* 4 */
25309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_MF, "MF", 1, 1, type_mf_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 1 },
25409a3aaf3SDag-Erling Smørgrav 	/* 5 */
25509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_CNAME, "CNAME", 1, 1, type_cname_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 1 },
25609a3aaf3SDag-Erling Smørgrav 	/* 6 */
25709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_SOA, "SOA", 7, 7, type_soa_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 2 },
25809a3aaf3SDag-Erling Smørgrav 	/* 7 */
25909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_MB, "MB", 1, 1, type_mb_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 1 },
26009a3aaf3SDag-Erling Smørgrav 	/* 8 */
26109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_MG, "MG", 1, 1, type_mg_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 1 },
26209a3aaf3SDag-Erling Smørgrav 	/* 9 */
26309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_MR, "MR", 1, 1, type_mr_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 1 },
26409a3aaf3SDag-Erling Smørgrav 	/* 10 */
26509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NULL, "NULL", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
26609a3aaf3SDag-Erling Smørgrav 	/* 11 */
26709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_WKS, "WKS", 2, 2, type_wks_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
26809a3aaf3SDag-Erling Smørgrav 	/* 12 */
26909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_PTR, "PTR", 1, 1, type_ptr_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 1 },
27009a3aaf3SDag-Erling Smørgrav 	/* 13 */
27109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_HINFO, "HINFO", 2, 2, type_hinfo_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
27209a3aaf3SDag-Erling Smørgrav 	/* 14 */
27309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_MINFO, "MINFO", 2, 2, type_minfo_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 2 },
27409a3aaf3SDag-Erling Smørgrav 	/* 15 */
27509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_MX, "MX", 2, 2, type_mx_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_COMPRESS, 1 },
27609a3aaf3SDag-Erling Smørgrav 	/* 16 */
27709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_TXT, "TXT", 1, 0, NULL, LDNS_RDF_TYPE_STR, LDNS_RR_NO_COMPRESS, 0 },
27809a3aaf3SDag-Erling Smørgrav 	/* 17 */
27909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_RP, "RP", 2, 2, type_rp_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 2 },
28009a3aaf3SDag-Erling Smørgrav 	/* 18 */
28109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_AFSDB, "AFSDB", 2, 2, type_afsdb_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
28209a3aaf3SDag-Erling Smørgrav 	/* 19 */
28309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_X25, "X25", 1, 1, type_x25_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
28409a3aaf3SDag-Erling Smørgrav 	/* 20 */
28509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_ISDN, "ISDN", 1, 2, type_isdn_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
28609a3aaf3SDag-Erling Smørgrav 	/* 21 */
28709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_RT, "RT", 2, 2, type_rt_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
28809a3aaf3SDag-Erling Smørgrav 	/* 22 */
28909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NSAP, "NSAP", 1, 1, type_nsap_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
29009a3aaf3SDag-Erling Smørgrav 	/* 23 */
29109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NSAP_PTR, "NSAP-PTR", 1, 1, type_nsap_ptr_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
29209a3aaf3SDag-Erling Smørgrav 	/* 24 */
29309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_SIG, "SIG", 9, 9, type_sig_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
29409a3aaf3SDag-Erling Smørgrav 	/* 25 */
29509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_KEY, "KEY", 4, 4, type_key_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
29609a3aaf3SDag-Erling Smørgrav 	/* 26 */
29709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_PX, "PX", 3, 3, type_px_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 2 },
29809a3aaf3SDag-Erling Smørgrav 	/* 27 */
29909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_GPOS, "GPOS", 3, 3, type_gpos_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
30009a3aaf3SDag-Erling Smørgrav 	/* 28 */
30109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_AAAA, "AAAA", 1, 1, type_aaaa_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
30209a3aaf3SDag-Erling Smørgrav 	/* 29 */
30309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_LOC, "LOC", 1, 1, type_loc_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
30409a3aaf3SDag-Erling Smørgrav 	/* 30 */
30509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NXT, "NXT", 2, 2, type_nxt_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
30609a3aaf3SDag-Erling Smørgrav 	/* 31 */
30709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_EID, "EID", 1, 1, type_eid_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
30809a3aaf3SDag-Erling Smørgrav 	/* 32 */
30909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NIMLOC, "NIMLOC", 1, 1, type_nimloc_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
31009a3aaf3SDag-Erling Smørgrav 	/* 33 */
31109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_SRV, "SRV", 4, 4, type_srv_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
31209a3aaf3SDag-Erling Smørgrav 	/* 34 */
31309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_ATMA, "ATMA", 1, 1, type_atma_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
31409a3aaf3SDag-Erling Smørgrav 	/* 35 */
31509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NAPTR, "NAPTR", 6, 6, type_naptr_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
31609a3aaf3SDag-Erling Smørgrav 	/* 36 */
31709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_KX, "KX", 2, 2, type_kx_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
31809a3aaf3SDag-Erling Smørgrav 	/* 37 */
31909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_CERT, "CERT", 4, 4, type_cert_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
32009a3aaf3SDag-Erling Smørgrav 	/* 38 */
32109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_A6, "A6", 1, 1, type_a6_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
32209a3aaf3SDag-Erling Smørgrav 	/* 39 */
32309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_DNAME, "DNAME", 1, 1, type_dname_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
32409a3aaf3SDag-Erling Smørgrav 	/* 40 */
32509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_SINK, "SINK", 1, 1, type_sink_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
32609a3aaf3SDag-Erling Smørgrav 	/* 41 */
32709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_OPT, "OPT", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
32809a3aaf3SDag-Erling Smørgrav 	/* 42 */
32909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_APL, "APL", 0, 0, type_apl_wireformat, LDNS_RDF_TYPE_APL, LDNS_RR_NO_COMPRESS, 0 },
33009a3aaf3SDag-Erling Smørgrav 	/* 43 */
33109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_DS, "DS", 4, 4, type_ds_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
33209a3aaf3SDag-Erling Smørgrav 	/* 44 */
33309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_SSHFP, "SSHFP", 3, 3, type_sshfp_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
33409a3aaf3SDag-Erling Smørgrav 	/* 45 */
33509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_IPSECKEY, "IPSECKEY", 1, 1, type_ipseckey_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
33609a3aaf3SDag-Erling Smørgrav 	/* 46 */
33709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_RRSIG, "RRSIG", 9, 9, type_rrsig_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
33809a3aaf3SDag-Erling Smørgrav 	/* 47 */
33909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NSEC, "NSEC", 1, 2, type_nsec_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
34009a3aaf3SDag-Erling Smørgrav 	/* 48 */
34109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_DNSKEY, "DNSKEY", 4, 4, type_dnskey_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
34209a3aaf3SDag-Erling Smørgrav 	/* 49 */
34309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_DHCID, "DHCID", 1, 1, type_dhcid_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
34409a3aaf3SDag-Erling Smørgrav 	/* 50 */
34509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NSEC3, "NSEC3", 5, 6, type_nsec3_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
34609a3aaf3SDag-Erling Smørgrav 	/* 51 */
34709a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NSEC3PARAM, "NSEC3PARAM", 4, 4, type_nsec3param_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
34809a3aaf3SDag-Erling Smørgrav 	/* 52 */
34909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_TLSA, "TLSA", 4, 4, type_tlsa_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
350c7f4d7adSDag-Erling Smørgrav 	/* 53 */
351c7f4d7adSDag-Erling Smørgrav 	{LDNS_RR_TYPE_SMIMEA, "SMIMEA", 4, 4, type_tlsa_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3524c75e3aaSDag-Erling Smørgrav 	/* 54 */
3530eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE54", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
35409a3aaf3SDag-Erling Smørgrav         /* 55
35509a3aaf3SDag-Erling Smørgrav 	 * Hip ends with 0 or more Rendezvous Servers represented as dname's.
35609a3aaf3SDag-Erling Smørgrav 	 * Hence the LDNS_RDF_TYPE_DNAME _variable field and the _maximum field
35709a3aaf3SDag-Erling Smørgrav 	 * set to 0.
35809a3aaf3SDag-Erling Smørgrav 	 */
35909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_HIP, "HIP", 1, 1, type_hip_wireformat, LDNS_RDF_TYPE_DNAME, LDNS_RR_NO_COMPRESS, 0 },
36009a3aaf3SDag-Erling Smørgrav 
36109a3aaf3SDag-Erling Smørgrav #ifdef DRAFT_RRTYPES
36209a3aaf3SDag-Erling Smørgrav 	/* 56 */
36309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NINFO, "NINFO", 1, 0, NULL, LDNS_RDF_TYPE_STR, LDNS_RR_NO_COMPRESS, 0 },
36409a3aaf3SDag-Erling Smørgrav 	/* 57 */
36509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_RKEY, "RKEY", 4, 4, type_key_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
36609a3aaf3SDag-Erling Smørgrav #else
3670eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE56", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3680eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE57", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
36909a3aaf3SDag-Erling Smørgrav #endif
37009a3aaf3SDag-Erling Smørgrav 	/* 58 */
37109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_TALINK, "TALINK", 2, 2, type_talink_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 2 },
37209a3aaf3SDag-Erling Smørgrav 
37309a3aaf3SDag-Erling Smørgrav 	/* 59 */
37409a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_CDS, "CDS", 4, 4, type_ds_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
37509a3aaf3SDag-Erling Smørgrav 	/* 60 */
37609a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_CDNSKEY, "CDNSKEY", 4, 4, type_dnskey_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
377f61ef7f6SDag-Erling Smørgrav 	/* 61 */
378f61ef7f6SDag-Erling Smørgrav {LDNS_RR_TYPE_OPENPGPKEY, "OPENPGPKEY", 1, 1, type_openpgpkey_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
379f61ef7f6SDag-Erling Smørgrav 	/* 62 */
380f61ef7f6SDag-Erling Smørgrav 	{LDNS_RR_TYPE_CSYNC, "CSYNC", 3, 3, type_csync_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3815469a995SCy Schubert 	/* 63 */
3825469a995SCy Schubert 	{LDNS_RR_TYPE_ZONEMD, "ZONEMD", 4, 4, type_zonemd_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3835469a995SCy Schubert 	/* 64 */
384790c6b24SCy Schubert 	{LDNS_RR_TYPE_SVCB, "SVCB", 2, 2, type_svcb_wireformat, LDNS_RDF_TYPE_SVCPARAM, LDNS_RR_NO_COMPRESS, 1 },
3855469a995SCy Schubert 	/* 65 */
386790c6b24SCy Schubert 	{LDNS_RR_TYPE_HTTPS, "HTTPS", 2, 2, type_svcb_wireformat, LDNS_RDF_TYPE_SVCPARAM, LDNS_RR_NO_COMPRESS, 1 },
3870eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE66", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3880eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE67", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3890eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE68", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3900eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE69", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3910eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE70", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3920eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE71", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3930eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE72", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3940eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE73", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3950eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE74", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3960eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE75", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3970eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE76", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3980eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE77", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
3990eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE78", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4000eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE79", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4010eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE80", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4020eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE81", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4030eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE82", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4040eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE83", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4050eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE84", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4060eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE85", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4070eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE86", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4080eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE87", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4090eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE88", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4100eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE89", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4110eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE90", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4120eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE91", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4130eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE92", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4140eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE93", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4150eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE94", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4160eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE95", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4170eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE96", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4180eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE97", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4190eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE98", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
42009a3aaf3SDag-Erling Smørgrav 
42109a3aaf3SDag-Erling Smørgrav 	/* 99 */
42209a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_SPF,  "SPF", 1, 0, NULL, LDNS_RDF_TYPE_STR, LDNS_RR_NO_COMPRESS, 0 },
42309a3aaf3SDag-Erling Smørgrav 
42409a3aaf3SDag-Erling Smørgrav 	/* UINFO  [IANA-Reserved] */
4250eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE100", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
42609a3aaf3SDag-Erling Smørgrav 	/* UID    [IANA-Reserved] */
4270eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE101", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
42809a3aaf3SDag-Erling Smørgrav 	/* GID    [IANA-Reserved] */
4290eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE102", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
43009a3aaf3SDag-Erling Smørgrav 	/* UNSPEC [IANA-Reserved] */
4310eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE103", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
43209a3aaf3SDag-Erling Smørgrav 
43309a3aaf3SDag-Erling Smørgrav 	/* 104 */
43409a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_NID, "NID", 2, 2, type_nid_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
43509a3aaf3SDag-Erling Smørgrav 	/* 105 */
43609a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_L32, "L32", 2, 2, type_l32_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
43709a3aaf3SDag-Erling Smørgrav 	/* 106 */
43809a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_L64, "L64", 2, 2, type_l64_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
43909a3aaf3SDag-Erling Smørgrav 	/* 107 */
44009a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_LP, "LP", 2, 2, type_lp_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
44109a3aaf3SDag-Erling Smørgrav 
44209a3aaf3SDag-Erling Smørgrav 	/* 108 */
44309a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_EUI48, "EUI48", 1, 1, type_eui48_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
44409a3aaf3SDag-Erling Smørgrav 	/* 109 */
44509a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_EUI64, "EUI64", 1, 1, type_eui64_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
44609a3aaf3SDag-Erling Smørgrav 
4470eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE110", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4480eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE111", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4490eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE112", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4500eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE113", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4510eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE114", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4520eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE115", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4530eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE116", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4540eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE117", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4550eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE118", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4560eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE119", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4570eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE120", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4580eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE121", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4590eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE122", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4600eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE123", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4610eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE124", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4620eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE125", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4630eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE126", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4640eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE127", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4650eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE128", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4660eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE129", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4670eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE130", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4680eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE131", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4690eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE132", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4700eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE133", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4710eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE134", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4720eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE135", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4730eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE136", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4740eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE137", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4750eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE138", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4760eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE139", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4770eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE140", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4780eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE141", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4790eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE142", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4800eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE143", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4810eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE144", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4820eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE145", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4830eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE146", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4840eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE147", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4850eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE148", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4860eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE149", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4870eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE150", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4880eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE151", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4890eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE152", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4900eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE153", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4910eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE154", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4920eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE155", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4930eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE156", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4940eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE157", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4950eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE158", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4960eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE159", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4970eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE160", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4980eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE161", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
4990eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE162", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5000eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE163", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5010eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE164", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5020eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE165", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5030eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE166", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5040eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE167", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5050eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE168", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5060eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE169", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5070eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE170", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5080eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE171", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5090eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE172", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5100eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE173", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5110eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE174", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5120eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE175", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5130eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE176", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5140eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE177", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5150eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE178", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5160eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE179", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5170eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE180", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5180eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE181", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5190eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE182", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5200eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE183", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5210eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE184", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5220eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE185", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5230eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE186", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5240eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE187", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5250eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE188", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5260eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE189", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5270eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE190", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5280eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE191", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5290eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE192", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5300eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE193", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5310eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE194", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5320eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE195", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5330eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE196", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5340eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE197", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5350eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE198", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5360eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE199", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5370eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE200", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5380eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE201", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5390eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE202", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5400eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE203", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5410eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE204", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5420eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE205", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5430eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE206", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5440eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE207", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5450eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE208", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5460eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE209", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5470eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE210", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5480eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE211", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5490eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE212", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5500eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE213", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5510eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE214", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5520eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE215", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5530eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE216", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5540eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE217", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5550eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE218", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5560eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE219", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5570eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE220", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5580eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE221", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5590eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE222", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5600eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE223", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5610eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE224", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5620eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE225", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5630eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE226", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5640eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE227", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5650eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE228", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5660eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE229", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5670eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE230", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5680eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE231", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5690eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE232", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5700eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE233", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5710eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE234", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5720eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE235", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5730eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE236", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5740eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE237", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5750eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE238", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5760eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE239", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5770eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE240", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5780eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE241", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5790eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE242", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5800eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE243", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5810eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE244", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5820eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE245", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5830eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE246", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5840eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE247", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
5850eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE248", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
58609a3aaf3SDag-Erling Smørgrav 
58709a3aaf3SDag-Erling Smørgrav 	/* LDNS_RDF_TYPE_INT16_DATA takes two fields (length and data) as one.
58809a3aaf3SDag-Erling Smørgrav 	 * So, unlike RFC 2930 spec, we have 7 min/max rdf's i.s.o. 8/9.
58909a3aaf3SDag-Erling Smørgrav 	 */
59009a3aaf3SDag-Erling Smørgrav 	/* 249 */
59109a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_TKEY, "TKEY", 7, 7, type_tkey_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
59209a3aaf3SDag-Erling Smørgrav 	/* LDNS_RDF_TYPE_INT16_DATA takes two fields (length and data) as one.
59309a3aaf3SDag-Erling Smørgrav 	 * So, unlike RFC 2930 spec, we have 7 min/max rdf's i.s.o. 8/9.
59409a3aaf3SDag-Erling Smørgrav 	 */
59509a3aaf3SDag-Erling Smørgrav 	/* 250 */
59609a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_TSIG, "TSIG", 7, 7, type_tsig_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 1 },
59709a3aaf3SDag-Erling Smørgrav 
59809a3aaf3SDag-Erling Smørgrav 	/* IXFR: A request for a transfer of an incremental zone transfer */
59909a3aaf3SDag-Erling Smørgrav {LDNS_RR_TYPE_IXFR, "IXFR", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
60009a3aaf3SDag-Erling Smørgrav 	/* AXFR: A request for a transfer of an entire zone */
60109a3aaf3SDag-Erling Smørgrav {LDNS_RR_TYPE_AXFR, "AXFR", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
60209a3aaf3SDag-Erling Smørgrav 	/* MAILB: A request for mailbox-related records (MB, MG or MR) */
60309a3aaf3SDag-Erling Smørgrav {LDNS_RR_TYPE_MAILB, "MAILB", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
60409a3aaf3SDag-Erling Smørgrav 	/* MAILA: A request for mail agent RRs (Obsolete - see MX) */
60509a3aaf3SDag-Erling Smørgrav {LDNS_RR_TYPE_MAILA, "MAILA", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
60609a3aaf3SDag-Erling Smørgrav 	/* ANY: A request for all (available) records */
60709a3aaf3SDag-Erling Smørgrav {LDNS_RR_TYPE_ANY, "ANY", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
60809a3aaf3SDag-Erling Smørgrav 
60909a3aaf3SDag-Erling Smørgrav 	/* 256 */
61009a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_URI, "URI", 3, 3, type_uri_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
61109a3aaf3SDag-Erling Smørgrav 	/* 257 */
61209a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_CAA, "CAA", 3, 3, type_caa_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
613c7f4d7adSDag-Erling Smørgrav #ifdef DRAFT_RRTYPES
614c7f4d7adSDag-Erling Smørgrav 	/* 258 */
615c7f4d7adSDag-Erling Smørgrav 	{LDNS_RR_TYPE_AVC, "AVC", 1, 0, NULL, LDNS_RDF_TYPE_STR, LDNS_RR_NO_COMPRESS, 0 },
616c7f4d7adSDag-Erling Smørgrav #else
6170eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE258", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
618c7f4d7adSDag-Erling Smørgrav #endif
61909a3aaf3SDag-Erling Smørgrav 
62009a3aaf3SDag-Erling Smørgrav /* split in array, no longer contiguous */
62109a3aaf3SDag-Erling Smørgrav 
62209a3aaf3SDag-Erling Smørgrav #ifdef DRAFT_RRTYPES
62309a3aaf3SDag-Erling Smørgrav 	/* 32768 */
62409a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_TA, "TA", 4, 4, type_ds_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
62509a3aaf3SDag-Erling Smørgrav #else
6260eefd307SCy Schubert {(enum sldns_enum_rr_type)0, "TYPE32768", 1, 1, type_0_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 },
62709a3aaf3SDag-Erling Smørgrav #endif
62809a3aaf3SDag-Erling Smørgrav 	/* 32769 */
62909a3aaf3SDag-Erling Smørgrav 	{LDNS_RR_TYPE_DLV, "DLV", 4, 4, type_ds_wireformat, LDNS_RDF_TYPE_NONE, LDNS_RR_NO_COMPRESS, 0 }
63009a3aaf3SDag-Erling Smørgrav };
63109a3aaf3SDag-Erling Smørgrav 
63209a3aaf3SDag-Erling Smørgrav /**
63309a3aaf3SDag-Erling Smørgrav  * \def LDNS_RDATA_FIELD_DESCRIPTORS_COUNT
63409a3aaf3SDag-Erling Smørgrav  * computes the number of rdata fields
63509a3aaf3SDag-Erling Smørgrav  */
63609a3aaf3SDag-Erling Smørgrav #define LDNS_RDATA_FIELD_DESCRIPTORS_COUNT \
63709a3aaf3SDag-Erling Smørgrav 	(sizeof(rdata_field_descriptors)/sizeof(rdata_field_descriptors[0]))
63809a3aaf3SDag-Erling Smørgrav 
63909a3aaf3SDag-Erling Smørgrav const sldns_rr_descriptor *
sldns_rr_descript(uint16_t type)64009a3aaf3SDag-Erling Smørgrav sldns_rr_descript(uint16_t type)
64109a3aaf3SDag-Erling Smørgrav {
64209a3aaf3SDag-Erling Smørgrav 	size_t i;
64309a3aaf3SDag-Erling Smørgrav 	if (type < LDNS_RDATA_FIELD_DESCRIPTORS_COMMON) {
64409a3aaf3SDag-Erling Smørgrav 		return &rdata_field_descriptors[type];
64509a3aaf3SDag-Erling Smørgrav 	} else {
64609a3aaf3SDag-Erling Smørgrav 		/* because not all array index equals type code */
64709a3aaf3SDag-Erling Smørgrav 		for (i = LDNS_RDATA_FIELD_DESCRIPTORS_COMMON;
64809a3aaf3SDag-Erling Smørgrav 		     i < LDNS_RDATA_FIELD_DESCRIPTORS_COUNT;
64909a3aaf3SDag-Erling Smørgrav 		     i++) {
65009a3aaf3SDag-Erling Smørgrav 		        if (rdata_field_descriptors[i]._type == type) {
65109a3aaf3SDag-Erling Smørgrav 		     		return &rdata_field_descriptors[i];
65209a3aaf3SDag-Erling Smørgrav 			}
65309a3aaf3SDag-Erling Smørgrav 		}
65409a3aaf3SDag-Erling Smørgrav                 return &rdata_field_descriptors[0];
65509a3aaf3SDag-Erling Smørgrav 	}
65609a3aaf3SDag-Erling Smørgrav }
65709a3aaf3SDag-Erling Smørgrav 
65809a3aaf3SDag-Erling Smørgrav size_t
sldns_rr_descriptor_minimum(const sldns_rr_descriptor * descriptor)65909a3aaf3SDag-Erling Smørgrav sldns_rr_descriptor_minimum(const sldns_rr_descriptor *descriptor)
66009a3aaf3SDag-Erling Smørgrav {
66109a3aaf3SDag-Erling Smørgrav 	if (descriptor) {
66209a3aaf3SDag-Erling Smørgrav 		return descriptor->_minimum;
66309a3aaf3SDag-Erling Smørgrav 	} else {
66409a3aaf3SDag-Erling Smørgrav 		return 0;
66509a3aaf3SDag-Erling Smørgrav 	}
66609a3aaf3SDag-Erling Smørgrav }
66709a3aaf3SDag-Erling Smørgrav 
66809a3aaf3SDag-Erling Smørgrav size_t
sldns_rr_descriptor_maximum(const sldns_rr_descriptor * descriptor)66909a3aaf3SDag-Erling Smørgrav sldns_rr_descriptor_maximum(const sldns_rr_descriptor *descriptor)
67009a3aaf3SDag-Erling Smørgrav {
67109a3aaf3SDag-Erling Smørgrav 	if (descriptor) {
67209a3aaf3SDag-Erling Smørgrav 		if (descriptor->_variable != LDNS_RDF_TYPE_NONE) {
67309a3aaf3SDag-Erling Smørgrav 			return 65535; /* cannot be more than 64k */
67409a3aaf3SDag-Erling Smørgrav 		} else {
67509a3aaf3SDag-Erling Smørgrav 			return descriptor->_maximum;
67609a3aaf3SDag-Erling Smørgrav 		}
67709a3aaf3SDag-Erling Smørgrav 	} else {
67809a3aaf3SDag-Erling Smørgrav 		return 0;
67909a3aaf3SDag-Erling Smørgrav 	}
68009a3aaf3SDag-Erling Smørgrav }
68109a3aaf3SDag-Erling Smørgrav 
68209a3aaf3SDag-Erling Smørgrav sldns_rdf_type
sldns_rr_descriptor_field_type(const sldns_rr_descriptor * descriptor,size_t index)68309a3aaf3SDag-Erling Smørgrav sldns_rr_descriptor_field_type(const sldns_rr_descriptor *descriptor,
68409a3aaf3SDag-Erling Smørgrav                               size_t index)
68509a3aaf3SDag-Erling Smørgrav {
68609a3aaf3SDag-Erling Smørgrav 	assert(descriptor != NULL);
68709a3aaf3SDag-Erling Smørgrav 	assert(index < descriptor->_maximum
68809a3aaf3SDag-Erling Smørgrav 	       || descriptor->_variable != LDNS_RDF_TYPE_NONE);
68909a3aaf3SDag-Erling Smørgrav 	if (index < descriptor->_maximum) {
69009a3aaf3SDag-Erling Smørgrav 		return descriptor->_wireformat[index];
69109a3aaf3SDag-Erling Smørgrav 	} else {
69209a3aaf3SDag-Erling Smørgrav 		return descriptor->_variable;
69309a3aaf3SDag-Erling Smørgrav 	}
69409a3aaf3SDag-Erling Smørgrav }
69509a3aaf3SDag-Erling Smørgrav 
69609a3aaf3SDag-Erling Smørgrav sldns_rr_type
sldns_get_rr_type_by_name(const char * name)69709a3aaf3SDag-Erling Smørgrav sldns_get_rr_type_by_name(const char *name)
69809a3aaf3SDag-Erling Smørgrav {
69909a3aaf3SDag-Erling Smørgrav 	unsigned int i;
70009a3aaf3SDag-Erling Smørgrav 	const char *desc_name;
70109a3aaf3SDag-Erling Smørgrav 	const sldns_rr_descriptor *desc;
70209a3aaf3SDag-Erling Smørgrav 
70309a3aaf3SDag-Erling Smørgrav 	/* TYPEXX representation */
70409a3aaf3SDag-Erling Smørgrav 	if (strlen(name) > 4 && strncasecmp(name, "TYPE", 4) == 0) {
705*8f76bb7dSCy Schubert 		unsigned int a = atoi(name + 4);
706*8f76bb7dSCy Schubert 		if (a > LDNS_RR_TYPE_LAST) {
707*8f76bb7dSCy Schubert 			return (enum sldns_enum_rr_type)0;
708*8f76bb7dSCy Schubert 		}
709*8f76bb7dSCy Schubert 		return a;
71009a3aaf3SDag-Erling Smørgrav 	}
71109a3aaf3SDag-Erling Smørgrav 
71209a3aaf3SDag-Erling Smørgrav 	/* Normal types */
71309a3aaf3SDag-Erling Smørgrav 	for (i = 0; i < (unsigned int) LDNS_RDATA_FIELD_DESCRIPTORS_COUNT; i++) {
71409a3aaf3SDag-Erling Smørgrav 		desc = &rdata_field_descriptors[i];
71509a3aaf3SDag-Erling Smørgrav 		desc_name = desc->_name;
71609a3aaf3SDag-Erling Smørgrav 		if(desc_name &&
71709a3aaf3SDag-Erling Smørgrav 		   strlen(name) == strlen(desc_name) &&
71809a3aaf3SDag-Erling Smørgrav 		   strncasecmp(name, desc_name, strlen(desc_name)) == 0) {
71909a3aaf3SDag-Erling Smørgrav 			/* because not all array index equals type code */
72009a3aaf3SDag-Erling Smørgrav 			return desc->_type;
72109a3aaf3SDag-Erling Smørgrav 		}
72209a3aaf3SDag-Erling Smørgrav 	}
72309a3aaf3SDag-Erling Smørgrav 
72409a3aaf3SDag-Erling Smørgrav 	/* special cases for query types */
72509a3aaf3SDag-Erling Smørgrav 	if (strlen(name) == 4 && strncasecmp(name, "IXFR", 4) == 0) {
7260eefd307SCy Schubert 		return LDNS_RR_TYPE_IXFR;
72709a3aaf3SDag-Erling Smørgrav 	} else if (strlen(name) == 4 && strncasecmp(name, "AXFR", 4) == 0) {
7280eefd307SCy Schubert 		return LDNS_RR_TYPE_AXFR;
72909a3aaf3SDag-Erling Smørgrav 	} else if (strlen(name) == 5 && strncasecmp(name, "MAILB", 5) == 0) {
7300eefd307SCy Schubert 		return LDNS_RR_TYPE_MAILB;
73109a3aaf3SDag-Erling Smørgrav 	} else if (strlen(name) == 5 && strncasecmp(name, "MAILA", 5) == 0) {
7320eefd307SCy Schubert 		return LDNS_RR_TYPE_MAILA;
73309a3aaf3SDag-Erling Smørgrav 	} else if (strlen(name) == 3 && strncasecmp(name, "ANY", 3) == 0) {
7340eefd307SCy Schubert 		return LDNS_RR_TYPE_ANY;
73509a3aaf3SDag-Erling Smørgrav 	}
73609a3aaf3SDag-Erling Smørgrav 
7370eefd307SCy Schubert 	return (enum sldns_enum_rr_type)0;
73809a3aaf3SDag-Erling Smørgrav }
73909a3aaf3SDag-Erling Smørgrav 
74009a3aaf3SDag-Erling Smørgrav sldns_rr_class
sldns_get_rr_class_by_name(const char * name)74109a3aaf3SDag-Erling Smørgrav sldns_get_rr_class_by_name(const char *name)
74209a3aaf3SDag-Erling Smørgrav {
74309a3aaf3SDag-Erling Smørgrav 	sldns_lookup_table *lt;
74409a3aaf3SDag-Erling Smørgrav 
74509a3aaf3SDag-Erling Smørgrav 	/* CLASSXX representation */
74609a3aaf3SDag-Erling Smørgrav 	if (strlen(name) > 5 && strncasecmp(name, "CLASS", 5) == 0) {
747*8f76bb7dSCy Schubert 		unsigned int a = atoi(name + 5);
748*8f76bb7dSCy Schubert 		if (a > LDNS_RR_CLASS_LAST) {
749*8f76bb7dSCy Schubert 			return (enum sldns_enum_rr_class)0;
750*8f76bb7dSCy Schubert 		}
751*8f76bb7dSCy Schubert 		return a;
75209a3aaf3SDag-Erling Smørgrav 	}
75309a3aaf3SDag-Erling Smørgrav 
75409a3aaf3SDag-Erling Smørgrav 	/* Normal types */
75509a3aaf3SDag-Erling Smørgrav 	lt = sldns_lookup_by_name(sldns_rr_classes, name);
75609a3aaf3SDag-Erling Smørgrav 	if (lt) {
75709a3aaf3SDag-Erling Smørgrav 		return lt->id;
75809a3aaf3SDag-Erling Smørgrav 	}
75909a3aaf3SDag-Erling Smørgrav 	return 0;
76009a3aaf3SDag-Erling Smørgrav }
761