xref: /aosp_15_r20/bionic/libc/kernel/uapi/linux/dns_resolver.h (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard Worker /*
2*8d67ca89SAndroid Build Coastguard Worker  * This file is auto-generated. Modifications will be lost.
3*8d67ca89SAndroid Build Coastguard Worker  *
4*8d67ca89SAndroid Build Coastguard Worker  * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5*8d67ca89SAndroid Build Coastguard Worker  * for more information.
6*8d67ca89SAndroid Build Coastguard Worker  */
7*8d67ca89SAndroid Build Coastguard Worker #ifndef _UAPI_LINUX_DNS_RESOLVER_H
8*8d67ca89SAndroid Build Coastguard Worker #define _UAPI_LINUX_DNS_RESOLVER_H
9*8d67ca89SAndroid Build Coastguard Worker #include <linux/types.h>
10*8d67ca89SAndroid Build Coastguard Worker enum dns_payload_content_type {
11*8d67ca89SAndroid Build Coastguard Worker   DNS_PAYLOAD_IS_SERVER_LIST = 0,
12*8d67ca89SAndroid Build Coastguard Worker };
13*8d67ca89SAndroid Build Coastguard Worker enum dns_payload_address_type {
14*8d67ca89SAndroid Build Coastguard Worker   DNS_ADDRESS_IS_IPV4 = 0,
15*8d67ca89SAndroid Build Coastguard Worker   DNS_ADDRESS_IS_IPV6 = 1,
16*8d67ca89SAndroid Build Coastguard Worker };
17*8d67ca89SAndroid Build Coastguard Worker enum dns_payload_protocol_type {
18*8d67ca89SAndroid Build Coastguard Worker   DNS_SERVER_PROTOCOL_UNSPECIFIED = 0,
19*8d67ca89SAndroid Build Coastguard Worker   DNS_SERVER_PROTOCOL_UDP = 1,
20*8d67ca89SAndroid Build Coastguard Worker   DNS_SERVER_PROTOCOL_TCP = 2,
21*8d67ca89SAndroid Build Coastguard Worker };
22*8d67ca89SAndroid Build Coastguard Worker enum dns_record_source {
23*8d67ca89SAndroid Build Coastguard Worker   DNS_RECORD_UNAVAILABLE = 0,
24*8d67ca89SAndroid Build Coastguard Worker   DNS_RECORD_FROM_CONFIG = 1,
25*8d67ca89SAndroid Build Coastguard Worker   DNS_RECORD_FROM_DNS_A = 2,
26*8d67ca89SAndroid Build Coastguard Worker   DNS_RECORD_FROM_DNS_AFSDB = 3,
27*8d67ca89SAndroid Build Coastguard Worker   DNS_RECORD_FROM_DNS_SRV = 4,
28*8d67ca89SAndroid Build Coastguard Worker   DNS_RECORD_FROM_NSS = 5,
29*8d67ca89SAndroid Build Coastguard Worker   NR__dns_record_source
30*8d67ca89SAndroid Build Coastguard Worker };
31*8d67ca89SAndroid Build Coastguard Worker enum dns_lookup_status {
32*8d67ca89SAndroid Build Coastguard Worker   DNS_LOOKUP_NOT_DONE = 0,
33*8d67ca89SAndroid Build Coastguard Worker   DNS_LOOKUP_GOOD = 1,
34*8d67ca89SAndroid Build Coastguard Worker   DNS_LOOKUP_GOOD_WITH_BAD = 2,
35*8d67ca89SAndroid Build Coastguard Worker   DNS_LOOKUP_BAD = 3,
36*8d67ca89SAndroid Build Coastguard Worker   DNS_LOOKUP_GOT_NOT_FOUND = 4,
37*8d67ca89SAndroid Build Coastguard Worker   DNS_LOOKUP_GOT_LOCAL_FAILURE = 5,
38*8d67ca89SAndroid Build Coastguard Worker   DNS_LOOKUP_GOT_TEMP_FAILURE = 6,
39*8d67ca89SAndroid Build Coastguard Worker   DNS_LOOKUP_GOT_NS_FAILURE = 7,
40*8d67ca89SAndroid Build Coastguard Worker   NR__dns_lookup_status
41*8d67ca89SAndroid Build Coastguard Worker };
42*8d67ca89SAndroid Build Coastguard Worker struct dns_payload_header {
43*8d67ca89SAndroid Build Coastguard Worker   __u8 zero;
44*8d67ca89SAndroid Build Coastguard Worker   __u8 content;
45*8d67ca89SAndroid Build Coastguard Worker   __u8 version;
46*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__));
47*8d67ca89SAndroid Build Coastguard Worker struct dns_server_list_v1_header {
48*8d67ca89SAndroid Build Coastguard Worker   struct dns_payload_header hdr;
49*8d67ca89SAndroid Build Coastguard Worker   __u8 source;
50*8d67ca89SAndroid Build Coastguard Worker   __u8 status;
51*8d67ca89SAndroid Build Coastguard Worker   __u8 nr_servers;
52*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__));
53*8d67ca89SAndroid Build Coastguard Worker struct dns_server_list_v1_server {
54*8d67ca89SAndroid Build Coastguard Worker   __u16 name_len;
55*8d67ca89SAndroid Build Coastguard Worker   __u16 priority;
56*8d67ca89SAndroid Build Coastguard Worker   __u16 weight;
57*8d67ca89SAndroid Build Coastguard Worker   __u16 port;
58*8d67ca89SAndroid Build Coastguard Worker   __u8 source;
59*8d67ca89SAndroid Build Coastguard Worker   __u8 status;
60*8d67ca89SAndroid Build Coastguard Worker   __u8 protocol;
61*8d67ca89SAndroid Build Coastguard Worker   __u8 nr_addrs;
62*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__));
63*8d67ca89SAndroid Build Coastguard Worker struct dns_server_list_v1_address {
64*8d67ca89SAndroid Build Coastguard Worker   __u8 address_type;
65*8d67ca89SAndroid Build Coastguard Worker } __attribute__((__packed__));
66*8d67ca89SAndroid Build Coastguard Worker #endif
67