1 // Copyright 2003-2005 Arthur van Hoff, Rick Blair
2 // Licensed under Apache License version 2.0
3 // Original license LGPL
4 
5 package javax.jmdns.impl.constants;
6 
7 /**
8  * DNS constants.
9  *
10  * @author Arthur van Hoff, Jeff Sonstein, Werner Randelshofer, Pierre Frisch, Rick Blair
11  */
12 public 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