static int hf_dns_opt_client_addr6 = -1;
static int hf_dns_opt_cookie_client = -1;
static int hf_dns_opt_cookie_server = -1;
+static int hf_dns_opt_edns_tcp_keepalive_timeout = -1;
static int hf_dns_nsec3_algo = -1;
static int hf_dns_nsec3_flags = -1;
static int hf_dns_nsec3_flag_optout = -1;
#define O_EDNS_EXPIRE 9 /* EDNS Expire (RFC7314) */
#define O_CLIENT_SUBNET_EXP 0x50fa /* Client subnet (placeholder value, draft-vandergaast-edns-client-subnet) */
#define O_COOKIE 10 /* draft-ietf-dnsop-cookie */
+#define O_EDNS_TCP_KA 11 /* draft-ietf-dnsop-edns-tcp-keepalive */
static const true_false_string tfs_flags_response = {
"Message is a response",
{O_CLIENT_SUBNET, "CSUBNET - Client subnet" },
{O_EDNS_EXPIRE, "EDNS EXPIRE (RFC7314)"},
{O_COOKIE, "COOKIE"},
+ {O_EDNS_TCP_KA, "EDNS TCP Keepalive"},
{0, NULL}
};
/* DNS-Based Authentication of Named Entities (DANE) Parameters
optlen -= 8;
proto_tree_add_item(rropt_tree, hf_dns_opt_cookie_server, tvb, cur_offset, optlen, ENC_NA);
rropt_len -= optlen;
+ break;
+ case O_EDNS_TCP_KA:
+ if(optlen == 2){
+ proto_tree_add_item(rropt_tree, hf_dns_opt_edns_tcp_keepalive_timeout, tvb, cur_offset, 2, ENC_BIG_ENDIAN);
+ }
+ cur_offset += optlen;
+ rropt_len -= optlen;
break;
default:
cur_offset += optlen;
FT_BYTES, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
+ { &hf_dns_opt_edns_tcp_keepalive_timeout,
+ { "Timeout", "dns.opt.edns_tcp_keepalive.timeout",
+ FT_UINT16, BASE_DEC, NULL, 0x0,
+ "an idle timeout value for the TCP connection, specified in units of 100 milliseconds", HFILL }},
+
{ &hf_dns_count_questions,
{ "Questions", "dns.count.queries",
FT_UINT16, BASE_DEC, NULL, 0x0,