| // 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(), |
| } |
| }) |