blob: 95f862c1f73a4761380c8134d29aa48b64d09521 [file] [log] [blame]
// Copyright 2020 The Fuchsia 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 testutil
import (
"github.com/google/go-cmp/cmp"
"gvisor.dev/gvisor/pkg/tcpip/buffer"
"gvisor.dev/gvisor/pkg/tcpip/stack"
)
// The headers and data from a stack.PacketBuffer.
type PacketBufferParts struct {
LinkHeader buffer.View
NetworkHeader buffer.View
TransportHeader buffer.View
Data buffer.View
}
// PacketBufferCmpTransformer transforms a stack.PacketBuffer to a
// PacketBufferParts which represents the PacketBuffer for the purposes of our
// tests.
var PacketBufferCmpTransformer = cmp.Transformer("packetBufferToParts", func(pkt *stack.PacketBuffer) PacketBufferParts {
return PacketBufferParts{
LinkHeader: pkt.LinkHeader().View(),
NetworkHeader: pkt.NetworkHeader().View(),
TransportHeader: pkt.TransportHeader().View(),
Data: pkt.Data().AsRange().ToOwnedView(),
}
})