| // Copyright 2013 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| package icmp |
| |
| import ( |
| "net" |
| |
| "golang.org/x/net/internal/iana" |
| ) |
| |
| const ipv6PseudoHeaderLen = 2*net.IPv6len + 8 |
| |
| // IPv6PseudoHeader returns an IPv6 pseudo header for checksum |
| // calculation. |
| func IPv6PseudoHeader(src, dst net.IP) []byte { |
| b := make([]byte, ipv6PseudoHeaderLen) |
| copy(b, src.To16()) |
| copy(b[net.IPv6len:], dst.To16()) |
| b[len(b)-1] = byte(iana.ProtocolIPv6ICMP) |
| return b |
| } |