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
