]> The Tcpdump Group git mirrors - tcpdump/blobdiff - nameser.h
TCP: Add a test with data in the RST segment
[tcpdump] / nameser.h
index 6610c6c7e3898a05bdc04898789962bd88424c1a..526c60cab3b94a86c27a1abffe577b459e6aa61b 100644 (file)
--- a/nameser.h
+++ b/nameser.h
 #define T_MAILB                253             /* transfer mailbox records */
 #define T_MAILA                254             /* transfer mail agent records */
 #define T_ANY          255             /* wildcard match */
+#define T_URI          256             /* uri records [RFC7553] */
 
 /*
  * Values for class field
 #define C_QU           0x8000          /* mDNS QU flag in queries */
 #define C_CACHE_FLUSH  0x8000          /* mDNS cache flush flag in replies */
 
+/*
+ * Values for EDNS option types
+ */
+#define E_LLQ           1       /* long lived queries protocol */
+#define E_UL            2       /* dynamic dns update leases */
+#define E_NSID          3       /* name server identifier */
+#define E_DAU           5       /* signal DNSSEC algorithm understood */
+#define E_DHU           6       /* signal DS hash understood */
+#define E_N3U           7       /* signal NSEC3 hash understood */
+#define E_ECS           8       /* EDNS client subnet */
+#define E_EXPIRE        9       /* zone expiration */
+#define E_COOKIE        10      /* DNS cookies */
+#define E_KEEPALIVE     11      /* TCP keepalive */
+#define E_PADDING       12      /* pad DNS messages */
+#define E_CHAIN         13      /* chain DNS queries */
+#define E_KEYTAG        14      /* EDNS key tag */
+#define E_CLIENTTAG     16      /* EDNS client tag */
+#define E_SERVERTAG     17      /* EDNS server tag */
+
+/*
+ * Values for DNSSEC Algorithms
+ * https://www.iana.org/assignments/dns-sec-alg-numbers/dns-sec-alg-numbers.xhtml
+ */
+
+#define A_DELETE                0
+#define A_RSAMD5                1
+#define A_DH                    2
+#define A_DSA                   3
+#define A_RSASHA1               5
+#define A_DSA_NSEC3_SHA1        6
+#define A_RSASHA1_NSEC3_SHA1    7
+#define A_RSASHA256             8
+#define A_RSASHA512             10
+#define A_ECC_GOST              12
+#define A_ECDSAP256SHA256       13
+#define A_ECDSAP384SHA384       14
+#define A_ED25519               15
+#define A_ED448                 16
+#define A_INDIRECT              252
+#define A_PRIVATEDNS            253
+#define A_PRIVATEOID            254
+
+/*
+ * Values for NSEC3 algorithms
+ * https://www.iana.org/assignments/dnssec-nsec3-parameters/dnssec-nsec3-parameters.xhtml
+ */
+#define NSEC_SHA1   1
+
+/*
+ * Values for delegation signer algorithms
+ * https://www.iana.org/assignments/ds-rr-types/ds-rr-types.xhtml
+ */
+#define DS_SHA1     1
+#define DS_SHA256   2
+#define DS_GOST     3
+#define DS_SHA384   4
+
+
 /*
  * Status return codes for T_UNSPEC conversion routines
  */
@@ -216,7 +275,7 @@ typedef struct {
        nd_uint16_t ancount;    /* number of answer entries */
        nd_uint16_t nscount;    /* number of authority entries */
        nd_uint16_t arcount;    /* number of resource entries */
-} HEADER;
+} dns_header_t;
 
 /*
  * Macros for subfields of flag fields.
@@ -234,8 +293,11 @@ typedef struct {
 /*
  * Defines for handling compressed domain names, EDNS0 labels, etc.
  */
-#define INDIR_MASK     0xc0    /* 11.... */
-#define EDNS0_MASK     0x40    /* 01.... */
+#define TYPE_MASK      0xc0    /* mask for the type bits of the item */
+#define TYPE_INDIR     0xc0    /* 11.... - pointer */
+#define TYPE_RESERVED  0x80    /* 10.... - reserved */
+#define TYPE_EDNS0     0x40    /* 01.... - EDNS(0) label */
+#define TYPE_LABEL     0x00    /* 00.... - regular label */
 #  define EDNS0_ELT_BITLABEL 0x01
 
 #endif /* !_NAMESER_H_ */