1
// Copyright 2012 The Go Authors. All rights reserved.
2
// Use of this source code is governed by a BSD-style
3
// license that can be found in the LICENSE file.
16
wireHeaderFromKernel = [HeaderLen]byte{
17
0x45, 0x01, 0xbe, 0xef,
18
0xca, 0xfe, 0x45, 0xdc,
19
0xff, 0x01, 0xde, 0xad,
23
wireHeaderToKernel = [HeaderLen]byte{
24
0x45, 0x01, 0xbe, 0xef,
25
0xca, 0xfe, 0x45, 0xdc,
26
0xff, 0x01, 0xde, 0xad,
30
wireHeaderFromTradBSDKernel = [HeaderLen]byte{
31
0x45, 0x01, 0xdb, 0xbe,
32
0xca, 0xfe, 0xdc, 0x45,
33
0xff, 0x01, 0xde, 0xad,
37
wireHeaderFromFreeBSD10Kernel = [HeaderLen]byte{
38
0x45, 0x01, 0xef, 0xbe,
39
0xca, 0xfe, 0xdc, 0x45,
40
0xff, 0x01, 0xde, 0xad,
44
wireHeaderToTradBSDKernel = [HeaderLen]byte{
45
0x45, 0x01, 0xef, 0xbe,
46
0xca, 0xfe, 0xdc, 0x45,
47
0xff, 0x01, 0xde, 0xad,
51
// TODO(mikio): Add platform dependent wire header formats when
52
// we support new platforms.
65
Src: net.IPv4(172, 16, 254, 254),
66
Dst: net.IPv4(192, 168, 0, 1),
70
func TestMarshalHeader(t *testing.T) {
71
b, err := testHeader.Marshal()
73
t.Fatalf("ipv4.Header.Marshal failed: %v", err)
76
if supportsNewIPInput {
77
wh = wireHeaderToKernel[:]
79
wh = wireHeaderToTradBSDKernel[:]
81
if !bytes.Equal(b, wh) {
82
t.Fatalf("ipv4.Header.Marshal failed: %#v not equal %#v", b, wh)
86
func TestParseHeader(t *testing.T) {
88
if supportsNewIPInput {
89
wh = wireHeaderFromKernel[:]
91
if runtime.GOOS == "freebsd" && freebsdVersion >= 1000000 {
92
wh = wireHeaderFromFreeBSD10Kernel[:]
94
wh = wireHeaderFromTradBSDKernel[:]
97
h, err := ParseHeader(wh)
99
t.Fatalf("ipv4.ParseHeader failed: %v", err)
101
if !reflect.DeepEqual(h, testHeader) {
102
t.Fatalf("ipv4.ParseHeader failed: %#v not equal %#v", h, testHeader)