go.net/ipv6: do not measure preparation time in datagram benchmark

Update golang/go#5538

R=dave
CC=golang-dev
https://golang.org/cl/10044047
diff --git a/ipv6/unicast_test.go b/ipv6/unicast_test.go
index 3393858..c79847d 100644
--- a/ipv6/unicast_test.go
+++ b/ipv6/unicast_test.go
@@ -32,16 +32,17 @@
 	}
 	defer c.Close()
 
+	wb, rb := []byte("HELLO-R-U-THERE"), make([]byte, 128)
+	b.ResetTimer()
 	for i := 0; i < b.N; i++ {
-		benchmarkReadWriteNetUDP(b, c, dst)
+		benchmarkReadWriteNetUDP(b, c, wb, rb, dst)
 	}
 }
 
-func benchmarkReadWriteNetUDP(b *testing.B, c net.PacketConn, dst net.Addr) {
-	if _, err := c.WriteTo([]byte("HELLO-R-U-THERE"), dst); err != nil {
+func benchmarkReadWriteNetUDP(b *testing.B, c net.PacketConn, wb, rb []byte, dst net.Addr) {
+	if _, err := c.WriteTo(wb, dst); err != nil {
 		b.Fatalf("net.PacketConn.WriteTo failed: %v", err)
 	}
-	rb := make([]byte, 128)
 	if _, _, err := c.ReadFrom(rb); err != nil {
 		b.Fatalf("net.PacketConn.ReadFrom failed: %v", err)
 	}
@@ -61,12 +62,14 @@
 	}
 	ifi := loopbackInterface()
 
+	wb, rb := []byte("HELLO-R-U-THERE"), make([]byte, 128)
+	b.ResetTimer()
 	for i := 0; i < b.N; i++ {
-		benchmarkReadWriteIPv6UDP(b, p, dst, ifi)
+		benchmarkReadWriteIPv6UDP(b, p, wb, rb, dst, ifi)
 	}
 }
 
-func benchmarkReadWriteIPv6UDP(b *testing.B, p *ipv6.PacketConn, dst net.Addr, ifi *net.Interface) {
+func benchmarkReadWriteIPv6UDP(b *testing.B, p *ipv6.PacketConn, wb, rb []byte, dst net.Addr, ifi *net.Interface) {
 	cm := ipv6.ControlMessage{
 		TrafficClass: DiffServAF11 | CongestionExperienced,
 		HopLimit:     1,
@@ -74,10 +77,9 @@
 	if ifi != nil {
 		cm.IfIndex = ifi.Index
 	}
-	if _, err := p.WriteTo([]byte("HELLO-R-U-THERE"), &cm, dst); err != nil {
+	if _, err := p.WriteTo(wb, &cm, dst); err != nil {
 		b.Fatalf("ipv6.PacketConn.WriteTo failed: %v", err)
 	}
-	rb := make([]byte, 128)
 	if _, _, _, err := p.ReadFrom(rb); err != nil {
 		b.Fatalf("ipv6.PacketConn.ReadFrom failed: %v", err)
 	}