1// Copyright 2003-2005 Arthur van Hoff, Rick Blair
2// Licensed under Apache License version 2.0
3// Original license LGPL
4
5package javax.jmdns.impl.constants;
6
7/**
8 * DNS constants.
9 *
10 * @author Arthur van Hoff, Jeff Sonstein, Werner Randelshofer, Pierre Frisch, Rick Blair
11 */
12public final class DNSConstants {
13    // http://www.iana.org/assignments/dns-parameters
14
15    // changed to final class - jeffs
16    public static final String MDNS_GROUP                     = "224.0.0.251";
17    public static final String MDNS_GROUP_IPV6                = "FF02::FB";
18    public static final int    MDNS_PORT                      = Integer.parseInt(System.getProperty("net.mdns.port", "5353"));
19    public static final int    DNS_PORT                       = 53;
20
21    // One hour expiration time
22    public static final int    DNS_TTL                        = 25; //60 * 60;
23
24    public static final int    MAX_MSG_TYPICAL                = 1460;
25    public static final int    MAX_MSG_ABSOLUTE               = 8972;
26
27    public static final int    FLAGS_QR_MASK                  = 0x8000;                                                       // Query response mask
28    public static final int    FLAGS_QR_QUERY                 = 0x0000;                                                       // Query
29    public static final int    FLAGS_QR_RESPONSE              = 0x8000;                                                       // Response
30
31    public static final int    FLAGS_AA                       = 0x0400;                                                       // Authorative answer
32    public static final int    FLAGS_TC                       = 0x0200;                                                       // Truncated
33    public static final int    FLAGS_RD                       = 0x0100;                                                       // Recursion desired
34    public static final int    FLAGS_RA                       = 0x8000;                                                       // Recursion available
35
36    public static final int    FLAGS_Z                        = 0x0040;                                                       // Zero
37    public static final int    FLAGS_AD                       = 0x0020;                                                       // Authentic data
38    public static final int    FLAGS_CD                       = 0x0010;                                                       // Checking disabled
39
40    // Time Intervals for various functions
41
42    public static final int    SHARED_QUERY_TIME              = 20;                                                           // milliseconds before send shared query
43    public static final int    QUERY_WAIT_INTERVAL            = 225;                                                          // milliseconds between query loops.
44    public static final int    PROBE_WAIT_INTERVAL            = 250;                                                          // milliseconds between probe loops.
45    public static final int    RESPONSE_MIN_WAIT_INTERVAL     = 20;                                                           // minimal wait interval for response.
46    public static final int    RESPONSE_MAX_WAIT_INTERVAL     = 115;                                                          // maximal wait interval for response
47    public static final int    PROBE_CONFLICT_INTERVAL        = 1000;                                                         // milliseconds to wait after conflict.
48    public static final int    PROBE_THROTTLE_COUNT           = 10;                                                           // After x tries go 1 time a sec. on probes.
49    public static final int    PROBE_THROTTLE_COUNT_INTERVAL  = 5000;                                                         // We only increment the throttle count, if the previous increment is inside this interval.
50    public static final int    ANNOUNCE_WAIT_INTERVAL         = 1000;                                                         // milliseconds between Announce loops.
51    public static final int    RECORD_REAPER_INTERVAL         = 10000;                                                        // milliseconds between cache cleanups.
52    public static final int    RECORD_EXPIRY_DELAY            = 1;                                                            // This is 1s delay used in ttl and therefore in seconds
53    public static final int    KNOWN_ANSWER_TTL               = 120;
54    public static final int    ANNOUNCED_RENEWAL_TTL_INTERVAL = DNS_TTL * 500;                                                // 50% of the TTL in milliseconds
55
56    public static final long   CLOSE_TIMEOUT                  = ANNOUNCE_WAIT_INTERVAL * 5L;
57    public static final long   SERVICE_INFO_TIMEOUT           = ANNOUNCE_WAIT_INTERVAL * 6L;
58
59    public static final int    NETWORK_CHECK_INTERVAL         = 10 * 1000;                                                    // 10 secondes
60
61}
62