--- /dev/null
+Packet Types
+
+In DNS a packet can have a type, like NXDOMAIN or NODATA. Some of these
+types have been standardized and others have not. In ldns we have tried
+to formalize some of these constructs. This is all without DNSSEC.
+
+We currently differentiate between the following types:
+1. question
+2. referral
+3. answer
+4. nxdomain
+5. nodata
+6. servfail
+
+Properties of each type:
+
+QUESTION: look at the header bits???? Make it flageable?
+We should never have to look at the additional section.
+
+1. QUESTION
+ QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
+ 1 RR
+ located in question section
+ bits: qr off
+ status: NOERROR
+
+2. REFERRAL
+ QUERY: 1, ANSWER: 0, AUTHORITY: X, ADDITIONAL: 0
+ 1 RR
+ located in question section
+ X RRs
+ located in the authority section
+ (sometimes they are also put in the answer section...)
+ these are all NS records
+ bits: aa off
+ status: NOERROR
+
+3. ANSWER
+ QUERY: 1, ANSWER: X, AUTHORITY: 1+, ADDITIONAL: 0
+ 1 RR
+ located in question section
+ X RRs
+ located in the answer section
+ 1+ RR(s)
+ located in the authority section
+ should be of type NS
+ bits: aa on or off
+ status: NOERROR
+
+4. NXDOMAIN
+ QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
+ 1 RR
+ located in question section
+ 1 RR
+ located in the authority section
+ name should be of a zone above the one your looking for
+ type must be SOA (is it?)
+ bits: N/A
+ status: NXDOMAIN
+
+5. NODATA
+ QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
+ 1 RR
+ located in question section
+ 1 RR
+ located in the authority section
+ name should be of a zone above the one your looking for
+ type must be SOA (is it?)
+ bits: N/A
+ status: NOERROR
+
+6. SERVFAIL:
+ QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0
+ 1 RR
+ located in question section
+ bits: N/A
+ status: SERVFAIL