diff -Naur dsc-200706121022.orig/presenter/perllib/DSC/extractor/config.pm dsc-200706121022-ag/presenter/perllib/DSC/extractor/config.pm
--- dsc-200706121022.orig/presenter/perllib/DSC/extractor/config.pm	2007-05-15 21:39:54.000000000 +0200
+++ dsc-200706121022-ag/presenter/perllib/DSC/extractor/config.pm	2007-12-06 16:29:35.134290000 +0100
@@ -331,6 +331,28 @@
     },
   },
 
+  dns_ip_version_vs_qtype => {
+    ndim	=> 2,
+    type1	=> 'IPVersion',
+    type2       => 'Qtype',
+    outputs	=> {
+      dns_ip_version => {
+	keys2	=> [ qw(1 2 5 6 12 15 28 33 38 255 else) ],
+	data_munger => \&main::munge_elsify,
+	data_reader => \&DSC::extractor::read_data4,
+	data_merger => \&main::merge_trace,
+	data_writer => \&DSC::extractor::write_data4,
+      },
+      dns_ip_version_vs_qtype => {
+	keys2	=> [ qw(1 2 5 6 12 15 28 33 38 255 else) ],
+	data_munger	=> \&main::munge_elsify,
+	data_reader	=> \&DSC::extractor::read_data3,
+	data_merger	=> \&main::merge_accum2d,
+	data_writer	=> \&DSC::extractor::write_data3,
+	#data_trimer	=> \&main::trim_accum2d,
+      },
+    },
+  },
 );
 
 1;
diff -Naur dsc-200706121022.orig/presenter/perllib/DSC/grapher/plot.pm dsc-200706121022-ag/presenter/perllib/DSC/grapher/plot.pm
--- dsc-200706121022.orig/presenter/perllib/DSC/grapher/plot.pm	2007-05-15 22:34:33.000000000 +0200
+++ dsc-200706121022-ag/presenter/perllib/DSC/grapher/plot.pm	2007-12-06 16:38:57.280048000 +0100
@@ -455,6 +455,44 @@
    }
   },
 
+  dns_ip_version => {
+    dataset     => 'dns_ip_version_vs_qtype',
+    plot_type   => 'trace',
+    keys	=> [qw(IPv4 IPv6 else)],
+    names	=> [qw(IPv4 IPv6 Other)],
+    colors	=> [qw(red brightgreen purple)],
+    data_reader => \&DSC::extractor::read_data4,
+    data_summer => \&DSC::grapher::data_summer_2d,
+    yaxes	=> {
+        rate => {
+            label => 'Queries Rate (q/s)',
+            divideflag => 1,
+            default => 1,
+        },
+        percent => {
+            label => 'Percent of Queries',
+            divideflag => 0,
+            default => 0,
+        },
+    },
+    plottitle   => 'IP Version Carrying DNS Queries',
+    map_legend	=> 1,
+    munge_func  => \&DSC::grapher::munge_sum_2d_to_1d,
+  },
+
+  dns_ip_version_vs_qtype => {
+    plot_type => 'accum2d',
+    divideflag 	=> 0,
+    keys	=> $qtype_keys,
+    names	=> $qtype_names,
+    colors	=> $qtype_colors,
+    data_reader => \&DSC::extractor::read_data3,
+    data_summer => \&DSC::grapher::data_summer_1d,
+    yaxes	=> $std_accum_yaxes,
+    plottitle   => 'Query Types by IP version',
+    map_legend	=> 1,
+  },
+
   transport_vs_qtype => {
     dataset => 'transport_vs_qtype',
     plot_type => 'trace',
diff -Naur dsc-200706121022.orig/presenter/perllib/DSC/grapher.pm dsc-200706121022-ag/presenter/perllib/DSC/grapher.pm
--- dsc-200706121022.orig/presenter/perllib/DSC/grapher.pm	2007-05-15 22:31:53.000000000 +0200
+++ dsc-200706121022-ag/presenter/perllib/DSC/grapher.pm	2007-12-06 16:46:06.972539000 +0100
@@ -984,7 +984,7 @@
 	return 1;
 }
 
-sub data_summer_0d {
+sub data_summer0d {
 	my $from = shift;
 	my $to = shift;
 	my $start = time;
@@ -1250,6 +1250,10 @@
 		push(@items, sublist_item() . navbar_item('plot','edns_version', 'EDNS version'));
 	}
 	push(@items, navbar_item('plot','chaos_types_and_names','CHAOS'));
+	push(@items, navbar_item('plot','dns_ip_version','IP Version'));
+	if ($pn =~ /dns_ip_version|dns_ip_version_vs_qtype/) {
+	    push(@items, sublist_item() . navbar_item('plot', 'dns_ip_version_vs_qtype', 'Query Types'));
+	}
 	push(@items, navbar_item('plot','transport_vs_qtype','DNS Transport'));
 	push(@items, navbar_item('plot','direction_vs_ipproto','IP Protocols'));
 	push(@items, navbar_item('plot','qtype_vs_qnamelen','Qname Length'));
