From 89d6bf18c89edd57bd37622023e9fc15c00b3d1e Mon Sep 17 00:00:00 2001 From: Kevin Krakauer Date: Thu, 1 Jun 2023 21:25:01 -0700 Subject: [PATCH] have gVisor use renamed buffer package PiperOrigin-RevId: 537209194 --- pkg/sentry/devices/tundev/BUILD | 2 +- pkg/sentry/devices/tundev/tundev.go | 4 +- pkg/sentry/socket/unix/transport/BUILD | 2 +- pkg/tcpip/BUILD | 2 +- pkg/tcpip/checker/BUILD | 2 +- pkg/tcpip/checker/checker.go | 12 +- pkg/tcpip/header/BUILD | 6 +- pkg/tcpip/header/checksum_test.go | 12 +- pkg/tcpip/header/ipv6_extension_headers.go | 24 +-- .../header/ipv6_extension_headers_test.go | 156 +++++++++--------- pkg/tcpip/link/ethernet/BUILD | 2 +- pkg/tcpip/link/ethernet/ethernet_test.go | 6 +- pkg/tcpip/link/fdbased/BUILD | 4 +- pkg/tcpip/link/fdbased/endpoint.go | 4 +- pkg/tcpip/link/fdbased/endpoint_test.go | 8 +- pkg/tcpip/link/fdbased/mmap.go | 8 +- pkg/tcpip/link/fdbased/packet_dispatchers.go | 16 +- pkg/tcpip/link/muxed/BUILD | 4 +- pkg/tcpip/link/muxed/injectable.go | 4 +- pkg/tcpip/link/muxed/injectable_test.go | 6 +- pkg/tcpip/link/qdisc/fifo/BUILD | 2 +- pkg/tcpip/link/qdisc/fifo/qdisc_test.go | 6 +- pkg/tcpip/link/sharedmem/BUILD | 4 +- pkg/tcpip/link/sharedmem/server_rx.go | 6 +- pkg/tcpip/link/sharedmem/server_tx.go | 6 +- pkg/tcpip/link/sharedmem/sharedmem.go | 6 +- pkg/tcpip/link/sharedmem/sharedmem_server.go | 4 +- pkg/tcpip/link/sharedmem/sharedmem_test.go | 24 +-- pkg/tcpip/link/sharedmem/tx.go | 8 +- pkg/tcpip/link/tun/BUILD | 2 +- pkg/tcpip/link/tun/device.go | 14 +- pkg/tcpip/link/xdp/BUILD | 2 +- pkg/tcpip/link/xdp/endpoint.go | 8 +- pkg/tcpip/network/BUILD | 2 +- pkg/tcpip/network/arp/BUILD | 2 +- pkg/tcpip/network/arp/arp_test.go | 14 +- .../network/internal/fragmentation/BUILD | 4 +- .../internal/fragmentation/fragmentation.go | 6 +- .../fragmentation/fragmentation_test.go | 20 +-- .../fragmentation/reassembler_test.go | 8 +- pkg/tcpip/network/internal/multicast/BUILD | 4 +- .../internal/multicast/example_test.go | 4 +- .../internal/multicast/route_table_test.go | 4 +- pkg/tcpip/network/internal/testutil/BUILD | 2 +- .../network/internal/testutil/testutil.go | 14 +- pkg/tcpip/network/ip_test.go | 72 ++++---- pkg/tcpip/network/ipv4/BUILD | 4 +- pkg/tcpip/network/ipv4/icmp.go | 8 +- pkg/tcpip/network/ipv4/igmp.go | 10 +- pkg/tcpip/network/ipv4/igmp_test.go | 4 +- pkg/tcpip/network/ipv4/ipv4.go | 4 +- pkg/tcpip/network/ipv4/ipv4_test.go | 32 ++-- pkg/tcpip/network/ipv6/BUILD | 6 +- pkg/tcpip/network/ipv6/icmp.go | 4 +- pkg/tcpip/network/ipv6/icmp_test.go | 18 +- pkg/tcpip/network/ipv6/ipv6.go | 6 +- pkg/tcpip/network/ipv6/ipv6_test.go | 34 ++-- pkg/tcpip/network/ipv6/mld.go | 10 +- pkg/tcpip/network/ipv6/mld_test.go | 20 +-- pkg/tcpip/network/ipv6/ndp.go | 10 +- pkg/tcpip/network/ipv6/ndp_test.go | 18 +- pkg/tcpip/network/multicast_group_test.go | 6 +- pkg/tcpip/socketops.go | 6 +- pkg/tcpip/stack/BUILD | 6 +- pkg/tcpip/stack/conntrack_test.go | 4 +- pkg/tcpip/stack/forwarding_test.go | 20 +-- pkg/tcpip/stack/ndp_test.go | 8 +- pkg/tcpip/stack/nic_test.go | 8 +- pkg/tcpip/stack/packet_buffer.go | 56 +++---- pkg/tcpip/stack/packet_buffer_test.go | 32 ++-- pkg/tcpip/stack/registration.go | 4 +- pkg/tcpip/stack/stack.go | 6 +- pkg/tcpip/stack/stack_test.go | 24 +-- pkg/tcpip/stack/transport_demuxer_test.go | 6 +- pkg/tcpip/stack/transport_test.go | 16 +- pkg/tcpip/tests/integration/BUILD | 10 +- pkg/tcpip/tests/integration/forward_test.go | 18 +- pkg/tcpip/tests/integration/iptables_test.go | 84 +++++----- .../tests/integration/link_resolution_test.go | 12 +- pkg/tcpip/tests/integration/loopback_test.go | 6 +- .../integration/multicast_broadcast_test.go | 6 +- pkg/tcpip/tests/utils/BUILD | 2 +- pkg/tcpip/tests/utils/utils.go | 10 +- pkg/tcpip/transport/icmp/BUILD | 2 +- pkg/tcpip/transport/icmp/endpoint.go | 12 +- pkg/tcpip/transport/internal/network/BUILD | 4 +- .../transport/internal/network/endpoint.go | 4 +- .../internal/network/endpoint_test.go | 10 +- pkg/tcpip/transport/packet/BUILD | 2 +- pkg/tcpip/transport/packet/endpoint.go | 4 +- pkg/tcpip/transport/raw/BUILD | 2 +- pkg/tcpip/transport/raw/endpoint.go | 12 +- pkg/tcpip/transport/tcp/BUILD | 4 +- pkg/tcpip/transport/tcp/endpoint.go | 10 +- pkg/tcpip/transport/tcp/segment.go | 4 +- pkg/tcpip/transport/tcp/segment_test.go | 6 +- pkg/tcpip/transport/tcp/test/e2e/BUILD | 6 +- .../transport/tcp/test/e2e/tcp_rack_test.go | 4 +- .../transport/tcp/test/e2e/tcp_sack_test.go | 4 +- pkg/tcpip/transport/tcp/test/e2e/tcp_test.go | 14 +- pkg/tcpip/transport/tcp/testing/context/BUILD | 2 +- .../transport/tcp/testing/context/context.go | 30 ++-- pkg/tcpip/transport/testing/context/BUILD | 2 +- .../transport/testing/context/context.go | 4 +- pkg/tcpip/transport/testing/context/flow.go | 4 +- pkg/tcpip/transport/udp/BUILD | 4 +- pkg/tcpip/transport/udp/endpoint.go | 6 +- pkg/tcpip/transport/udp/udp_test.go | 6 +- test/packetimpact/testbench/BUILD | 2 +- test/packetimpact/testbench/layers.go | 12 +- tools/xdp/BUILD | 2 +- tools/xdp/tcpdump.go | 4 +- website/blog/2022-10-24-buffer-pooling.md | 6 +- 113 files changed, 629 insertions(+), 629 deletions(-) diff --git a/pkg/sentry/devices/tundev/BUILD b/pkg/sentry/devices/tundev/BUILD index 1014e7c9a..993ddd79f 100644 --- a/pkg/sentry/devices/tundev/BUILD +++ b/pkg/sentry/devices/tundev/BUILD @@ -10,7 +10,7 @@ go_library( visibility = ["//pkg/sentry:internal"], deps = [ "//pkg/abi/linux", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/context", "//pkg/errors/linuxerr", "//pkg/hostarch", diff --git a/pkg/sentry/devices/tundev/tundev.go b/pkg/sentry/devices/tundev/tundev.go index 92d289c22..a0fcbdd8a 100644 --- a/pkg/sentry/devices/tundev/tundev.go +++ b/pkg/sentry/devices/tundev/tundev.go @@ -20,7 +20,7 @@ import ( "golang.org/x/sys/unix" "gvisor.dev/gvisor/pkg/abi/linux" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/context" "gvisor.dev/gvisor/pkg/errors/linuxerr" "gvisor.dev/gvisor/pkg/hostarch" @@ -156,7 +156,7 @@ func (fd *tunFD) Write(ctx context.Context, src usermem.IOSequence, opts vfs.Wri if int64(mtu) < src.NumBytes() { return 0, unix.EMSGSIZE } - data := bufferv2.NewView(int(src.NumBytes())) + data := buffer.NewView(int(src.NumBytes())) defer data.Release() if _, err := io.CopyN(data, src.Reader(ctx), src.NumBytes()); err != nil { return 0, err diff --git a/pkg/sentry/socket/unix/transport/BUILD b/pkg/sentry/socket/unix/transport/BUILD index 991fa70fa..019bd04ac 100644 --- a/pkg/sentry/socket/unix/transport/BUILD +++ b/pkg/sentry/socket/unix/transport/BUILD @@ -89,7 +89,7 @@ go_library( deps = [ "//pkg/abi/linux", "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/context", "//pkg/errors/linuxerr", "//pkg/fdnotifier", diff --git a/pkg/tcpip/BUILD b/pkg/tcpip/BUILD index 51bf51e2a..9d40be91e 100644 --- a/pkg/tcpip/BUILD +++ b/pkg/tcpip/BUILD @@ -34,7 +34,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/sync", "//pkg/waiter", ], diff --git a/pkg/tcpip/checker/BUILD b/pkg/tcpip/checker/BUILD index de387c5e8..48f06b813 100644 --- a/pkg/tcpip/checker/BUILD +++ b/pkg/tcpip/checker/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["checker.go"], visibility = ["//visibility:public"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/checksum", "//pkg/tcpip/header", diff --git a/pkg/tcpip/checker/checker.go b/pkg/tcpip/checker/checker.go index 0e338d59c..7eaf8ad63 100644 --- a/pkg/tcpip/checker/checker.go +++ b/pkg/tcpip/checker/checker.go @@ -23,7 +23,7 @@ import ( "time" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checksum" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -45,7 +45,7 @@ type ControlMessagesChecker func(*testing.T, tcpip.ReceivableControlMessages) // would call: // // checker.IPv4(t, v, checker.SrcAddr(x), checker.DstAddr(y)) -func IPv4(t *testing.T, v *bufferv2.View, checkers ...NetworkChecker) { +func IPv4(t *testing.T, v *buffer.View, checkers ...NetworkChecker) { t.Helper() ipv4 := header.IPv4(v.AsSlice()) @@ -68,7 +68,7 @@ func IPv4(t *testing.T, v *bufferv2.View, checkers ...NetworkChecker) { // IPv6 checks the validity and properties of the given IPv6 packet. The usage // is similar to IPv4. -func IPv6(t *testing.T, v *bufferv2.View, checkers ...NetworkChecker) { +func IPv6(t *testing.T, v *buffer.View, checkers ...NetworkChecker) { t.Helper() ipv6 := header.IPv6(v.AsSlice()) @@ -1703,7 +1703,7 @@ func IGMPv3Report(expectedRecords map[tcpip.Address]header.IGMPv3ReportRecordTyp type IPv6ExtHdrChecker func(*testing.T, header.IPv6PayloadHeader) // IPv6WithExtHdr is like IPv6 but allows IPv6 packets with extension headers. -func IPv6WithExtHdr(t *testing.T, v *bufferv2.View, checkers ...NetworkChecker) { +func IPv6WithExtHdr(t *testing.T, v *buffer.View, checkers ...NetworkChecker) { t.Helper() ipv6 := header.IPv6(v.AsSlice()) @@ -1714,7 +1714,7 @@ func IPv6WithExtHdr(t *testing.T, v *bufferv2.View, checkers ...NetworkChecker) payloadIterator := header.MakeIPv6PayloadIterator( header.IPv6ExtensionHeaderIdentifier(ipv6.NextHeader()), - bufferv2.MakeWithData(ipv6.Payload()), + buffer.MakeWithData(ipv6.Payload()), ) defer payloadIterator.Release() @@ -1764,7 +1764,7 @@ func IPv6ExtHdr(headers ...IPv6ExtHdrChecker) NetworkChecker { payloadIterator := header.MakeIPv6PayloadIterator( header.IPv6ExtensionHeaderIdentifier(extHdrs.IPv6.NextHeader()), - bufferv2.MakeWithData(extHdrs.IPv6.Payload()), + buffer.MakeWithData(extHdrs.IPv6.Payload()), ) defer payloadIterator.Release() diff --git a/pkg/tcpip/header/BUILD b/pkg/tcpip/header/BUILD index 49723f59a..181387556 100644 --- a/pkg/tcpip/header/BUILD +++ b/pkg/tcpip/header/BUILD @@ -37,7 +37,7 @@ go_library( ], visibility = ["//visibility:public"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/checksum", "//pkg/tcpip/seqnum", @@ -58,7 +58,7 @@ go_test( ], deps = [ ":header", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/rand", "//pkg/tcpip", "//pkg/tcpip/checksum", @@ -79,7 +79,7 @@ go_test( ], library = ":header", deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/testutil", "@com_github_google_go_cmp//cmp:go_default_library", diff --git a/pkg/tcpip/header/checksum_test.go b/pkg/tcpip/header/checksum_test.go index 83006ab56..984508d32 100644 --- a/pkg/tcpip/header/checksum_test.go +++ b/pkg/tcpip/header/checksum_test.go @@ -22,7 +22,7 @@ import ( "sync" "testing" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checksum" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -77,8 +77,8 @@ func TestICMPv4Checksum(t *testing.T) { if _, err := rnd.Read(buf); err != nil { t.Fatalf("rnd.Read failed: %v", err) } - b := bufferv2.MakeWithData(buf[:5]) - b.Append(bufferv2.NewViewWithData(buf[5:])) + b := buffer.MakeWithData(buf[:5]) + b.Append(buffer.NewViewWithData(buf[5:])) want := checksum.Checksum(b.Flatten(), 0) want = ^checksum.Checksum(h, want) @@ -102,9 +102,9 @@ func TestICMPv6Checksum(t *testing.T) { if _, err := rnd.Read(buf); err != nil { t.Fatalf("rnd.Read failed: %v", err) } - b := bufferv2.MakeWithData(buf[:7]) - b.Append(bufferv2.NewViewWithData(buf[7:10])) - b.Append(bufferv2.NewViewWithData(buf[10:])) + b := buffer.MakeWithData(buf[:7]) + b.Append(buffer.NewViewWithData(buf[7:10])) + b.Append(buffer.NewViewWithData(buf[10:])) dst := header.IPv6Loopback src := header.IPv6Loopback diff --git a/pkg/tcpip/header/ipv6_extension_headers.go b/pkg/tcpip/header/ipv6_extension_headers.go index 1a1963132..2577c900d 100644 --- a/pkg/tcpip/header/ipv6_extension_headers.go +++ b/pkg/tcpip/header/ipv6_extension_headers.go @@ -21,7 +21,7 @@ import ( "io" "math" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" ) @@ -163,7 +163,7 @@ type IPv6PayloadHeader interface { // it's no longer needed. type IPv6RawPayloadHeader struct { Identifier IPv6ExtensionHeaderIdentifier - Buf bufferv2.Buffer + Buf buffer.Buffer } // isIPv6PayloadHeader implements IPv6PayloadHeader.isIPv6PayloadHeader. @@ -176,7 +176,7 @@ func (i IPv6RawPayloadHeader) Release() { // ipv6OptionsExtHdr is an IPv6 extension header that holds options. type ipv6OptionsExtHdr struct { - buf *bufferv2.View + buf *buffer.View } // Release implements IPv6PayloadHeader.Release. @@ -203,7 +203,7 @@ func (i ipv6OptionsExtHdr) Iter() IPv6OptionsExtHdrOptionsIterator { // modify the backing payload so long as the IPv6OptionsExtHdrOptionsIterator // obtained before modification is no longer used. type IPv6OptionsExtHdrOptionsIterator struct { - reader *bufferv2.View + reader *buffer.View // optionOffset is the number of bytes from the first byte of the // options field to the beginning of the current option. @@ -299,7 +299,7 @@ var ErrMalformedIPv6ExtHdrOption = errors.New("malformed IPv6 extension header o // header option that is unknown by the parsing utilities. type IPv6UnknownExtHdrOption struct { Identifier IPv6ExtHdrOptionIdentifier - Data *bufferv2.View + Data *buffer.View } // UnknownAction implements IPv6OptionUnknownAction.UnknownAction. @@ -382,7 +382,7 @@ func (i *IPv6OptionsExtHdrOptionsIterator) Next() (IPv6ExtHdrOption, bool, error } return &IPv6RouterAlertOption{Value: IPv6RouterAlertValue(binary.BigEndian.Uint16(routerAlertValue[:]))}, false, nil default: - bytes := bufferv2.NewView(int(length)) + bytes := buffer.NewView(int(length)) if n, err := io.CopyN(bytes, i.reader, int64(length)); err != nil { if err == io.EOF { err = io.ErrUnexpectedEOF @@ -416,7 +416,7 @@ func (IPv6DestinationOptionsExtHdr) isIPv6PayloadHeader() {} // IPv6RoutingExtHdr is a buffer holding the Routing extension header specific // data as outlined in RFC 8200 section 4.4. type IPv6RoutingExtHdr struct { - Buf *bufferv2.View + Buf *buffer.View } // isIPv6PayloadHeader implements IPv6PayloadHeader.isIPv6PayloadHeader. @@ -488,7 +488,7 @@ type IPv6PayloadIterator struct { // The identifier of the next header to parse. nextHdrIdentifier IPv6ExtensionHeaderIdentifier - payload bufferv2.Buffer + payload buffer.Buffer // Indicates to the iterator that it should return the remaining payload as a // raw payload on the next call to Next. @@ -521,7 +521,7 @@ func (i IPv6PayloadIterator) ParseOffset() uint32 { // MakeIPv6PayloadIterator returns an iterator over the IPv6 payload containing // extension headers, or a raw payload if the payload cannot be parsed. The // iterator takes ownership of the payload. -func MakeIPv6PayloadIterator(nextHdrIdentifier IPv6ExtensionHeaderIdentifier, payload bufferv2.Buffer) IPv6PayloadIterator { +func MakeIPv6PayloadIterator(nextHdrIdentifier IPv6ExtensionHeaderIdentifier, payload buffer.Buffer) IPv6PayloadIterator { return IPv6PayloadIterator{ nextHdrIdentifier: nextHdrIdentifier, payload: payload, @@ -543,7 +543,7 @@ func (i *IPv6PayloadIterator) Release() { func (i *IPv6PayloadIterator) AsRawHeader(consume bool) IPv6RawPayloadHeader { identifier := i.nextHdrIdentifier - var buf bufferv2.Buffer + var buf buffer.Buffer if consume { // Since we consume the iterator, we return the payload as is. buf = i.payload @@ -653,7 +653,7 @@ func (i *IPv6PayloadIterator) NextHeaderIdentifier() IPv6ExtensionHeaderIdentifi // If bytes is not nil, extension header specific data will be read into bytes // if it has enough capacity. If bytes is provided but does not have enough // capacity for the data, nextHeaderData will panic. -func (i *IPv6PayloadIterator) nextHeaderData(fragmentHdr bool, bytes []byte) (IPv6ExtensionHeaderIdentifier, *bufferv2.View, error) { +func (i *IPv6PayloadIterator) nextHeaderData(fragmentHdr bool, bytes []byte) (IPv6ExtensionHeaderIdentifier, *buffer.View, error) { // We ignore the number of bytes read because we know we will only ever read // at max 1 bytes since rune has a length of 1. If we read 0 bytes, the Read // would return io.EOF to indicate that io.Reader has reached the end of the @@ -700,7 +700,7 @@ func (i *IPv6PayloadIterator) nextHeaderData(fragmentHdr bool, bytes []byte) (IP } return IPv6ExtensionHeaderIdentifier(nextHdrIdentifier), nil, nil } - v := bufferv2.NewView(bytesLen) + v := buffer.NewView(bytesLen) if n, err := io.CopyN(v, &rdr, int64(bytesLen)); err != nil { if err == io.EOF { err = io.ErrUnexpectedEOF diff --git a/pkg/tcpip/header/ipv6_extension_headers_test.go b/pkg/tcpip/header/ipv6_extension_headers_test.go index 4571ca701..5f73ca89f 100644 --- a/pkg/tcpip/header/ipv6_extension_headers_test.go +++ b/pkg/tcpip/header/ipv6_extension_headers_test.go @@ -21,15 +21,15 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" ) var ( - bufferTransformer = cmp.Transformer("buffer", func(b bufferv2.Buffer) []byte { + bufferTransformer = cmp.Transformer("buffer", func(b buffer.Buffer) []byte { return b.Flatten() }) - viewTransformer = cmp.Transformer("view", func(v bufferv2.View) []byte { + viewTransformer = cmp.Transformer("view", func(v buffer.View) []byte { return v.AsSlice() }) ) @@ -116,7 +116,7 @@ func TestIPv6UnknownExtHdrOption(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - opt := &IPv6UnknownExtHdrOption{Identifier: test.identifier, Data: bufferv2.NewViewWithData([]byte{1, 2, 3, 4})} + opt := &IPv6UnknownExtHdrOption{Identifier: test.identifier, Data: buffer.NewViewWithData([]byte{1, 2, 3, 4})} if a := opt.UnknownAction(); a != test.expectedUnknownAction { t.Fatalf("got UnknownAction() = %d, want = %d", a, test.expectedUnknownAction) } @@ -275,12 +275,12 @@ func TestIPv6OptionsExtHdrIterErr(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { t.Run("Hop By Hop", func(t *testing.T) { - extHdr := IPv6HopByHopOptionsExtHdr{ipv6OptionsExtHdr{bufferv2.NewViewWithData(test.bytes)}} + extHdr := IPv6HopByHopOptionsExtHdr{ipv6OptionsExtHdr{buffer.NewViewWithData(test.bytes)}} check(t, extHdr.Iter(), test.err) }) t.Run("Destination", func(t *testing.T) { - extHdr := IPv6DestinationOptionsExtHdr{ipv6OptionsExtHdr{bufferv2.NewViewWithData(test.bytes)}} + extHdr := IPv6DestinationOptionsExtHdr{ipv6OptionsExtHdr{buffer.NewViewWithData(test.bytes)}} check(t, extHdr.Iter(), test.err) }) }) @@ -297,14 +297,14 @@ func TestIPv6OptionsExtHdrIter(t *testing.T) { name: "Single unknown with zero length", bytes: []byte{255, 0}, expected: []IPv6ExtHdrOption{ - &IPv6UnknownExtHdrOption{Identifier: 255, Data: bufferv2.NewViewWithData([]byte{})}, + &IPv6UnknownExtHdrOption{Identifier: 255, Data: buffer.NewViewWithData([]byte{})}, }, }, { name: "Single unknown with non-zero length", bytes: []byte{255, 3, 1, 2, 3}, expected: []IPv6ExtHdrOption{ - &IPv6UnknownExtHdrOption{Identifier: 255, Data: bufferv2.NewViewWithData([]byte{1, 2, 3})}, + &IPv6UnknownExtHdrOption{Identifier: 255, Data: buffer.NewViewWithData([]byte{1, 2, 3})}, }, }, { @@ -367,9 +367,9 @@ func TestIPv6OptionsExtHdrIter(t *testing.T) { 1, 2, 1, 2, }, expected: []IPv6ExtHdrOption{ - &IPv6UnknownExtHdrOption{Identifier: 255, Data: bufferv2.NewViewWithData([]byte{})}, - &IPv6UnknownExtHdrOption{Identifier: 254, Data: bufferv2.NewViewWithData([]byte{1})}, - &IPv6UnknownExtHdrOption{Identifier: 253, Data: bufferv2.NewViewWithData([]byte{2, 3, 4, 5})}, + &IPv6UnknownExtHdrOption{Identifier: 255, Data: buffer.NewViewWithData([]byte{})}, + &IPv6UnknownExtHdrOption{Identifier: 254, Data: buffer.NewViewWithData([]byte{1})}, + &IPv6UnknownExtHdrOption{Identifier: 253, Data: buffer.NewViewWithData([]byte{2, 3, 4, 5})}, }, }, } @@ -407,12 +407,12 @@ func TestIPv6OptionsExtHdrIter(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { t.Run("Hop By Hop", func(t *testing.T) { - extHdr := IPv6HopByHopOptionsExtHdr{ipv6OptionsExtHdr{bufferv2.NewViewWithData(test.bytes)}} + extHdr := IPv6HopByHopOptionsExtHdr{ipv6OptionsExtHdr{buffer.NewViewWithData(test.bytes)}} checkIter(t, extHdr.Iter(), test.expected) }) t.Run("Destination", func(t *testing.T) { - extHdr := IPv6DestinationOptionsExtHdr{ipv6OptionsExtHdr{bufferv2.NewViewWithData(test.bytes)}} + extHdr := IPv6DestinationOptionsExtHdr{ipv6OptionsExtHdr{buffer.NewViewWithData(test.bytes)}} checkIter(t, extHdr.Iter(), test.expected) }) }) @@ -444,7 +444,7 @@ func TestIPv6RoutingExtHdr(t *testing.T) { for _, test := range tests { t.Run(test.name, func(t *testing.T) { - extHdr := IPv6RoutingExtHdr{bufferv2.NewViewWithData(test.bytes)} + extHdr := IPv6RoutingExtHdr{buffer.NewViewWithData(test.bytes)} if got := extHdr.SegmentsLeft(); got != test.segmentsLeft { t.Errorf("got SegmentsLeft() = %d, want = %d", got, test.segmentsLeft) } @@ -499,10 +499,10 @@ func TestIPv6FragmentExtHdr(t *testing.T) { } } -func makeBufferFromByteBuffers(bs ...[]byte) bufferv2.Buffer { - buf := bufferv2.Buffer{} +func makeBufferFromByteBuffers(bs ...[]byte) buffer.Buffer { + buf := buffer.Buffer{} for _, b := range bs { - buf.Append(bufferv2.NewViewWithData(b)) + buf.Append(buffer.NewViewWithData(b)) } return buf } @@ -511,7 +511,7 @@ func TestIPv6ExtHdrIterErr(t *testing.T) { tests := []struct { name string firstNextHdr IPv6ExtensionHeaderIdentifier - payload bufferv2.Buffer + payload buffer.Buffer err error }{ { @@ -521,7 +521,7 @@ func TestIPv6ExtHdrIterErr(t *testing.T) { { name: "Upper layer only with data", firstNextHdr: 255, - payload: bufferv2.MakeWithData([]byte{1, 2, 3, 4}), + payload: buffer.MakeWithData([]byte{1, 2, 3, 4}), }, { name: "No next header", @@ -530,45 +530,45 @@ func TestIPv6ExtHdrIterErr(t *testing.T) { { name: "No next header with data", firstNextHdr: IPv6NoNextHeaderIdentifier, - payload: bufferv2.MakeWithData([]byte{1, 2, 3, 4}), + payload: buffer.MakeWithData([]byte{1, 2, 3, 4}), }, { name: "Valid single hop by hop", firstNextHdr: IPv6HopByHopOptionsExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{255, 0, 1, 4, 1, 2, 3, 4}), + payload: buffer.MakeWithData([]byte{255, 0, 1, 4, 1, 2, 3, 4}), }, { name: "Hop by hop too small", firstNextHdr: IPv6HopByHopOptionsExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{255, 0, 1, 4, 1, 2, 3}), + payload: buffer.MakeWithData([]byte{255, 0, 1, 4, 1, 2, 3}), err: io.ErrUnexpectedEOF, }, { name: "Valid single fragment", firstNextHdr: IPv6FragmentExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{255, 0, 68, 9, 128, 4, 2, 1}), + payload: buffer.MakeWithData([]byte{255, 0, 68, 9, 128, 4, 2, 1}), }, { name: "Fragment too small", firstNextHdr: IPv6FragmentExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{255, 0, 68, 9, 128, 4, 2}), + payload: buffer.MakeWithData([]byte{255, 0, 68, 9, 128, 4, 2}), err: io.ErrUnexpectedEOF, }, { name: "Valid single destination", firstNextHdr: IPv6DestinationOptionsExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{255, 0, 1, 4, 1, 2, 3, 4}), + payload: buffer.MakeWithData([]byte{255, 0, 1, 4, 1, 2, 3, 4}), }, { name: "Destination too small", firstNextHdr: IPv6DestinationOptionsExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{255, 0, 1, 4, 1, 2, 3}), + payload: buffer.MakeWithData([]byte{255, 0, 1, 4, 1, 2, 3}), err: io.ErrUnexpectedEOF, }, { name: "Valid single routing", firstNextHdr: IPv6RoutingExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{255, 0, 1, 2, 3, 4, 5, 6}), + payload: buffer.MakeWithData([]byte{255, 0, 1, 2, 3, 4, 5, 6}), }, { name: "Valid single routing across views", @@ -578,13 +578,13 @@ func TestIPv6ExtHdrIterErr(t *testing.T) { { name: "Routing too small with zero length field", firstNextHdr: IPv6RoutingExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{255, 0, 1, 2, 3, 4, 5}), + payload: buffer.MakeWithData([]byte{255, 0, 1, 2, 3, 4, 5}), err: io.ErrUnexpectedEOF, }, { name: "Valid routing with non-zero length field", firstNextHdr: IPv6RoutingExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{255, 1, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 8}), + payload: buffer.MakeWithData([]byte{255, 1, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7, 8}), }, { name: "Valid routing with non-zero length field across views", @@ -594,7 +594,7 @@ func TestIPv6ExtHdrIterErr(t *testing.T) { { name: "Routing too small with non-zero length field", firstNextHdr: IPv6RoutingExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{255, 1, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7}), + payload: buffer.MakeWithData([]byte{255, 1, 1, 2, 3, 4, 5, 6, 1, 2, 3, 4, 5, 6, 7}), err: io.ErrUnexpectedEOF, }, { @@ -606,7 +606,7 @@ func TestIPv6ExtHdrIterErr(t *testing.T) { { name: "Mixed", firstNextHdr: IPv6HopByHopOptionsExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{ + payload: buffer.MakeWithData([]byte{ // Hop By Hop Options extension header. uint8(IPv6FragmentExtHdrIdentifier), 0, 1, 4, 1, 2, 3, 4, @@ -628,7 +628,7 @@ func TestIPv6ExtHdrIterErr(t *testing.T) { { name: "Mixed without upper layer data", firstNextHdr: IPv6HopByHopOptionsExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{ + payload: buffer.MakeWithData([]byte{ // Hop By Hop Options extension header. uint8(IPv6FragmentExtHdrIdentifier), 0, 1, 4, 1, 2, 3, 4, @@ -647,7 +647,7 @@ func TestIPv6ExtHdrIterErr(t *testing.T) { { name: "Mixed without upper layer data but last ext hdr too small", firstNextHdr: IPv6HopByHopOptionsExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{ + payload: buffer.MakeWithData([]byte{ // Hop By Hop Options extension header. uint8(IPv6FragmentExtHdrIdentifier), 0, 1, 4, 1, 2, 3, 4, @@ -701,7 +701,7 @@ func TestIPv6ExtHdrIter(t *testing.T) { tests := []struct { name string firstNextHdr IPv6ExtensionHeaderIdentifier - payload bufferv2.Buffer + payload buffer.Buffer expected []IPv6PayloadHeader }{ // With a non-atomic fragment that is not the first fragment, the payload @@ -710,7 +710,7 @@ func TestIPv6ExtHdrIter(t *testing.T) { { name: "hopbyhop - fragment (not first) - routing - upper", firstNextHdr: IPv6HopByHopOptionsExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{ + payload: buffer.MakeWithData([]byte{ // Hop By Hop extension header. uint8(IPv6FragmentExtHdrIdentifier), 0, 1, 4, 1, 2, 3, 4, @@ -730,18 +730,18 @@ func TestIPv6ExtHdrIter(t *testing.T) { 1, 2, 3, 4, }), expected: []IPv6PayloadHeader{ - IPv6HopByHopOptionsExtHdr{ipv6OptionsExtHdr{bufferv2.NewViewWithData([]byte{1, 4, 1, 2, 3, 4})}}, + IPv6HopByHopOptionsExtHdr{ipv6OptionsExtHdr{buffer.NewViewWithData([]byte{1, 4, 1, 2, 3, 4})}}, IPv6FragmentExtHdr([6]byte{68, 9, 128, 4, 2, 1}), IPv6RawPayloadHeader{ Identifier: IPv6RoutingExtHdrIdentifier, - Buf: bufferv2.MakeWithData(routingExtHdrWithUpperLayerData), + Buf: buffer.MakeWithData(routingExtHdrWithUpperLayerData), }, }, }, { name: "hopbyhop - fragment (first) - routing - upper", firstNextHdr: IPv6HopByHopOptionsExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{ + payload: buffer.MakeWithData([]byte{ // Hop By Hop extension header. uint8(IPv6FragmentExtHdrIdentifier), 0, 1, 4, 1, 2, 3, 4, @@ -757,12 +757,12 @@ func TestIPv6ExtHdrIter(t *testing.T) { 1, 2, 3, 4, }), expected: []IPv6PayloadHeader{ - IPv6HopByHopOptionsExtHdr{ipv6OptionsExtHdr{bufferv2.NewViewWithData([]byte{1, 4, 1, 2, 3, 4})}}, + IPv6HopByHopOptionsExtHdr{ipv6OptionsExtHdr{buffer.NewViewWithData([]byte{1, 4, 1, 2, 3, 4})}}, IPv6FragmentExtHdr([6]byte{0, 1, 128, 4, 2, 1}), - IPv6RoutingExtHdr{bufferv2.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, + IPv6RoutingExtHdr{buffer.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, IPv6RawPayloadHeader{ Identifier: 255, - Buf: bufferv2.MakeWithData(upperLayerData), + Buf: buffer.MakeWithData(upperLayerData), }, }, }, @@ -783,7 +783,7 @@ func TestIPv6ExtHdrIter(t *testing.T) { IPv6FragmentExtHdr([6]byte{68, 9, 128, 4, 2, 1}), IPv6RawPayloadHeader{ Identifier: IPv6RoutingExtHdrIdentifier, - Buf: bufferv2.MakeWithData(routingExtHdrWithUpperLayerData), + Buf: buffer.MakeWithData(routingExtHdrWithUpperLayerData), }, }, }, @@ -793,7 +793,7 @@ func TestIPv6ExtHdrIter(t *testing.T) { { name: "atomic fragment - routing - destination - upper", firstNextHdr: IPv6FragmentExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{ + payload: buffer.MakeWithData([]byte{ // Fragment extension header. // // Reserved bits are 1 which should not affect anything. @@ -810,11 +810,11 @@ func TestIPv6ExtHdrIter(t *testing.T) { }), expected: []IPv6PayloadHeader{ IPv6FragmentExtHdr([6]byte{0, 6, 128, 4, 2, 1}), - IPv6RoutingExtHdr{bufferv2.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, - IPv6DestinationOptionsExtHdr{ipv6OptionsExtHdr{bufferv2.NewViewWithData([]byte{1, 4, 1, 2, 3, 4})}}, + IPv6RoutingExtHdr{buffer.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, + IPv6DestinationOptionsExtHdr{ipv6OptionsExtHdr{buffer.NewViewWithData([]byte{1, 4, 1, 2, 3, 4})}}, IPv6RawPayloadHeader{ Identifier: 255, - Buf: bufferv2.MakeWithData(upperLayerData), + Buf: buffer.MakeWithData(upperLayerData), }, }, }, @@ -834,7 +834,7 @@ func TestIPv6ExtHdrIter(t *testing.T) { 1, 2}, []byte{3, 4}), expected: []IPv6PayloadHeader{ IPv6FragmentExtHdr([6]byte{0, 6, 128, 4, 2, 1}), - IPv6RoutingExtHdr{bufferv2.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, + IPv6RoutingExtHdr{buffer.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, IPv6RawPayloadHeader{ Identifier: 255, Buf: makeBufferFromByteBuffers(upperLayerData[:2], upperLayerData[2:]), @@ -844,7 +844,7 @@ func TestIPv6ExtHdrIter(t *testing.T) { { name: "atomic fragment - destination - no next header", firstNextHdr: IPv6FragmentExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{ + payload: buffer.MakeWithData([]byte{ // Fragment extension header. // // Res (Reserved) bits are 1 which should not affect anything. @@ -858,13 +858,13 @@ func TestIPv6ExtHdrIter(t *testing.T) { }), expected: []IPv6PayloadHeader{ IPv6FragmentExtHdr([6]byte{0, 6, 128, 4, 2, 1}), - IPv6DestinationOptionsExtHdr{ipv6OptionsExtHdr{bufferv2.NewViewWithData([]byte{1, 4, 1, 2, 3, 4})}}, + IPv6DestinationOptionsExtHdr{ipv6OptionsExtHdr{buffer.NewViewWithData([]byte{1, 4, 1, 2, 3, 4})}}, }, }, { name: "routing - atomic fragment - no next header", firstNextHdr: IPv6RoutingExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{ + payload: buffer.MakeWithData([]byte{ // Routing extension header. uint8(IPv6FragmentExtHdrIdentifier), 0, 1, 2, 3, 4, 5, 6, @@ -877,7 +877,7 @@ func TestIPv6ExtHdrIter(t *testing.T) { 1, 2, 3, 4, }), expected: []IPv6PayloadHeader{ - IPv6RoutingExtHdr{bufferv2.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, + IPv6RoutingExtHdr{buffer.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, IPv6FragmentExtHdr([6]byte{0, 6, 128, 4, 2, 1}), }, }, @@ -897,14 +897,14 @@ func TestIPv6ExtHdrIter(t *testing.T) { 1, 2, 3, 4, }), expected: []IPv6PayloadHeader{ - IPv6RoutingExtHdr{bufferv2.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, + IPv6RoutingExtHdr{buffer.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, IPv6FragmentExtHdr([6]byte{0, 6, 128, 4, 2, 1}), }, }, { name: "hopbyhop - routing - fragment - no next header", firstNextHdr: IPv6HopByHopOptionsExtHdrIdentifier, - payload: bufferv2.MakeWithData([]byte{ + payload: buffer.MakeWithData([]byte{ // Hop By Hop Options extension header. uint8(IPv6RoutingExtHdrIdentifier), 0, 1, 4, 1, 2, 3, 4, @@ -920,12 +920,12 @@ func TestIPv6ExtHdrIter(t *testing.T) { 1, 2, 3, 4, }), expected: []IPv6PayloadHeader{ - IPv6HopByHopOptionsExtHdr{ipv6OptionsExtHdr{bufferv2.NewViewWithData([]byte{1, 4, 1, 2, 3, 4})}}, - IPv6RoutingExtHdr{bufferv2.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, + IPv6HopByHopOptionsExtHdr{ipv6OptionsExtHdr{buffer.NewViewWithData([]byte{1, 4, 1, 2, 3, 4})}}, + IPv6RoutingExtHdr{buffer.NewViewWithData([]byte{1, 2, 3, 4, 5, 6})}, IPv6FragmentExtHdr([6]byte{1, 6, 128, 4, 2, 1}), IPv6RawPayloadHeader{ Identifier: IPv6NoNextHeaderIdentifier, - Buf: bufferv2.MakeWithData(upperLayerData), + Buf: buffer.MakeWithData(upperLayerData), }, }, }, @@ -934,46 +934,46 @@ func TestIPv6ExtHdrIter(t *testing.T) { { name: "TCP raw payload", firstNextHdr: IPv6ExtensionHeaderIdentifier(TCPProtocolNumber), - payload: bufferv2.MakeWithData(upperLayerData), + payload: buffer.MakeWithData(upperLayerData), expected: []IPv6PayloadHeader{IPv6RawPayloadHeader{ Identifier: IPv6ExtensionHeaderIdentifier(TCPProtocolNumber), - Buf: bufferv2.MakeWithData(upperLayerData), + Buf: buffer.MakeWithData(upperLayerData), }}, }, { name: "UDP raw payload", firstNextHdr: IPv6ExtensionHeaderIdentifier(UDPProtocolNumber), - payload: bufferv2.MakeWithData(upperLayerData), + payload: buffer.MakeWithData(upperLayerData), expected: []IPv6PayloadHeader{IPv6RawPayloadHeader{ Identifier: IPv6ExtensionHeaderIdentifier(UDPProtocolNumber), - Buf: bufferv2.MakeWithData(upperLayerData), + Buf: buffer.MakeWithData(upperLayerData), }}, }, { name: "ICMPv4 raw payload", firstNextHdr: IPv6ExtensionHeaderIdentifier(ICMPv4ProtocolNumber), - payload: bufferv2.MakeWithData(upperLayerData), + payload: buffer.MakeWithData(upperLayerData), expected: []IPv6PayloadHeader{IPv6RawPayloadHeader{ Identifier: IPv6ExtensionHeaderIdentifier(ICMPv4ProtocolNumber), - Buf: bufferv2.MakeWithData(upperLayerData), + Buf: buffer.MakeWithData(upperLayerData), }}, }, { name: "ICMPv6 raw payload", firstNextHdr: IPv6ExtensionHeaderIdentifier(ICMPv6ProtocolNumber), - payload: bufferv2.MakeWithData(upperLayerData), + payload: buffer.MakeWithData(upperLayerData), expected: []IPv6PayloadHeader{IPv6RawPayloadHeader{ Identifier: IPv6ExtensionHeaderIdentifier(ICMPv6ProtocolNumber), - Buf: bufferv2.MakeWithData(upperLayerData), + Buf: buffer.MakeWithData(upperLayerData), }}, }, { name: "Unknwon next header raw payload", firstNextHdr: 255, - payload: bufferv2.MakeWithData(upperLayerData), + payload: buffer.MakeWithData(upperLayerData), expected: []IPv6PayloadHeader{IPv6RawPayloadHeader{ Identifier: 255, - Buf: bufferv2.MakeWithData(upperLayerData), + Buf: buffer.MakeWithData(upperLayerData), }}, }, { @@ -1028,7 +1028,7 @@ var _ IPv6SerializableHopByHopOption = (*dummyHbHOptionSerializer)(nil) // IPv6SerializableHopByHopOption for use in tests. type dummyHbHOptionSerializer struct { id IPv6ExtHdrOptionIdentifier - payload *bufferv2.View + payload *buffer.View align int alignOffset int } @@ -1088,7 +1088,7 @@ func TestIPv6HopByHopSerializer(t *testing.T) { options: []IPv6SerializableHopByHopOption{ &dummyHbHOptionSerializer{ id: 15, - payload: bufferv2.NewViewWithData([]byte{9, 8, 7, 6}), + payload: buffer.NewViewWithData([]byte{9, 8, 7, 6}), }, }, expect: []byte{13, 0, 15, 4, 9, 8, 7, 6}, @@ -1100,7 +1100,7 @@ func TestIPv6HopByHopSerializer(t *testing.T) { options: []IPv6SerializableHopByHopOption{ &dummyHbHOptionSerializer{ id: 22, - payload: bufferv2.NewViewWithData([]byte{4, 5}), + payload: buffer.NewViewWithData([]byte{4, 5}), }, }, expect: []byte{88, 0, 22, 2, 4, 5, 1, 0}, @@ -1112,7 +1112,7 @@ func TestIPv6HopByHopSerializer(t *testing.T) { options: []IPv6SerializableHopByHopOption{ &dummyHbHOptionSerializer{ id: 33, - payload: bufferv2.NewViewWithData([]byte{1, 2, 3}), + payload: buffer.NewViewWithData([]byte{1, 2, 3}), }, }, expect: []byte{11, 0, 33, 3, 1, 2, 3, 0}, @@ -1124,7 +1124,7 @@ func TestIPv6HopByHopSerializer(t *testing.T) { options: []IPv6SerializableHopByHopOption{ &dummyHbHOptionSerializer{ id: 77, - payload: bufferv2.NewViewWithData([]byte{1, 2, 3, 4, 5, 6, 7, 8}), + payload: buffer.NewViewWithData([]byte{1, 2, 3, 4, 5, 6, 7, 8}), }, }, expect: []byte{55, 1, 77, 8, 1, 2, 3, 4, 5, 6, 7, 8, 1, 2, 0, 0}, @@ -1136,11 +1136,11 @@ func TestIPv6HopByHopSerializer(t *testing.T) { options: []IPv6SerializableHopByHopOption{ &dummyHbHOptionSerializer{ id: 11, - payload: bufferv2.NewViewWithData([]byte{1, 2, 3}), + payload: buffer.NewViewWithData([]byte{1, 2, 3}), }, &dummyHbHOptionSerializer{ id: 22, - payload: bufferv2.NewViewWithData([]byte{4, 5, 6}), + payload: buffer.NewViewWithData([]byte{4, 5, 6}), }, }, expect: []byte{33, 1, 11, 3, 1, 2, 3, 22, 3, 4, 5, 6, 1, 2, 0, 0}, @@ -1152,11 +1152,11 @@ func TestIPv6HopByHopSerializer(t *testing.T) { options: []IPv6SerializableHopByHopOption{ &dummyHbHOptionSerializer{ id: 11, - payload: bufferv2.NewViewWithData([]byte{1, 2, 3}), + payload: buffer.NewViewWithData([]byte{1, 2, 3}), }, &dummyHbHOptionSerializer{ id: 22, - payload: bufferv2.NewViewWithData([]byte{4, 5, 6}), + payload: buffer.NewViewWithData([]byte{4, 5, 6}), align: 2, }, }, @@ -1169,11 +1169,11 @@ func TestIPv6HopByHopSerializer(t *testing.T) { options: []IPv6SerializableHopByHopOption{ &dummyHbHOptionSerializer{ id: 11, - payload: bufferv2.NewViewWithData([]byte{1, 2}), + payload: buffer.NewViewWithData([]byte{1, 2}), }, &dummyHbHOptionSerializer{ id: 22, - payload: bufferv2.NewViewWithData([]byte{4, 5, 6}), + payload: buffer.NewViewWithData([]byte{4, 5, 6}), align: 8, alignOffset: 1, }, @@ -1225,7 +1225,7 @@ func TestIPv6HopByHopSerializer(t *testing.T) { // Deserialize the options and verify them. optLen := (b[ipv6HopByHopExtHdrLengthOffset] + ipv6HopByHopExtHdrUnaccountedLenWords) * ipv6ExtHdrLenBytesPerUnit - iter := ipv6OptionsExtHdr{bufferv2.NewViewWithData(b[ipv6HopByHopExtHdrOptionsOffset:optLen])}.Iter() + iter := ipv6OptionsExtHdr{buffer.NewViewWithData(b[ipv6HopByHopExtHdrOptionsOffset:optLen])}.Iter() for _, testOpt := range test.options { opt, done, err := iter.Next() if err != nil { diff --git a/pkg/tcpip/link/ethernet/BUILD b/pkg/tcpip/link/ethernet/BUILD index 9cdb92f6d..551b012fb 100644 --- a/pkg/tcpip/link/ethernet/BUILD +++ b/pkg/tcpip/link/ethernet/BUILD @@ -23,7 +23,7 @@ go_test( srcs = ["ethernet_test.go"], deps = [ ":ethernet", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/header", diff --git a/pkg/tcpip/link/ethernet/ethernet_test.go b/pkg/tcpip/link/ethernet/ethernet_test.go index ad7c3d814..8e81236ae 100644 --- a/pkg/tcpip/link/ethernet/ethernet_test.go +++ b/pkg/tcpip/link/ethernet/ethernet_test.go @@ -20,7 +20,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -102,7 +102,7 @@ func TestDeliverNetworkPacket(t *testing.T) { DstAddr: testCase.dstAddr, Type: networkProtocol, }) - p := stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: bufferv2.MakeWithData(eth)}) + p := stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: buffer.MakeWithData(eth)}) defer p.DecRef() e.DeliverNetworkPacket(0, p) if got, want := len(networkDispatcher.networkPackets), 1; got != want { @@ -187,7 +187,7 @@ func TestWritePacketToRemoteAddHeader(t *testing.T) { t.Fatalf("s.CreateNIC(%d, _): %s", nicID, err) } - if err := s.WritePacketToRemote(nicID, remoteLinkAddr, netProto, bufferv2.Buffer{}); err != nil { + if err := s.WritePacketToRemote(nicID, remoteLinkAddr, netProto, buffer.Buffer{}); err != nil { t.Fatalf("s.WritePacketToRemote(%d, %s, _): %s", nicID, remoteLinkAddr, err) } diff --git a/pkg/tcpip/link/fdbased/BUILD b/pkg/tcpip/link/fdbased/BUILD index 48909bd5d..f29ab942a 100644 --- a/pkg/tcpip/link/fdbased/BUILD +++ b/pkg/tcpip/link/fdbased/BUILD @@ -18,7 +18,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/sync", "//pkg/tcpip", "//pkg/tcpip/header", @@ -35,7 +35,7 @@ go_test( srcs = ["endpoint_test.go"], library = ":fdbased", deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/header", diff --git a/pkg/tcpip/link/fdbased/endpoint.go b/pkg/tcpip/link/fdbased/endpoint.go index beac836b7..974fcb0ce 100644 --- a/pkg/tcpip/link/fdbased/endpoint.go +++ b/pkg/tcpip/link/fdbased/endpoint.go @@ -45,7 +45,7 @@ import ( "golang.org/x/sys/unix" "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -730,7 +730,7 @@ func (e *endpoint) WritePackets(pkts stack.PacketBufferList) (int, tcpip.Error) } // InjectOutbound implements stack.InjectableEndpoint.InjectOutbound. -func (e *endpoint) InjectOutbound(dest tcpip.Address, packet *bufferv2.View) tcpip.Error { +func (e *endpoint) InjectOutbound(dest tcpip.Address, packet *buffer.View) tcpip.Error { return rawfile.NonBlockingWrite(e.fds[0].fd, packet.AsSlice()) } diff --git a/pkg/tcpip/link/fdbased/endpoint_test.go b/pkg/tcpip/link/fdbased/endpoint_test.go index 283271879..2d0417c20 100644 --- a/pkg/tcpip/link/fdbased/endpoint_test.go +++ b/pkg/tcpip/link/fdbased/endpoint_test.go @@ -29,7 +29,7 @@ import ( "github.com/google/go-cmp/cmp" "golang.org/x/sys/unix" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -195,7 +195,7 @@ func testWritePacket(t *testing.T, plen int, eth bool, gsoMaxSize uint32, hash u const netHdrLen = 100 pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()) + netHdrLen, - Payload: bufferv2.MakeWithData(payload), + Payload: buffer.MakeWithData(payload), }) defer pkt.DecRef() pkt.Hash = hash @@ -386,7 +386,7 @@ func TestDeliverPacket(t *testing.T) { wantPkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: header.EthernetMinimumSize, - Payload: bufferv2.MakeWithData(all), + Payload: buffer.MakeWithData(all), }) defer wantPkt.DecRef() if eth { @@ -503,7 +503,7 @@ func TestIovecBuffer(t *testing.T) { buf := b.pullBuffer(c.n) defer buf.Release() var lengths []int - buf.Apply(func(v *bufferv2.View) { + buf.Apply(func(v *buffer.View) { lengths = append(lengths, v.Size()) }) if !reflect.DeepEqual(lengths, c.wantLengths) { diff --git a/pkg/tcpip/link/fdbased/mmap.go b/pkg/tcpip/link/fdbased/mmap.go index b7c756730..a136a9fdd 100644 --- a/pkg/tcpip/link/fdbased/mmap.go +++ b/pkg/tcpip/link/fdbased/mmap.go @@ -22,7 +22,7 @@ import ( "fmt" "golang.org/x/sys/unix" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" "gvisor.dev/gvisor/pkg/tcpip/link/rawfile" @@ -134,7 +134,7 @@ type packetMMapDispatcher struct { func (*packetMMapDispatcher) release() {} -func (d *packetMMapDispatcher) readMMappedPacket() (*bufferv2.View, bool, tcpip.Error) { +func (d *packetMMapDispatcher) readMMappedPacket() (*buffer.View, bool, tcpip.Error) { hdr := tPacketHdr(d.ringBuffer[d.ringOffset*tpFrameSize:]) for hdr.tpStatus()&tpStatusUser == 0 { stopped, errno := rawfile.BlockingPollUntilStopped(d.EFD, d.fd, unix.POLLIN|unix.POLLERR) @@ -158,7 +158,7 @@ func (d *packetMMapDispatcher) readMMappedPacket() (*bufferv2.View, bool, tcpip. } // Copy out the packet from the mmapped frame to a locally owned buffer. - pkt := bufferv2.NewView(int(hdr.tpSnapLen())) + pkt := buffer.NewView(int(hdr.tpSnapLen())) pkt.Write(hdr.Payload()) // Release packet to kernel. hdr.setTPStatus(tpStatusKernel) @@ -190,7 +190,7 @@ func (d *packetMMapDispatcher) dispatch() (bool, tcpip.Error) { } pbuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithView(pkt), + Payload: buffer.MakeWithView(pkt), }) defer pbuf.DecRef() if d.e.hdrSize > 0 { diff --git a/pkg/tcpip/link/fdbased/packet_dispatchers.go b/pkg/tcpip/link/fdbased/packet_dispatchers.go index f5d3eb809..7d5ced987 100644 --- a/pkg/tcpip/link/fdbased/packet_dispatchers.go +++ b/pkg/tcpip/link/fdbased/packet_dispatchers.go @@ -19,7 +19,7 @@ package fdbased import ( "golang.org/x/sys/unix" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" "gvisor.dev/gvisor/pkg/tcpip/link/rawfile" @@ -34,7 +34,7 @@ type iovecBuffer struct { // buffer is the actual buffer that holds the packet contents. Some contents // are reused across calls to pullBuffer if number of requested bytes is // smaller than the number of bytes allocated in the buffer. - views []*bufferv2.View + views []*buffer.View // iovecs are initialized with base pointers/len of the corresponding // entries in the views defined above, except when GSO is enabled @@ -58,7 +58,7 @@ type iovecBuffer struct { func newIovecBuffer(sizes []int, skipsVnetHdr bool) *iovecBuffer { b := &iovecBuffer{ - views: make([]*bufferv2.View, len(sizes)), + views: make([]*buffer.View, len(sizes)), sizes: sizes, skipsVnetHdr: skipsVnetHdr, } @@ -86,7 +86,7 @@ func (b *iovecBuffer) nextIovecs() []unix.Iovec { if b.views[i] != nil { break } - v := bufferv2.NewViewSize(b.sizes[i]) + v := buffer.NewViewSize(b.sizes[i]) b.views[i] = v b.iovecs[i+vnetHdrOff] = unix.Iovec{Base: v.BasePtr()} b.iovecs[i+vnetHdrOff].SetLen(v.Size()) @@ -99,14 +99,14 @@ func (b *iovecBuffer) nextIovecs() []unix.Iovec { // that holds the storage, and updates pulledIndex to indicate which part // of b.buffer's storage must be reallocated during the next call to // nextIovecs. -func (b *iovecBuffer) pullBuffer(n int) bufferv2.Buffer { - var views []*bufferv2.View +func (b *iovecBuffer) pullBuffer(n int) buffer.Buffer { + var views []*buffer.View c := 0 if b.skipsVnetHdr { c += virtioNetHdrSize if c >= n { // Nothing in the packet. - return bufferv2.Buffer{} + return buffer.Buffer{} } } // Remove the used views from the buffer. @@ -125,7 +125,7 @@ func (b *iovecBuffer) pullBuffer(n int) bufferv2.Buffer { // Exclude the size of the vnet header. n -= virtioNetHdrSize } - pulled := bufferv2.Buffer{} + pulled := buffer.Buffer{} for _, v := range views { pulled.Append(v) } diff --git a/pkg/tcpip/link/muxed/BUILD b/pkg/tcpip/link/muxed/BUILD index 11a40b77e..f37a37c7b 100644 --- a/pkg/tcpip/link/muxed/BUILD +++ b/pkg/tcpip/link/muxed/BUILD @@ -10,7 +10,7 @@ go_library( srcs = ["injectable.go"], visibility = ["//visibility:public"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/header", "//pkg/tcpip/stack", @@ -23,7 +23,7 @@ go_test( srcs = ["injectable_test.go"], library = ":muxed", deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/link/fdbased", diff --git a/pkg/tcpip/link/muxed/injectable.go b/pkg/tcpip/link/muxed/injectable.go index 014057892..d5eaa8239 100644 --- a/pkg/tcpip/link/muxed/injectable.go +++ b/pkg/tcpip/link/muxed/injectable.go @@ -18,7 +18,7 @@ package muxed import ( "sync" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" "gvisor.dev/gvisor/pkg/tcpip/stack" @@ -124,7 +124,7 @@ func (m *InjectableEndpoint) WritePackets(pkts stack.PacketBufferList) (int, tcp // InjectOutbound writes outbound packets to the appropriate // LinkInjectableEndpoint based on the dest address. -func (m *InjectableEndpoint) InjectOutbound(dest tcpip.Address, packet *bufferv2.View) tcpip.Error { +func (m *InjectableEndpoint) InjectOutbound(dest tcpip.Address, packet *buffer.View) tcpip.Error { endpoint, ok := m.routes[dest] if !ok { return &tcpip.ErrHostUnreachable{} diff --git a/pkg/tcpip/link/muxed/injectable_test.go b/pkg/tcpip/link/muxed/injectable_test.go index a6e3e3927..c53bb721e 100644 --- a/pkg/tcpip/link/muxed/injectable_test.go +++ b/pkg/tcpip/link/muxed/injectable_test.go @@ -21,7 +21,7 @@ import ( "testing" "golang.org/x/sys/unix" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/link/fdbased" @@ -32,7 +32,7 @@ import ( func TestInjectableEndpointRawDispatch(t *testing.T) { endpoint, sock, dstIP := makeTestInjectableEndpoint(t) - v := bufferv2.NewViewWithData([]byte{0xFA}) + v := buffer.NewViewWithData([]byte{0xFA}) defer v.Release() endpoint.InjectOutbound(dstIP, v) @@ -51,7 +51,7 @@ func TestInjectableEndpointDispatch(t *testing.T) { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: 1, - Payload: bufferv2.MakeWithData([]byte{0xFB}), + Payload: buffer.MakeWithData([]byte{0xFB}), }) defer pkt.DecRef() pkt.TransportHeader().Push(1)[0] = 0xFA diff --git a/pkg/tcpip/link/qdisc/fifo/BUILD b/pkg/tcpip/link/qdisc/fifo/BUILD index 731606c6a..9fabd3e48 100644 --- a/pkg/tcpip/link/qdisc/fifo/BUILD +++ b/pkg/tcpip/link/qdisc/fifo/BUILD @@ -27,7 +27,7 @@ go_test( srcs = ["qdisc_test.go"], deps = [ ":fifo", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/sync", "//pkg/tcpip", diff --git a/pkg/tcpip/link/qdisc/fifo/qdisc_test.go b/pkg/tcpip/link/qdisc/fifo/qdisc_test.go index ed0becf2f..304e0b7d4 100644 --- a/pkg/tcpip/link/qdisc/fifo/qdisc_test.go +++ b/pkg/tcpip/link/qdisc/fifo/qdisc_test.go @@ -20,7 +20,7 @@ import ( "testing" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" @@ -67,7 +67,7 @@ func TestFastSimultaneousWrites(t *testing.T) { defer wg.Done() for j := 0; j < nWrites; j++ { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(v), + Payload: buffer.MakeWithData(v), }) pkt.Hash = rand.Uint32() linkEP.WritePacket(pkt) @@ -100,7 +100,7 @@ func TestWriteMorePacketsThanBatchSize(t *testing.T) { linkEp := fifo.New(lower, 1, 1000) for i := 0; i < want; i++ { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(v), + Payload: buffer.MakeWithData(v), }) linkEp.WritePacket(pkt) pkt.DecRef() diff --git a/pkg/tcpip/link/sharedmem/BUILD b/pkg/tcpip/link/sharedmem/BUILD index 352b02619..3ff4dfcb8 100644 --- a/pkg/tcpip/link/sharedmem/BUILD +++ b/pkg/tcpip/link/sharedmem/BUILD @@ -22,7 +22,7 @@ go_library( ], deps = [ "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/cleanup", "//pkg/eventfd", "//pkg/log", @@ -43,7 +43,7 @@ go_test( srcs = ["sharedmem_test.go"], library = ":sharedmem", deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/sync", "//pkg/tcpip", diff --git a/pkg/tcpip/link/sharedmem/server_rx.go b/pkg/tcpip/link/sharedmem/server_rx.go index a62f64f31..701d44284 100644 --- a/pkg/tcpip/link/sharedmem/server_rx.go +++ b/pkg/tcpip/link/sharedmem/server_rx.go @@ -20,7 +20,7 @@ package sharedmem import ( "golang.org/x/sys/unix" "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/cleanup" "gvisor.dev/gvisor/pkg/eventfd" "gvisor.dev/gvisor/pkg/tcpip/link/sharedmem/pipe" @@ -126,14 +126,14 @@ func (s *serverRx) DisableNotification() { const completionNotificationSize = 8 // receive receives a single packet from the packetPipe. -func (s *serverRx) receive() *bufferv2.View { +func (s *serverRx) receive() *buffer.View { desc := s.packetPipe.Pull() if desc == nil { return nil } pktInfo := queue.DecodeTxPacketHeader(desc) - contents := bufferv2.NewView(int(pktInfo.Size)) + contents := buffer.NewView(int(pktInfo.Size)) toCopy := pktInfo.Size for i := 0; i < pktInfo.BufferCount; i++ { txBuf := queue.DecodeTxBufferHeader(desc, i) diff --git a/pkg/tcpip/link/sharedmem/server_tx.go b/pkg/tcpip/link/sharedmem/server_tx.go index abb8fa1cc..9b6ce4b62 100644 --- a/pkg/tcpip/link/sharedmem/server_tx.go +++ b/pkg/tcpip/link/sharedmem/server_tx.go @@ -20,7 +20,7 @@ package sharedmem import ( "golang.org/x/sys/unix" "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/cleanup" "gvisor.dev/gvisor/pkg/eventfd" "gvisor.dev/gvisor/pkg/tcpip/link/sharedmem/pipe" @@ -115,7 +115,7 @@ func (s *serverTx) cleanup() { // acquireBuffers acquires enough buffers to hold all the data in views or // returns nil if not enough buffers are currently available. -func (s *serverTx) acquireBuffers(pktBuffer bufferv2.Buffer, buffers []queue.RxBuffer) (acquiredBuffers []queue.RxBuffer) { +func (s *serverTx) acquireBuffers(pktBuffer buffer.Buffer, buffers []queue.RxBuffer) (acquiredBuffers []queue.RxBuffer) { acquiredBuffers = buffers[:0] wantBytes := int(pktBuffer.Size()) for wantBytes > 0 { @@ -137,7 +137,7 @@ func (s *serverTx) acquireBuffers(pktBuffer bufferv2.Buffer, buffers []queue.RxB // // To avoid allocations the filledBuffers are appended to the buffers slice // which will be grown as required. This method takes ownership of pktBuffer. -func (s *serverTx) fillPacket(pktBuffer bufferv2.Buffer, buffers []queue.RxBuffer) (filledBuffers []queue.RxBuffer, totalCopied uint32) { +func (s *serverTx) fillPacket(pktBuffer buffer.Buffer, buffers []queue.RxBuffer) (filledBuffers []queue.RxBuffer, totalCopied uint32) { bufs := s.acquireBuffers(pktBuffer, buffers) if bufs == nil { pktBuffer.Release() diff --git a/pkg/tcpip/link/sharedmem/sharedmem.go b/pkg/tcpip/link/sharedmem/sharedmem.go index fdffee342..324c704a1 100644 --- a/pkg/tcpip/link/sharedmem/sharedmem.go +++ b/pkg/tcpip/link/sharedmem/sharedmem.go @@ -27,7 +27,7 @@ import ( "fmt" "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/eventfd" "gvisor.dev/gvisor/pkg/log" "gvisor.dev/gvisor/pkg/sync" @@ -424,7 +424,7 @@ func (e *endpoint) dispatchLoop(d stack.NetworkDispatcher) { // Copy data from the shared area to its own buffer, then // prepare to repost the buffer. - v := bufferv2.NewView(int(n)) + v := buffer.NewView(int(n)) v.Grow(int(n)) offset := uint32(0) for i := range rxb { @@ -435,7 +435,7 @@ func (e *endpoint) dispatchLoop(d stack.NetworkDispatcher) { } pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithView(v), + Payload: buffer.MakeWithView(v), }) if e.virtioNetHeaderRequired { diff --git a/pkg/tcpip/link/sharedmem/sharedmem_server.go b/pkg/tcpip/link/sharedmem/sharedmem_server.go index 45421e237..f29c98da1 100644 --- a/pkg/tcpip/link/sharedmem/sharedmem_server.go +++ b/pkg/tcpip/link/sharedmem/sharedmem_server.go @@ -19,7 +19,7 @@ package sharedmem import ( "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -294,7 +294,7 @@ func (e *serverEndpoint) dispatchLoop(d stack.NetworkDispatcher) { } } pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithView(b), + Payload: buffer.MakeWithView(b), }) if e.virtioNetHeaderRequired { _, ok := pkt.VirtioNetHeader().Consume(header.VirtioNetHeaderSize) diff --git a/pkg/tcpip/link/sharedmem/sharedmem_test.go b/pkg/tcpip/link/sharedmem/sharedmem_test.go index ab1951238..eeee103cb 100644 --- a/pkg/tcpip/link/sharedmem/sharedmem_test.go +++ b/pkg/tcpip/link/sharedmem/sharedmem_test.go @@ -26,7 +26,7 @@ import ( "time" "golang.org/x/sys/unix" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" @@ -220,7 +220,7 @@ func TestSimpleSend(t *testing.T) { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: hdrLen + int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(data), + Payload: buffer.MakeWithData(data), }) copy(pkt.NetworkHeader().Push(hdrLen), hdrBuf) proto := tcpip.NetworkProtocolNumber(rand.Intn(0x10000)) @@ -359,7 +359,7 @@ func TestFillTxQueue(t *testing.T) { for i := queuePipeSize / 40; i > 0; i-- { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) pkt.EgressRoute.RemoteLinkAddress = remoteLinkAddr pkt.NetworkProtocolNumber = header.IPv4ProtocolNumber @@ -385,7 +385,7 @@ func TestFillTxQueue(t *testing.T) { // Next attempt to write must fail. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) pkt.EgressRoute.RemoteLinkAddress = remoteLinkAddr pkt.NetworkProtocolNumber = header.IPv4ProtocolNumber @@ -418,7 +418,7 @@ func TestFillTxQueueAfterBadCompletion(t *testing.T) { for i := 2; i > 0; i-- { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) pkts.PushBack(pkt) pkt.EgressRoute.RemoteLinkAddress = remoteLinkAddr @@ -447,7 +447,7 @@ func TestFillTxQueueAfterBadCompletion(t *testing.T) { for i := queuePipeSize / 40; i > 0; i-- { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) pkt.EgressRoute.RemoteLinkAddress = remoteLinkAddr pkt.NetworkProtocolNumber = header.IPv4ProtocolNumber @@ -472,7 +472,7 @@ func TestFillTxQueueAfterBadCompletion(t *testing.T) { // Next attempt to write must fail. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) pkt.EgressRoute.RemoteLinkAddress = remoteLinkAddr pkt.NetworkProtocolNumber = header.IPv4ProtocolNumber @@ -501,7 +501,7 @@ func TestFillTxMemory(t *testing.T) { for i := queueDataSize / bufferSize; i > 0; i-- { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) pkt.EgressRoute.RemoteLinkAddress = remoteLinkAddr pkt.NetworkProtocolNumber = header.IPv4ProtocolNumber @@ -527,7 +527,7 @@ func TestFillTxMemory(t *testing.T) { // Next attempt to write must fail. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) pkt.NetworkProtocolNumber = header.IPv4ProtocolNumber pkt.EgressRoute.RemoteLinkAddress = remoteLinkAddr @@ -555,7 +555,7 @@ func TestFillTxMemoryWithMultiBuffer(t *testing.T) { for i := queueDataSize/bufferSize - 1; i > 0; i-- { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) var pkts stack.PacketBufferList pkt.EgressRoute.RemoteLinkAddress = remoteLinkAddr @@ -576,7 +576,7 @@ func TestFillTxMemoryWithMultiBuffer(t *testing.T) { var pkts stack.PacketBufferList pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(make([]byte, bufferSize)), + Payload: buffer.MakeWithData(make([]byte, bufferSize)), }) pkt.EgressRoute.RemoteLinkAddress = remoteLinkAddr pkt.NetworkProtocolNumber = header.IPv4ProtocolNumber @@ -595,7 +595,7 @@ func TestFillTxMemoryWithMultiBuffer(t *testing.T) { var pkts stack.PacketBufferList pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(c.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) pkt.EgressRoute.RemoteLinkAddress = remoteLinkAddr pkt.NetworkProtocolNumber = header.IPv4ProtocolNumber diff --git a/pkg/tcpip/link/sharedmem/tx.go b/pkg/tcpip/link/sharedmem/tx.go index ecc61f3a5..ffb4ed175 100644 --- a/pkg/tcpip/link/sharedmem/tx.go +++ b/pkg/tcpip/link/sharedmem/tx.go @@ -18,7 +18,7 @@ import ( "math" "golang.org/x/sys/unix" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/eventfd" "gvisor.dev/gvisor/pkg/tcpip/link/sharedmem/queue" ) @@ -93,7 +93,7 @@ func (t *tx) cleanup() { // transmit sends a packet made of bufs. Returns a boolean that specifies // whether the packet was successfully transmitted. -func (t *tx) transmit(buffer bufferv2.Buffer) bool { +func (t *tx) transmit(transmitBuf buffer.Buffer) bool { // Pull completions from the tx queue and add their buffers back to the // pool so that we can reuse them. for { @@ -108,7 +108,7 @@ func (t *tx) transmit(buffer bufferv2.Buffer) bool { } bSize := t.bufs.entrySize - total := uint32(buffer.Size()) + total := uint32(transmitBuf.Size()) bufCount := (total + bSize - 1) / bSize // Allocate enough buffers to hold all the data. @@ -130,7 +130,7 @@ func (t *tx) transmit(buffer bufferv2.Buffer) bool { // Copy data into allocated buffers. nBuf := buf var dBuf []byte - buffer.Apply(func(v *bufferv2.View) { + transmitBuf.Apply(func(v *buffer.View) { for v.Size() > 0 { if len(dBuf) == 0 { dBuf = t.data[nBuf.Offset:][:nBuf.Size] diff --git a/pkg/tcpip/link/tun/BUILD b/pkg/tcpip/link/tun/BUILD index 2c5d56f19..b65f4b4e5 100644 --- a/pkg/tcpip/link/tun/BUILD +++ b/pkg/tcpip/link/tun/BUILD @@ -29,7 +29,7 @@ go_library( deps = [ "//pkg/abi/linux", "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/context", "//pkg/errors/linuxerr", "//pkg/log", diff --git a/pkg/tcpip/link/tun/device.go b/pkg/tcpip/link/tun/device.go index aec77a1b4..ad3cff900 100644 --- a/pkg/tcpip/link/tun/device.go +++ b/pkg/tcpip/link/tun/device.go @@ -17,7 +17,7 @@ package tun import ( "fmt" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/context" "gvisor.dev/gvisor/pkg/errors/linuxerr" "gvisor.dev/gvisor/pkg/sync" @@ -181,7 +181,7 @@ func (d *Device) MTU() (uint32, error) { } // Write inject one inbound packet to the network interface. -func (d *Device) Write(data *bufferv2.View) (int64, error) { +func (d *Device) Write(data *buffer.View) (int64, error) { d.mu.RLock() endpoint := d.endpoint d.mu.RUnlock() @@ -242,7 +242,7 @@ func (d *Device) Write(data *bufferv2.View) (int64, error) { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: len(ethHdr), - Payload: bufferv2.MakeWithView(data.Clone()), + Payload: buffer.MakeWithView(data.Clone()), }) defer pkt.DecRef() copy(pkt.LinkHeader().Push(len(ethHdr)), ethHdr) @@ -251,7 +251,7 @@ func (d *Device) Write(data *bufferv2.View) (int64, error) { } // Read reads one outgoing packet from the network interface. -func (d *Device) Read() (*bufferv2.View, error) { +func (d *Device) Read() (*buffer.View, error) { d.mu.RLock() endpoint := d.endpoint d.mu.RUnlock() @@ -269,12 +269,12 @@ func (d *Device) Read() (*bufferv2.View, error) { } // encodePkt encodes packet for fd side. -func (d *Device) encodePkt(pkt stack.PacketBufferPtr) *bufferv2.View { - var view *bufferv2.View +func (d *Device) encodePkt(pkt stack.PacketBufferPtr) *buffer.View { + var view *buffer.View // Packet information. if !d.flags.NoPacketInfo { - view = bufferv2.NewView(PacketInfoHeaderSize + pkt.Size()) + view = buffer.NewView(PacketInfoHeaderSize + pkt.Size()) view.Grow(PacketInfoHeaderSize) hdr := PacketInfoHeader(view.AsSlice()) hdr.Encode(&PacketInfoFields{ diff --git a/pkg/tcpip/link/xdp/BUILD b/pkg/tcpip/link/xdp/BUILD index 2139a15ef..4f1be49b4 100644 --- a/pkg/tcpip/link/xdp/BUILD +++ b/pkg/tcpip/link/xdp/BUILD @@ -12,7 +12,7 @@ go_library( ], visibility = ["//visibility:public"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/sync", "//pkg/tcpip", "//pkg/tcpip/header", diff --git a/pkg/tcpip/link/xdp/endpoint.go b/pkg/tcpip/link/xdp/endpoint.go index 515296feb..81b938adb 100644 --- a/pkg/tcpip/link/xdp/endpoint.go +++ b/pkg/tcpip/link/xdp/endpoint.go @@ -22,7 +22,7 @@ import ( "fmt" "golang.org/x/sys/unix" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -304,7 +304,7 @@ func (ep *endpoint) WritePackets(pkts stack.PacketBufferList) (int, tcpip.Error) } func (ep *endpoint) dispatch() (bool, tcpip.Error) { - var views []*bufferv2.View + var views []*buffer.View for { stopped, errno := rawfile.BlockingPollUntilStopped(ep.stopFD.EFD, ep.fd, unix.POLLIN|unix.POLLERR) @@ -339,7 +339,7 @@ func (ep *endpoint) dispatch() (bool, tcpip.Error) { // buffer. descriptor := ep.control.RX.Get(rxIndex + i) data := ep.control.UMEM.Get(descriptor) - view := bufferv2.NewViewWithData(data) + view := buffer.NewViewWithData(data) views = append(views, view) ep.control.UMEM.FreeFrame(descriptor.Addr) } @@ -358,7 +358,7 @@ func (ep *endpoint) dispatch() (bool, tcpip.Error) { // Wrap the packet in a PacketBuffer and send it up the stack. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithView(view), + Payload: buffer.MakeWithView(view), }) // AF_XDP packets always have a link header. if _, ok := pkt.LinkHeader().Consume(header.EthernetMinimumSize); !ok { diff --git a/pkg/tcpip/network/BUILD b/pkg/tcpip/network/BUILD index 3325ca6e8..e2a95f355 100644 --- a/pkg/tcpip/network/BUILD +++ b/pkg/tcpip/network/BUILD @@ -14,7 +14,7 @@ go_test( "multicast_group_test.go", ], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/sync", "//pkg/tcpip", diff --git a/pkg/tcpip/network/arp/BUILD b/pkg/tcpip/network/arp/BUILD index df2623dc8..2d125ed3c 100644 --- a/pkg/tcpip/network/arp/BUILD +++ b/pkg/tcpip/network/arp/BUILD @@ -29,7 +29,7 @@ go_test( srcs = ["arp_test.go"], deps = [ ":arp", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/faketime", diff --git a/pkg/tcpip/network/arp/arp_test.go b/pkg/tcpip/network/arp/arp_test.go index 2167b8d4a..b3a874973 100644 --- a/pkg/tcpip/network/arp/arp_test.go +++ b/pkg/tcpip/network/arp/arp_test.go @@ -21,7 +21,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/faketime" @@ -182,7 +182,7 @@ func TestMalformedPacket(t *testing.T) { defer c.cleanup() pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(make([]byte, header.ARPSize)), + Payload: buffer.MakeWithData(make([]byte, header.ARPSize)), }) c.linkEP.InjectInbound(arp.ProtocolNumber, pkt) @@ -207,7 +207,7 @@ func TestDisabledEndpoint(t *testing.T) { ep.Disable() pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(make([]byte, header.ARPSize)), + Payload: buffer.MakeWithData(make([]byte, header.ARPSize)), }) c.linkEP.InjectInbound(arp.ProtocolNumber, pkt) @@ -239,7 +239,7 @@ func TestDirectReply(t *testing.T) { copy(h.ProtocolAddressTarget(), stackAddr.AsSlice()) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(v), + Payload: buffer.MakeWithData(v), }) c.linkEP.InjectInbound(arp.ProtocolNumber, pkt) @@ -303,7 +303,7 @@ func TestDirectRequest(t *testing.T) { copy(h.ProtocolAddressSender(), test.senderAddr.AsSlice()) copy(h.ProtocolAddressTarget(), test.targetAddr.AsSlice()) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(v), + Payload: buffer.MakeWithData(v), }) c.linkEP.InjectInbound(arp.ProtocolNumber, pkt) pkt.DecRef() @@ -456,7 +456,7 @@ func TestReplyPacketType(t *testing.T) { t.Fatalf("got copy(_, _) = %d, want = %d", got, want) } pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(v), + Payload: buffer.MakeWithData(v), }) pkt.PktType = tcpip.PacketBroadcast c.linkEP.InjectInbound(arp.ProtocolNumber, pkt) @@ -483,7 +483,7 @@ func TestReplyPacketType(t *testing.T) { h.SetIPv4OverEthernet() h.SetOp(header.ARPReply) pkt = stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(v), + Payload: buffer.MakeWithData(v), }) pkt.PktType = testCase.packetType c.linkEP.InjectInbound(arp.ProtocolNumber, pkt) diff --git a/pkg/tcpip/network/internal/fragmentation/BUILD b/pkg/tcpip/network/internal/fragmentation/BUILD index e68dfecc7..9b0b47d1c 100644 --- a/pkg/tcpip/network/internal/fragmentation/BUILD +++ b/pkg/tcpip/network/internal/fragmentation/BUILD @@ -30,7 +30,7 @@ go_library( "//pkg/tcpip/network/ipv6:__pkg__", ], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/log", "//pkg/sync", "//pkg/tcpip", @@ -49,7 +49,7 @@ go_test( ], library = ":fragmentation", deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip/faketime", "//pkg/tcpip/network/internal/testutil", diff --git a/pkg/tcpip/network/internal/fragmentation/fragmentation.go b/pkg/tcpip/network/internal/fragmentation/fragmentation.go index db24ac22f..39dc5ad02 100644 --- a/pkg/tcpip/network/internal/fragmentation/fragmentation.go +++ b/pkg/tcpip/network/internal/fragmentation/fragmentation.go @@ -21,7 +21,7 @@ import ( "fmt" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/log" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" @@ -291,7 +291,7 @@ func (f *Fragmentation) releaseReassemblersLocked() { // PacketFragmenter is the book-keeping struct for packet fragmentation. type PacketFragmenter struct { transportHeader []byte - data bufferv2.Buffer + data buffer.Buffer reserve int fragmentPayloadLen int fragmentCount int @@ -316,7 +316,7 @@ func MakePacketFragmenter(pkt stack.PacketBufferPtr, fragmentPayloadLen uint32, // TODO(gvisor.dev/issue/3912): Once Authentication or ESP Headers are // supported for outbound packets, the fragmentable data should not include // these headers. - var fragmentableData bufferv2.Buffer + var fragmentableData buffer.Buffer fragmentableData.Append(pkt.TransportHeader().View()) pktBuf := pkt.Data().ToBuffer() fragmentableData.Merge(&pktBuf) diff --git a/pkg/tcpip/network/internal/fragmentation/fragmentation_test.go b/pkg/tcpip/network/internal/fragmentation/fragmentation_test.go index e801da23a..d4ec6675a 100644 --- a/pkg/tcpip/network/internal/fragmentation/fragmentation_test.go +++ b/pkg/tcpip/network/internal/fragmentation/fragmentation_test.go @@ -20,7 +20,7 @@ import ( "time" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip/faketime" "gvisor.dev/gvisor/pkg/tcpip/network/internal/testutil" "gvisor.dev/gvisor/pkg/tcpip/stack" @@ -31,12 +31,12 @@ import ( const reassembleTimeout = 1 // buf is a helper to build a Buffer from different strings. -func buf(size int, pieces ...string) bufferv2.Buffer { - buf := bufferv2.Buffer{} +func buf(size int, pieces ...string) buffer.Buffer { + buf := buffer.Buffer{} c := buf.Clone() defer c.Release() for _, p := range pieces { - v := bufferv2.NewViewWithData([]byte(p)) + v := buffer.NewViewWithData([]byte(p)) buf.Append(v) } @@ -59,7 +59,7 @@ type processInput struct { } type processOutput struct { - buf bufferv2.Buffer + buf buffer.Buffer proto uint8 done bool } @@ -77,7 +77,7 @@ func TestFragmentationProcess(t *testing.T) { {id: FragmentID{ID: 0}, first: 2, last: 3, more: false, pkt: pkt(2, "23")}, }, out: []processOutput{ - {buf: bufferv2.Buffer{}, done: false}, + {buf: buffer.Buffer{}, done: false}, {buf: buf(4, "01", "23"), done: true}, }, }, @@ -88,7 +88,7 @@ func TestFragmentationProcess(t *testing.T) { {id: FragmentID{ID: 0}, first: 2, last: 3, more: false, proto: 17, pkt: pkt(2, "23")}, }, out: []processOutput{ - {buf: bufferv2.Buffer{}, done: false}, + {buf: buffer.Buffer{}, done: false}, {buf: buf(4, "01", "23"), proto: 6, done: true}, }, }, @@ -101,8 +101,8 @@ func TestFragmentationProcess(t *testing.T) { {id: FragmentID{ID: 0}, first: 2, last: 3, more: false, pkt: pkt(2, "23")}, }, out: []processOutput{ - {buf: bufferv2.Buffer{}, done: false}, - {buf: bufferv2.Buffer{}, done: false}, + {buf: buffer.Buffer{}, done: false}, + {buf: buffer.Buffer{}, done: false}, {buf: buf(4, "ab", "cd"), done: true}, {buf: buf(4, "01", "23"), done: true}, }, @@ -533,7 +533,7 @@ func TestPacketFragmenter(t *testing.T) { payloadView := stack.PayloadSince(pkt.TransportHeader()) defer payloadView.Release() originalPayload := payloadView.AsSlice() - var reassembledPayload bufferv2.Buffer + var reassembledPayload buffer.Buffer defer reassembledPayload.Release() pf := MakePacketFragmenter(pkt, test.fragmentPayloadLen, reserve) for i := 0; ; i++ { diff --git a/pkg/tcpip/network/internal/fragmentation/reassembler_test.go b/pkg/tcpip/network/internal/fragmentation/reassembler_test.go index b30845904..08102f34d 100644 --- a/pkg/tcpip/network/internal/fragmentation/reassembler_test.go +++ b/pkg/tcpip/network/internal/fragmentation/reassembler_test.go @@ -20,7 +20,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip/faketime" "gvisor.dev/gvisor/pkg/tcpip/stack" ) @@ -37,8 +37,8 @@ type processParams struct { func TestReassemblerProcess(t *testing.T) { const proto = 99 - v := func(size int) *bufferv2.View { - payload := bufferv2.NewViewSize(size) + v := func(size int) *buffer.View { + payload := buffer.NewViewSize(size) for i := 1; i < size; i++ { payload.WriteAt([]byte{uint8(i) * 3}, i) } @@ -46,7 +46,7 @@ func TestReassemblerProcess(t *testing.T) { } pkt := func(sizes ...int) stack.PacketBufferPtr { - var buf bufferv2.Buffer + var buf buffer.Buffer for _, size := range sizes { buf.Append(v(size)) } diff --git a/pkg/tcpip/network/internal/multicast/BUILD b/pkg/tcpip/network/internal/multicast/BUILD index cdd7f8e00..061d3b4c4 100644 --- a/pkg/tcpip/network/internal/multicast/BUILD +++ b/pkg/tcpip/network/internal/multicast/BUILD @@ -23,7 +23,7 @@ go_test( srcs = ["route_table_test.go"], library = ":multicast", deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/faketime", @@ -40,7 +40,7 @@ go_test( srcs = ["example_test.go"], deps = [ ":multicast", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/faketime", diff --git a/pkg/tcpip/network/internal/multicast/example_test.go b/pkg/tcpip/network/internal/multicast/example_test.go index 6c623b4a5..dd3dcfaa0 100644 --- a/pkg/tcpip/network/internal/multicast/example_test.go +++ b/pkg/tcpip/network/internal/multicast/example_test.go @@ -20,7 +20,7 @@ import ( "testing" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/faketime" @@ -128,7 +128,7 @@ func deliverPktLocally(stack.PacketBufferPtr) { func newPacketBuffer(body string) stack.PacketBufferPtr { return stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData([]byte(body)), + Payload: buffer.MakeWithData([]byte(body)), }) } diff --git a/pkg/tcpip/network/internal/multicast/route_table_test.go b/pkg/tcpip/network/internal/multicast/route_table_test.go index b74682284..242433ef2 100644 --- a/pkg/tcpip/network/internal/multicast/route_table_test.go +++ b/pkg/tcpip/network/internal/multicast/route_table_test.go @@ -21,7 +21,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/faketime" @@ -46,7 +46,7 @@ var ( func newPacketBuffer(body string) stack.PacketBufferPtr { return stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData([]byte(body)), + Payload: buffer.MakeWithData([]byte(body)), }) } diff --git a/pkg/tcpip/network/internal/testutil/BUILD b/pkg/tcpip/network/internal/testutil/BUILD index afa508d22..148c3d71b 100644 --- a/pkg/tcpip/network/internal/testutil/BUILD +++ b/pkg/tcpip/network/internal/testutil/BUILD @@ -18,7 +18,7 @@ go_library( "//pkg/tcpip/tests/integration:__pkg__", ], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/checker", "//pkg/tcpip/header", diff --git a/pkg/tcpip/network/internal/testutil/testutil.go b/pkg/tcpip/network/internal/testutil/testutil.go index 20113775c..629c6bd60 100644 --- a/pkg/tcpip/network/internal/testutil/testutil.go +++ b/pkg/tcpip/network/internal/testutil/testutil.go @@ -22,7 +22,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -108,10 +108,10 @@ func (ep *MockLinkEndpoint) Close() { // the other headers. The payload is made from Views of the sizes listed in // viewSizes. func MakeRandPkt(transportHeaderLength int, extraHeaderReserveLength int, viewSizes []int, proto tcpip.NetworkProtocolNumber) stack.PacketBufferPtr { - var buf bufferv2.Buffer + var buf buffer.Buffer for _, s := range viewSizes { - newView := bufferv2.NewViewSize(s) + newView := buffer.NewViewSize(s) if _, err := rand.Read(newView.AsSlice()); err != nil { panic(fmt.Sprintf("rand.Read: %s", err)) } @@ -191,7 +191,7 @@ func CheckMLDv2Stats(t *testing.T, s *stack.Stack, reports, leaves, reportsV2 ui // // Note that observed records are removed from expectedRecords. No error is // logged if the report does not have all the records expected. -func ValidateIGMPv3ReportWithRecords(t *testing.T, v *bufferv2.View, srcAddr tcpip.Address, expectedRecords map[tcpip.Address]header.IGMPv3ReportRecordType) { +func ValidateIGMPv3ReportWithRecords(t *testing.T, v *buffer.View, srcAddr tcpip.Address, expectedRecords map[tcpip.Address]header.IGMPv3ReportRecordType) { t.Helper() checker.IPv4(t, v, @@ -204,7 +204,7 @@ func ValidateIGMPv3ReportWithRecords(t *testing.T, v *bufferv2.View, srcAddr tcp } // ValidateIGMPv3Report validates an IGMPv3 report. -func ValidateIGMPv3Report(t *testing.T, v *bufferv2.View, srcAddr tcpip.Address, addrs []tcpip.Address, recordType header.IGMPv3ReportRecordType) { +func ValidateIGMPv3Report(t *testing.T, v *buffer.View, srcAddr tcpip.Address, addrs []tcpip.Address, recordType header.IGMPv3ReportRecordType) { t.Helper() records := make(map[tcpip.Address]header.IGMPv3ReportRecordType) @@ -289,7 +289,7 @@ func ValidMultipleIGMPv2ReportLeaves(t *testing.T, e *channel.Endpoint, srcAddr // // Note that observed records are removed from expectedRecords. No error is // logged if the report does not have all the records expected. -func ValidateMLDv2ReportWithRecords(t *testing.T, v *bufferv2.View, srcAddr tcpip.Address, expectedRecords map[tcpip.Address]header.MLDv2ReportRecordType) { +func ValidateMLDv2ReportWithRecords(t *testing.T, v *buffer.View, srcAddr tcpip.Address, expectedRecords map[tcpip.Address]header.MLDv2ReportRecordType) { t.Helper() checker.IPv6WithExtHdr(t, v, @@ -304,7 +304,7 @@ func ValidateMLDv2ReportWithRecords(t *testing.T, v *bufferv2.View, srcAddr tcpi } // ValidateMLDv2Report validates an MLDv2 report. -func ValidateMLDv2Report(t *testing.T, v *bufferv2.View, srcAddr tcpip.Address, addrs []tcpip.Address, recordType header.MLDv2ReportRecordType) { +func ValidateMLDv2Report(t *testing.T, v *buffer.View, srcAddr tcpip.Address, addrs []tcpip.Address, recordType header.MLDv2ReportRecordType) { t.Helper() records := make(map[tcpip.Address]header.MLDv2ReportRecordType) diff --git a/pkg/tcpip/network/ip_test.go b/pkg/tcpip/network/ip_test.go index 8c7d1590b..4611342e3 100644 --- a/pkg/tcpip/network/ip_test.go +++ b/pkg/tcpip/network/ip_test.go @@ -21,7 +21,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" @@ -394,7 +394,7 @@ func TestSourceAddressValidation(t *testing.T) { ip.SetChecksum(^ip.CalculateChecksum()) pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(header.IPv4ProtocolNumber, pktBuf) pktBuf.DecRef() @@ -421,7 +421,7 @@ func TestSourceAddressValidation(t *testing.T) { DstAddr: localIPv6Addr, }) pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(header.IPv6ProtocolNumber, pktBuf) pktBuf.DecRef() @@ -623,7 +623,7 @@ func TestIPv4Send(t *testing.T) { // Setup the packet buffer. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(payload), + Payload: buffer.MakeWithData(payload), }) defer pkt.DecRef() @@ -688,7 +688,7 @@ func TestReceive(t *testing.T) { nic.testObject.contents = view[header.IPv4MinimumSize:totalLen] pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(view), + Payload: buffer.MakeWithData(view), }) ep.HandlePacket(pkt) pkt.DecRef() @@ -724,7 +724,7 @@ func TestReceive(t *testing.T) { nic.testObject.contents = view[header.IPv6MinimumSize:][:payloadLen] pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(view), + Payload: buffer.MakeWithData(view), }) ep.HandlePacket(pkt) pkt.DecRef() @@ -1025,7 +1025,7 @@ func TestIPv4FragmentationReceive(t *testing.T) { // Send first segment. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(frag1), + Payload: buffer.MakeWithData(frag1), }) ep.HandlePacket(pkt) pkt.DecRef() @@ -1039,7 +1039,7 @@ func TestIPv4FragmentationReceive(t *testing.T) { // Send second segment. pkt = stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(frag2), + Payload: buffer.MakeWithData(frag2), }) ep.HandlePacket(pkt) pkt.DecRef() @@ -1079,7 +1079,7 @@ func TestIPv6Send(t *testing.T) { // Setup the packet buffer. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(payload), + Payload: buffer.MakeWithData(payload), }) defer pkt.DecRef() // Issue the write. @@ -1320,7 +1320,7 @@ func TestIPv6ReceiveControl(t *testing.T) { func truncatedPacket(view []byte, trunc, netHdrLen int) stack.PacketBufferPtr { v := view[:len(view)-trunc] pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(v), + Payload: buffer.MakeWithData(v), }) return pkt } @@ -1368,7 +1368,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum tcpip.NetworkProtocolNumber nicAddr tcpip.AddressWithPrefix remoteAddr tcpip.Address - pktGen func(*testing.T, tcpip.Address) bufferv2.Buffer + pktGen func(*testing.T, tcpip.Address) buffer.Buffer checker func(*testing.T, stack.PacketBufferPtr, tcpip.Address) expectedErr tcpip.Error }{ @@ -1378,7 +1378,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum: ipv4.ProtocolNumber, nicAddr: localIPv4AddrWithPrefix, remoteAddr: remoteIPv4Addr, - pktGen: func(t *testing.T, src tcpip.Address) bufferv2.Buffer { + pktGen: func(t *testing.T, src tcpip.Address) buffer.Buffer { totalLen := header.IPv4MinimumSize + len(data) hdr := prependable.New(totalLen) if n := copy(hdr.Prepend(len(data)), data); n != len(data) { @@ -1391,7 +1391,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { SrcAddr: src, DstAddr: remoteIPv4Addr, }) - return bufferv2.MakeWithData(hdr.View()) + return buffer.MakeWithData(hdr.View()) }, checker: func(t *testing.T, pkt stack.PacketBufferPtr, src tcpip.Address) { if src == header.IPv4Any { @@ -1421,7 +1421,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum: ipv4.ProtocolNumber, nicAddr: localIPv4AddrWithPrefix, remoteAddr: remoteIPv4Addr, - pktGen: func(t *testing.T, src tcpip.Address) bufferv2.Buffer { + pktGen: func(t *testing.T, src tcpip.Address) buffer.Buffer { totalLen := header.IPv4MinimumSize + len(data) hdr := prependable.New(totalLen) if n := copy(hdr.Prepend(len(data)), data); n != len(data) { @@ -1435,7 +1435,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { DstAddr: remoteIPv4Addr, }) ip.SetHeaderLength(header.IPv4MinimumSize - 1) - return bufferv2.MakeWithData(hdr.View()) + return buffer.MakeWithData(hdr.View()) }, expectedErr: &tcpip.ErrMalformedHeader{}, }, @@ -1445,7 +1445,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum: ipv4.ProtocolNumber, nicAddr: localIPv4AddrWithPrefix, remoteAddr: remoteIPv4Addr, - pktGen: func(t *testing.T, src tcpip.Address) bufferv2.Buffer { + pktGen: func(t *testing.T, src tcpip.Address) buffer.Buffer { ip := header.IPv4(make([]byte, header.IPv4MinimumSize)) ip.Encode(&header.IPv4Fields{ Protocol: transportProto, @@ -1453,7 +1453,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { SrcAddr: src, DstAddr: remoteIPv4Addr, }) - return bufferv2.MakeWithData(ip[:len(ip)-1]) + return buffer.MakeWithData(ip[:len(ip)-1]) }, expectedErr: &tcpip.ErrMalformedHeader{}, }, @@ -1463,7 +1463,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum: ipv4.ProtocolNumber, nicAddr: localIPv4AddrWithPrefix, remoteAddr: remoteIPv4Addr, - pktGen: func(t *testing.T, src tcpip.Address) bufferv2.Buffer { + pktGen: func(t *testing.T, src tcpip.Address) buffer.Buffer { ip := header.IPv4(make([]byte, header.IPv4MinimumSize)) ip.Encode(&header.IPv4Fields{ Protocol: transportProto, @@ -1471,7 +1471,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { SrcAddr: src, DstAddr: remoteIPv4Addr, }) - return bufferv2.MakeWithData(ip) + return buffer.MakeWithData(ip) }, checker: func(t *testing.T, pkt stack.PacketBufferPtr, src tcpip.Address) { if src == header.IPv4Any { @@ -1501,7 +1501,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum: ipv4.ProtocolNumber, nicAddr: localIPv4AddrWithPrefix, remoteAddr: remoteIPv4Addr, - pktGen: func(t *testing.T, src tcpip.Address) bufferv2.Buffer { + pktGen: func(t *testing.T, src tcpip.Address) buffer.Buffer { ipHdrLen := int(header.IPv4MinimumSize + ipv4Options.Length()) totalLen := ipHdrLen + len(data) hdr := prependable.New(totalLen) @@ -1516,7 +1516,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { DstAddr: remoteIPv4Addr, Options: ipv4Options, }) - return bufferv2.MakeWithData(hdr.View()) + return buffer.MakeWithData(hdr.View()) }, checker: func(t *testing.T, pkt stack.PacketBufferPtr, src tcpip.Address) { if src == header.IPv4Any { @@ -1548,7 +1548,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum: ipv4.ProtocolNumber, nicAddr: localIPv4AddrWithPrefix, remoteAddr: remoteIPv4Addr, - pktGen: func(t *testing.T, src tcpip.Address) bufferv2.Buffer { + pktGen: func(t *testing.T, src tcpip.Address) buffer.Buffer { ip := header.IPv4(make([]byte, header.IPv4MinimumSize+ipv4Options.Length())) ip.Encode(&header.IPv4Fields{ Protocol: transportProto, @@ -1557,8 +1557,8 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { DstAddr: remoteIPv4Addr, Options: ipv4Options, }) - buf := bufferv2.MakeWithData(ip) - buf.Append(bufferv2.NewViewWithData(data)) + buf := buffer.MakeWithData(ip) + buf.Append(buffer.NewViewWithData(data)) return buf }, checker: func(t *testing.T, pkt stack.PacketBufferPtr, src tcpip.Address) { @@ -1591,7 +1591,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum: ipv6.ProtocolNumber, nicAddr: localIPv6AddrWithPrefix, remoteAddr: remoteIPv6Addr, - pktGen: func(t *testing.T, src tcpip.Address) bufferv2.Buffer { + pktGen: func(t *testing.T, src tcpip.Address) buffer.Buffer { totalLen := header.IPv6MinimumSize + len(data) hdr := prependable.New(totalLen) if n := copy(hdr.Prepend(len(data)), data); n != len(data) { @@ -1604,7 +1604,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { SrcAddr: src, DstAddr: remoteIPv6Addr, }) - return bufferv2.MakeWithData(hdr.View()) + return buffer.MakeWithData(hdr.View()) }, checker: func(t *testing.T, pkt stack.PacketBufferPtr, src tcpip.Address) { if src == header.IPv6Any { @@ -1633,7 +1633,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum: ipv6.ProtocolNumber, nicAddr: localIPv6AddrWithPrefix, remoteAddr: remoteIPv6Addr, - pktGen: func(t *testing.T, src tcpip.Address) bufferv2.Buffer { + pktGen: func(t *testing.T, src tcpip.Address) buffer.Buffer { totalLen := header.IPv6MinimumSize + len(ipv6FragmentExtHdr) + len(data) hdr := prependable.New(totalLen) if n := copy(hdr.Prepend(len(data)), data); n != len(data) { @@ -1651,7 +1651,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { SrcAddr: src, DstAddr: remoteIPv6Addr, }) - return bufferv2.MakeWithData(hdr.View()) + return buffer.MakeWithData(hdr.View()) }, checker: func(t *testing.T, pkt stack.PacketBufferPtr, src tcpip.Address) { if src == header.IPv6Any { @@ -1680,7 +1680,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum: ipv6.ProtocolNumber, nicAddr: localIPv6AddrWithPrefix, remoteAddr: remoteIPv6Addr, - pktGen: func(t *testing.T, src tcpip.Address) bufferv2.Buffer { + pktGen: func(t *testing.T, src tcpip.Address) buffer.Buffer { ip := header.IPv6(make([]byte, header.IPv6MinimumSize)) ip.Encode(&header.IPv6Fields{ TransportProtocol: transportProto, @@ -1688,7 +1688,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { SrcAddr: src, DstAddr: remoteIPv6Addr, }) - return bufferv2.MakeWithData(ip) + return buffer.MakeWithData(ip) }, checker: func(t *testing.T, pkt stack.PacketBufferPtr, src tcpip.Address) { if src == header.IPv6Any { @@ -1717,7 +1717,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { protoNum: ipv6.ProtocolNumber, nicAddr: localIPv6AddrWithPrefix, remoteAddr: remoteIPv6Addr, - pktGen: func(t *testing.T, src tcpip.Address) bufferv2.Buffer { + pktGen: func(t *testing.T, src tcpip.Address) buffer.Buffer { ip := header.IPv6(make([]byte, header.IPv6MinimumSize)) ip.Encode(&header.IPv6Fields{ TransportProtocol: transportProto, @@ -1725,7 +1725,7 @@ func TestWriteHeaderIncludedPacket(t *testing.T) { SrcAddr: src, DstAddr: remoteIPv4Addr, }) - return bufferv2.MakeWithData(ip[:len(ip)-1]) + return buffer.MakeWithData(ip[:len(ip)-1]) }, expectedErr: &tcpip.ErrMalformedHeader{}, }, @@ -1832,8 +1832,8 @@ func TestICMPInclusionSize(t *testing.T) { DstAddr: localIPv4Addr, }) ip.SetChecksum(^ip.CalculateChecksum()) - buf := bufferv2.MakeWithData(hdr.View()) - buf.Append(bufferv2.NewViewWithData(payload)) + buf := buffer.MakeWithData(hdr.View()) + buf.Append(buffer.NewViewWithData(payload)) // Take a copy before InjectInbound takes ownership of vv // as vv may be changed during the call. v := buf.Flatten() @@ -1860,8 +1860,8 @@ func TestICMPInclusionSize(t *testing.T) { SrcAddr: src, DstAddr: localIPv6Addr, }) - buf := bufferv2.MakeWithData(hdr.View()) - buf.Append(bufferv2.NewViewWithData(payload)) + buf := buffer.MakeWithData(hdr.View()) + buf.Append(buffer.NewViewWithData(payload)) // Take a copy before InjectInbound takes ownership of vv // as vv may be changed during the call. v := buf.Flatten() diff --git a/pkg/tcpip/network/ipv4/BUILD b/pkg/tcpip/network/ipv4/BUILD index 41aca5722..8df4a99fa 100644 --- a/pkg/tcpip/network/ipv4/BUILD +++ b/pkg/tcpip/network/ipv4/BUILD @@ -16,7 +16,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/sync", "//pkg/tcpip", "//pkg/tcpip/checksum", @@ -39,7 +39,7 @@ go_test( "main_test.go", ], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/sync", "//pkg/tcpip", diff --git a/pkg/tcpip/network/ipv4/icmp.go b/pkg/tcpip/network/ipv4/icmp.go index f44dea857..875eca473 100644 --- a/pkg/tcpip/network/ipv4/icmp.go +++ b/pkg/tcpip/network/ipv4/icmp.go @@ -17,7 +17,7 @@ package ipv4 import ( "fmt" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checksum" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -414,7 +414,7 @@ func (e *endpoint) handleICMP(pkt stack.PacketBufferPtr) { // // Take the base of the incoming request IP header but replace the options. replyHeaderLength := uint8(header.IPv4MinimumSize + len(newOptions)) - replyIPHdrView := bufferv2.NewView(int(replyHeaderLength)) + replyIPHdrView := buffer.NewView(int(replyHeaderLength)) replyIPHdrView.Write(iph[:header.IPv4MinimumSize]) replyIPHdrView.Write(newOptions) replyIPHdr := header.IPv4(replyIPHdrView.AsSlice()) @@ -431,7 +431,7 @@ func (e *endpoint) handleICMP(pkt stack.PacketBufferPtr) { replyICMPHdr.SetChecksum(0) replyICMPHdr.SetChecksum(^checksum.Checksum(replyData.AsSlice(), 0)) - replyBuf := bufferv2.MakeWithView(replyIPHdrView) + replyBuf := buffer.MakeWithView(replyIPHdrView) replyBuf.Append(replyData.Clone()) replyPkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(r.MaxHeaderLength()), @@ -767,7 +767,7 @@ func (p *protocol) returnError(reason icmpReason, pkt stack.PacketBufferPtr, del // required. This is now the payload of the new ICMP packet and no longer // considered a packet in its own right. - payload := bufferv2.MakeWithView(pkt.NetworkHeader().View()) + payload := buffer.MakeWithView(pkt.NetworkHeader().View()) payload.Append(pkt.TransportHeader().View()) if dataCap := payloadLen - int(payload.Size()); dataCap > 0 { buf := pkt.Data().ToBuffer() diff --git a/pkg/tcpip/network/ipv4/igmp.go b/pkg/tcpip/network/ipv4/igmp.go index 0f976e2a2..6db1cf173 100644 --- a/pkg/tcpip/network/ipv4/igmp.go +++ b/pkg/tcpip/network/ipv4/igmp.go @@ -19,7 +19,7 @@ import ( "math" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" "gvisor.dev/gvisor/pkg/tcpip/network/internal/ip" @@ -238,7 +238,7 @@ func (b *igmpv3ReportBuilder) Send() (sent bool, err tcpip.Error) { serializer := header.IGMPv3ReportSerializer{Records: records[:maxRecords]} records = records[maxRecords:] - icmpView := bufferv2.NewViewSize(serializer.Length()) + icmpView := buffer.NewViewSize(serializer.Length()) serializer.SerializeInto(icmpView.AsSlice()) if sentWithSpecifiedAddress, err := b.igmp.writePacketInner( icmpView, @@ -484,7 +484,7 @@ func (igmp *igmpState) handleMembershipReport(groupAddress tcpip.Address) { // // +checklocksread:igmp.ep.mu func (igmp *igmpState) writePacket(destAddress tcpip.Address, groupAddress tcpip.Address, igmpType header.IGMPType) (bool, tcpip.Error) { - igmpView := bufferv2.NewViewSize(header.IGMPReportMinimumSize) + igmpView := buffer.NewViewSize(header.IGMPReportMinimumSize) igmpData := header.IGMP(igmpView.AsSlice()) igmpData.SetType(igmpType) igmpData.SetGroupAddress(groupAddress) @@ -514,10 +514,10 @@ func (igmp *igmpState) writePacket(destAddress tcpip.Address, groupAddress tcpip } // +checklocksread:igmp.ep.mu -func (igmp *igmpState) writePacketInner(buf *bufferv2.View, reportStat tcpip.MultiCounterStat, options header.IPv4OptionsSerializer, destAddress tcpip.Address) (bool, tcpip.Error) { +func (igmp *igmpState) writePacketInner(buf *buffer.View, reportStat tcpip.MultiCounterStat, options header.IPv4OptionsSerializer, destAddress tcpip.Address) (bool, tcpip.Error) { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(igmp.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithView(buf), + Payload: buffer.MakeWithView(buf), }) defer pkt.DecRef() diff --git a/pkg/tcpip/network/ipv4/igmp_test.go b/pkg/tcpip/network/ipv4/igmp_test.go index f6d95afa2..62d9d1474 100644 --- a/pkg/tcpip/network/ipv4/igmp_test.go +++ b/pkg/tcpip/network/ipv4/igmp_test.go @@ -18,7 +18,7 @@ import ( "testing" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -143,7 +143,7 @@ func createAndInjectIGMPPacket(e *channel.Endpoint, igmpType header.IGMPType, ma igmp.SetGroupAddress(groupAddress) igmp.SetChecksum(header.IGMPCalculateChecksum(igmp)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) e.InjectInbound(ipv4.ProtocolNumber, pkt) pkt.DecRef() diff --git a/pkg/tcpip/network/ipv4/ipv4.go b/pkg/tcpip/network/ipv4/ipv4.go index be725ee3c..2e5ab0264 100644 --- a/pkg/tcpip/network/ipv4/ipv4.go +++ b/pkg/tcpip/network/ipv4/ipv4.go @@ -22,7 +22,7 @@ import ( "time" "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -1761,7 +1761,7 @@ func (p *protocol) isSubnetLocalBroadcastAddress(addr tcpip.Address) bool { // returns the parsed IP header. // // Returns true if the IP header was successfully parsed. -func (p *protocol) parseAndValidate(pkt stack.PacketBufferPtr) (*bufferv2.View, bool) { +func (p *protocol) parseAndValidate(pkt stack.PacketBufferPtr) (*buffer.View, bool) { transProtoNum, hasTransportHdr, ok := p.Parse(pkt) if !ok { return nil, false diff --git a/pkg/tcpip/network/ipv4/ipv4_test.go b/pkg/tcpip/network/ipv4/ipv4_test.go index e70cebe75..4b3704eb6 100644 --- a/pkg/tcpip/network/ipv4/ipv4_test.go +++ b/pkg/tcpip/network/ipv4/ipv4_test.go @@ -26,7 +26,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" @@ -300,7 +300,7 @@ func newICMPEchoPacket(t *testing.T, srcAddr, dstAddr tcpip.Address, ttl uint8, } pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) pkt.NetworkProtocolNumber = header.IPv4ProtocolNumber @@ -1832,7 +1832,7 @@ func TestIPv4Sanity(t *testing.T) { } ip.SetChecksum(^ipHeaderChecksum) requestPkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) defer requestPkt.DecRef() e.InjectInbound(header.IPv4ProtocolNumber, requestPkt) @@ -1980,7 +1980,7 @@ func compareFragments(packets []stack.PacketBufferPtr, sourcePacket stack.Packet sourceCopy.SetFlagsFragmentOffset(0, 0) sourceCopy.SetTotalLength(0) // Build up an array of the bytes sent. - var reassembledPayload bufferv2.Buffer + var reassembledPayload buffer.Buffer defer reassembledPayload.Release() for i, packet := range packets { // Confirm that the packet is valid. @@ -2571,7 +2571,7 @@ func TestInvalidFragments(t *testing.T) { } pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(header.IPv4ProtocolNumber, pkt) pkt.DecRef() @@ -2781,7 +2781,7 @@ func TestFragmentReassemblyTimeout(t *testing.T) { NIC: nicID, }}) - var firstFragmentSent bufferv2.Buffer + var firstFragmentSent buffer.Buffer for _, f := range test.fragments { pktSize := header.IPv4MinimumSize hdr := prependable.New(pktSize) @@ -2792,15 +2792,15 @@ func TestFragmentReassemblyTimeout(t *testing.T) { ip.SetChecksum(0) ip.SetChecksum(^ip.CalculateChecksum()) - buf := bufferv2.MakeWithData(hdr.View()) - buf.Append(bufferv2.NewViewWithData(f.payload)) + buf := buffer.MakeWithData(hdr.View()) + buf.Append(buffer.NewViewWithData(f.payload)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: buf, }) if firstFragmentSent.Size() == 0 && ip.FragmentOffset() == 0 { - firstFragmentSent = bufferv2.MakeWithView(stack.PayloadSince(pkt.NetworkHeader())) + firstFragmentSent = buffer.MakeWithView(stack.PayloadSince(pkt.NetworkHeader())) defer firstFragmentSent.Release() } @@ -3294,8 +3294,8 @@ func TestReceiveFragments(t *testing.T) { }) ip.SetChecksum(^ip.CalculateChecksum()) - buf := bufferv2.MakeWithData(hdr.View()) - buf.Append(bufferv2.NewViewWithData(frag.payload)) + buf := buffer.MakeWithData(hdr.View()) + buf.Append(buffer.NewViewWithData(frag.payload)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: buf, }) @@ -3467,7 +3467,7 @@ func TestWriteStats(t *testing.T) { for i := 0; i < nPackets; i++ { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: header.UDPMinimumSize + int(rt.MaxHeaderLength()), - Payload: bufferv2.Buffer{}, + Payload: buffer.Buffer{}, }) defer pkt.DecRef() pkt.TransportHeader().Push(header.UDPMinimumSize) @@ -3598,7 +3598,7 @@ func TestPacketQueuing(t *testing.T) { }) ip.SetChecksum(^ip.CalculateChecksum()) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) defer pkt.DecRef() e.InjectInbound(ipv4.ProtocolNumber, pkt) @@ -3646,7 +3646,7 @@ func TestPacketQueuing(t *testing.T) { }) ip.SetChecksum(^ip.CalculateChecksum()) echoPkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) defer echoPkt.DecRef() e.InjectInbound(header.IPv4ProtocolNumber, echoPkt) @@ -3743,7 +3743,7 @@ func TestPacketQueuing(t *testing.T) { copy(packet.HardwareAddressTarget(), host1NICLinkAddr) copy(packet.ProtocolAddressTarget(), host1IPv4Addr.AddressWithPrefix.Address.AsSlice()) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr), + Payload: buffer.MakeWithData(hdr), }) e.InjectInbound(arp.ProtocolNumber, pkt) pkt.DecRef() @@ -4019,7 +4019,7 @@ func TestIcmpRateLimit(t *testing.T) { t.Run(testCase.name, func(t *testing.T) { for round := 0; round < icmpBurst+1; round++ { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(testCase.createPacket()), + Payload: buffer.MakeWithData(testCase.createPacket()), }) e.InjectInbound(header.IPv4ProtocolNumber, pkt) pkt.DecRef() diff --git a/pkg/tcpip/network/ipv6/BUILD b/pkg/tcpip/network/ipv6/BUILD index c43baa1e6..8b57d808c 100644 --- a/pkg/tcpip/network/ipv6/BUILD +++ b/pkg/tcpip/network/ipv6/BUILD @@ -18,7 +18,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/sync", "//pkg/tcpip", "//pkg/tcpip/header", @@ -42,7 +42,7 @@ go_test( ], library = ":ipv6", deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/sync", "//pkg/tcpip", @@ -71,7 +71,7 @@ go_test( srcs = ["mld_test.go"], deps = [ ":ipv6", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/checker", diff --git a/pkg/tcpip/network/ipv6/icmp.go b/pkg/tcpip/network/ipv6/icmp.go index b90398ec7..a98332dc3 100644 --- a/pkg/tcpip/network/ipv6/icmp.go +++ b/pkg/tcpip/network/ipv6/icmp.go @@ -17,7 +17,7 @@ package ipv6 import ( "fmt" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" "gvisor.dev/gvisor/pkg/tcpip/stack" @@ -1175,7 +1175,7 @@ func (p *protocol) returnError(reason icmpReason, pkt stack.PacketBufferPtr, del if payloadLen > available { payloadLen = available } - payload := bufferv2.MakeWithView(network) + payload := buffer.MakeWithView(network) payload.Append(transport) dataBuf := pkt.Data().ToBuffer() payload.Merge(&dataBuf) diff --git a/pkg/tcpip/network/ipv6/icmp_test.go b/pkg/tcpip/network/ipv6/icmp_test.go index 46d5c8034..31ffbe0fe 100644 --- a/pkg/tcpip/network/ipv6/icmp_test.go +++ b/pkg/tcpip/network/ipv6/icmp_test.go @@ -23,7 +23,7 @@ import ( "github.com/google/go-cmp/cmp" "golang.org/x/time/rate" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -191,8 +191,8 @@ func handleICMPInIPv6(ep stack.NetworkEndpoint, src, dst tcpip.Address, icmp hea ExtensionHeaders: extensionHeaders, }) - buf := bufferv2.MakeWithData(ip) - buf.Append(bufferv2.NewViewWithData([]byte(icmp))) + buf := buffer.MakeWithData(ip) + buf.Append(buffer.NewViewWithData([]byte(icmp))) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: buf, }) @@ -794,7 +794,7 @@ func TestICMPChecksumValidationSimple(t *testing.T) { SrcAddr: lladdr1, DstAddr: lladdr0, }) - buf := bufferv2.MakeWithData(append(ip, icmp...)) + buf := buffer.MakeWithData(append(ip, icmp...)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: buf, }) @@ -1000,7 +1000,7 @@ func TestICMPChecksumValidationWithPayload(t *testing.T) { DstAddr: lladdr0, }) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(ProtocolNumber, pkt) pkt.DecRef() @@ -1191,7 +1191,7 @@ func TestICMPChecksumValidationWithPayloadMultipleViews(t *testing.T) { SrcAddr: lladdr1, DstAddr: lladdr0, }) - buf := bufferv2.MakeWithData(append(hdr.View(), payload...)) + buf := buffer.MakeWithData(append(hdr.View(), payload...)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: buf, }) @@ -1424,7 +1424,7 @@ func TestPacketQueing(t *testing.T) { DstAddr: host1IPv6Addr.AddressWithPrefix.Address, }) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(ProtocolNumber, pkt) pkt.DecRef() @@ -1475,7 +1475,7 @@ func TestPacketQueing(t *testing.T) { DstAddr: host1IPv6Addr.AddressWithPrefix.Address, }) pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(header.IPv6ProtocolNumber, pktBuf) pktBuf.DecRef() @@ -1588,7 +1588,7 @@ func TestPacketQueing(t *testing.T) { DstAddr: host1IPv6Addr.AddressWithPrefix.Address, }) pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(ProtocolNumber, pktBuf) pktBuf.DecRef() diff --git a/pkg/tcpip/network/ipv6/ipv6.go b/pkg/tcpip/network/ipv6/ipv6.go index 3573e7ccc..ff5b44653 100644 --- a/pkg/tcpip/network/ipv6/ipv6.go +++ b/pkg/tcpip/network/ipv6/ipv6.go @@ -25,7 +25,7 @@ import ( "time" "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -1465,7 +1465,7 @@ func (e *endpoint) processExtensionHeaders(h header.IPv6, pkt stack.PacketBuffer if v != nil { v.TrimFront(header.IPv6MinimumSize) } - buf := bufferv2.MakeWithView(v) + buf := buffer.MakeWithView(v) buf.Append(pkt.TransportHeader().View()) dataBuf := pkt.Data().ToBuffer() buf.Merge(&dataBuf) @@ -2592,7 +2592,7 @@ func (*protocol) Wait() {} // for releasing the returned View. // // Returns true if the IP header was successfully parsed. -func (p *protocol) parseAndValidate(pkt stack.PacketBufferPtr) (*bufferv2.View, bool) { +func (p *protocol) parseAndValidate(pkt stack.PacketBufferPtr) (*buffer.View, bool) { transProtoNum, hasTransportHdr, ok := p.Parse(pkt) if !ok { return nil, false diff --git a/pkg/tcpip/network/ipv6/ipv6_test.go b/pkg/tcpip/network/ipv6/ipv6_test.go index 91bbaebbe..6d2aa6f93 100644 --- a/pkg/tcpip/network/ipv6/ipv6_test.go +++ b/pkg/tcpip/network/ipv6/ipv6_test.go @@ -25,7 +25,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -97,7 +97,7 @@ func testReceiveICMP(t *testing.T, s *stack.Stack, e *channel.Endpoint, src, dst }) pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(ProtocolNumber, pktBuf) pktBuf.DecRef() @@ -157,7 +157,7 @@ func testReceiveUDP(t *testing.T, s *stack.Stack, e *channel.Endpoint, src, dst }) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(ProtocolNumber, pkt) pkt.DecRef() @@ -178,7 +178,7 @@ func compareFragments(packets []stack.PacketBufferPtr, sourcePacket stack.Packet defer view.Release() source = append(source, view.AsSlice()...) - var reassembledPayload bufferv2.Buffer + var reassembledPayload buffer.Buffer defer reassembledPayload.Release() for i, fragment := range packets { // Confirm that the packet is valid. @@ -1018,7 +1018,7 @@ func TestReceiveIPv6ExtHdrs(t *testing.T) { } pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(ProtocolNumber, pkt) pkt.DecRef() @@ -1048,7 +1048,7 @@ func TestReceiveIPv6ExtHdrs(t *testing.T) { } defer p.DecRef() - // Pack the output packet into a single bufferv2.View as the checkers + // Pack the output packet into a single buffer.View as the checkers // assume that. v := p.ToView() defer v.Release() @@ -1907,8 +1907,8 @@ func TestReceiveIPv6Fragments(t *testing.T) { DstAddr: f.dstAddr, }) - buf := bufferv2.MakeWithData(hdr.View()) - buf.Append(bufferv2.NewViewWithData(f.data)) + buf := buffer.MakeWithData(hdr.View()) + buf.Append(buffer.NewViewWithData(f.data)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: buf, }) @@ -2044,8 +2044,8 @@ func TestConcurrentFragmentWrites(t *testing.T) { DstAddr: f.dstAddr, }) - buf := bufferv2.MakeWithData(hdr.View()) - buf.Append(bufferv2.NewViewWithData(f.data)) + buf := buffer.MakeWithData(hdr.View()) + buf.Append(buffer.NewViewWithData(f.data)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: buf, }) @@ -2173,7 +2173,7 @@ func TestInvalidIPv6Fragments(t *testing.T) { encodeArgs.ExtensionHeaders = append(encodeArgs.ExtensionHeaders, &f.ipv6FragmentFields) ip.Encode(&encodeArgs) - buf := bufferv2.MakeWithData(append(hdr.View(), f.payload...)) + buf := buffer.MakeWithData(append(hdr.View(), f.payload...)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: buf, }) @@ -2434,7 +2434,7 @@ func TestFragmentReassemblyTimeout(t *testing.T) { fragHDR := header.IPv6Fragment(hdr.View()[header.IPv6MinimumSize:]) - buf := bufferv2.MakeWithData(append(hdr.View(), f.payload...)) + buf := buffer.MakeWithData(append(hdr.View(), f.payload...)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: buf, }) @@ -2600,7 +2600,7 @@ func TestWriteStats(t *testing.T) { for i := 0; i < nPackets; i++ { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: header.UDPMinimumSize + int(rt.MaxHeaderLength()), - Payload: bufferv2.Buffer{}, + Payload: buffer.Buffer{}, }) defer pkt.DecRef() pkt.TransportHeader().Push(header.UDPMinimumSize) @@ -3271,7 +3271,7 @@ func TestForwarding(t *testing.T) { DstAddr: test.dstAddr, }) request := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) incomingEndpoint, ok := endpoints[incomingNICID] @@ -3606,7 +3606,7 @@ func TestMulticastForwarding(t *testing.T) { DstAddr: dstAddr, }) request := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) incomingEndpoint, ok := endpoints[incomingNICID] @@ -3879,7 +3879,7 @@ func TestIcmpRateLimit(t *testing.T) { t.Run(testCase.name, func(t *testing.T) { for round := 0; round < icmpBurst+1; round++ { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(testCase.createPacket()), + Payload: buffer.MakeWithData(testCase.createPacket()), }) e.InjectInbound(header.IPv6ProtocolNumber, pkt) pkt.DecRef() @@ -3972,7 +3972,7 @@ func TestRejectMartianMappedPackets(t *testing.T) { // Send the packet out. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) channelEP.InjectInbound(ProtocolNumber, pkt) pkt.DecRef() diff --git a/pkg/tcpip/network/ipv6/mld.go b/pkg/tcpip/network/ipv6/mld.go index 33507cc5b..d474b44a7 100644 --- a/pkg/tcpip/network/ipv6/mld.go +++ b/pkg/tcpip/network/ipv6/mld.go @@ -18,7 +18,7 @@ import ( "fmt" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" "gvisor.dev/gvisor/pkg/tcpip/network/internal/ip" @@ -186,7 +186,7 @@ func (b *mldv2ReportBuilder) Send() (sent bool, err tcpip.Error) { serializer := header.MLDv2ReportSerializer{Records: records[:maxRecords]} records = records[maxRecords:] - icmpView := bufferv2.NewViewSize(header.ICMPv6HeaderSize + serializer.Length()) + icmpView := buffer.NewViewSize(header.ICMPv6HeaderSize + serializer.Length()) icmp := header.ICMPv6(icmpView.AsSlice()) serializer.SerializeInto(icmp.MessageBody()) if sentWithSpecifiedAddress, err := b.mld.writePacketInner( @@ -369,7 +369,7 @@ func (mld *mldState) writePacket(destAddress, groupAddress tcpip.Address, mldTyp panic(fmt.Sprintf("unrecognized mld type = %d", mldType)) } - icmpView := bufferv2.NewViewSize(header.ICMPv6HeaderSize + header.MLDMinimumSize) + icmpView := buffer.NewViewSize(header.ICMPv6HeaderSize + header.MLDMinimumSize) icmp := header.ICMPv6(icmpView.AsSlice()) header.MLD(icmp.MessageBody()).SetMulticastAddress(groupAddress) @@ -388,7 +388,7 @@ func (mld *mldState) writePacket(destAddress, groupAddress tcpip.Address, mldTyp ) } -func (mld *mldState) writePacketInner(buf *bufferv2.View, mldType header.ICMPv6Type, reportStat tcpip.MultiCounterStat, extensionHeaders header.IPv6ExtHdrSerializer, destAddress tcpip.Address) (bool, tcpip.Error) { +func (mld *mldState) writePacketInner(buf *buffer.View, mldType header.ICMPv6Type, reportStat tcpip.MultiCounterStat, extensionHeaders header.IPv6ExtHdrSerializer, destAddress tcpip.Address) (bool, tcpip.Error) { icmp := header.ICMPv6(buf.AsSlice()) icmp.SetType(mldType) @@ -455,7 +455,7 @@ func (mld *mldState) writePacketInner(buf *bufferv2.View, mldType header.ICMPv6T pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(mld.ep.MaxHeaderLength()) + extensionHeaders.Length(), - Payload: bufferv2.MakeWithView(buf), + Payload: buffer.MakeWithView(buf), }) defer pkt.DecRef() diff --git a/pkg/tcpip/network/ipv6/mld_test.go b/pkg/tcpip/network/ipv6/mld_test.go index 64da0f605..2da420e9c 100644 --- a/pkg/tcpip/network/ipv6/mld_test.go +++ b/pkg/tcpip/network/ipv6/mld_test.go @@ -21,7 +21,7 @@ import ( "testing" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -62,7 +62,7 @@ func checkVersion(t *testing.T, s *stack.Stack, nicID tcpip.NICID, v1 bool) { mldEP.SetMLDVersion(ipv6.MLDVersion1) } -func validateMLDPacket(t *testing.T, v *bufferv2.View, localAddress, remoteAddress tcpip.Address, mldType header.ICMPv6Type, groupAddress tcpip.Address) { +func validateMLDPacket(t *testing.T, v *buffer.View, localAddress, remoteAddress tcpip.Address, mldType header.ICMPv6Type, groupAddress tcpip.Address) { t.Helper() defer v.Release() @@ -80,7 +80,7 @@ func validateMLDPacket(t *testing.T, v *bufferv2.View, localAddress, remoteAddre ) } -func validateMLDv2ReportPacket(t *testing.T, v *bufferv2.View, localAddress tcpip.Address, groupAddress tcpip.Address, recordType header.MLDv2ReportRecordType) { +func validateMLDv2ReportPacket(t *testing.T, v *buffer.View, localAddress tcpip.Address, groupAddress tcpip.Address, recordType header.MLDv2ReportRecordType) { t.Helper() defer v.Release() @@ -113,12 +113,12 @@ func TestIPv6JoinLeaveSolicitedNodeAddressPerformsMLD(t *testing.T) { tests := []struct { name string v1Compatibility bool - validate func(t *testing.T, v *bufferv2.View, localAddress tcpip.Address, groupAddress tcpip.Address, leave bool) + validate func(t *testing.T, v *buffer.View, localAddress tcpip.Address, groupAddress tcpip.Address, leave bool) }{ { name: "V1 Compatibility", v1Compatibility: true, - validate: func(t *testing.T, v *bufferv2.View, localAddress tcpip.Address, groupAddress tcpip.Address, leave bool) { + validate: func(t *testing.T, v *buffer.View, localAddress tcpip.Address, groupAddress tcpip.Address, leave bool) { t.Helper() remoteAddress := groupAddress @@ -134,7 +134,7 @@ func TestIPv6JoinLeaveSolicitedNodeAddressPerformsMLD(t *testing.T) { { name: "V2", v1Compatibility: false, - validate: func(t *testing.T, v *bufferv2.View, localAddress tcpip.Address, groupAddress tcpip.Address, leave bool) { + validate: func(t *testing.T, v *buffer.View, localAddress tcpip.Address, groupAddress tcpip.Address, leave bool) { t.Helper() recordType := header.MLDv2ReportRecordChangeToExcludeMode @@ -472,7 +472,7 @@ func createAndInjectMLDPacket(e *channel.Endpoint, mldType header.ICMPv6Type, ho })) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) e.InjectInbound(ipv6.ProtocolNumber, pkt) pkt.DecRef() @@ -679,12 +679,12 @@ func TestMLDSkipProtocol(t *testing.T) { subTests := []struct { name string v1Compatibility bool - validate func(t *testing.T, v *bufferv2.View, localAddress tcpip.Address, groupAddress tcpip.Address) + validate func(t *testing.T, v *buffer.View, localAddress tcpip.Address, groupAddress tcpip.Address) }{ { name: "V1 Compatibility", v1Compatibility: true, - validate: func(t *testing.T, v *bufferv2.View, localAddress tcpip.Address, groupAddress tcpip.Address) { + validate: func(t *testing.T, v *buffer.View, localAddress tcpip.Address, groupAddress tcpip.Address) { t.Helper() validateMLDPacket(t, v, localAddress, groupAddress, header.ICMPv6MulticastListenerReport, groupAddress) }, @@ -692,7 +692,7 @@ func TestMLDSkipProtocol(t *testing.T) { { name: "V2", v1Compatibility: false, - validate: func(t *testing.T, v *bufferv2.View, localAddress tcpip.Address, groupAddress tcpip.Address) { + validate: func(t *testing.T, v *buffer.View, localAddress tcpip.Address, groupAddress tcpip.Address) { t.Helper() validateMLDv2ReportPacket(t, v, localAddress, groupAddress, header.MLDv2ReportRecordChangeToExcludeMode) }, diff --git a/pkg/tcpip/network/ipv6/ndp.go b/pkg/tcpip/network/ipv6/ndp.go index b78482019..25c445769 100644 --- a/pkg/tcpip/network/ipv6/ndp.go +++ b/pkg/tcpip/network/ipv6/ndp.go @@ -18,7 +18,7 @@ import ( "fmt" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -1860,7 +1860,7 @@ func (ndp *ndpState) startSolicitingRouters() { } } payloadSize := header.ICMPv6HeaderSize + header.NDPRSMinimumSize + optsSerializer.Length() - icmpView := bufferv2.NewView(payloadSize) + icmpView := buffer.NewView(payloadSize) icmpView.Grow(payloadSize) icmpData := header.ICMPv6(icmpView.AsSlice()) icmpData.SetType(header.ICMPv6RouterSolicit) @@ -1874,7 +1874,7 @@ func (ndp *ndpState) startSolicitingRouters() { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(ndp.ep.MaxHeaderLength()), - Payload: bufferv2.MakeWithView(icmpView), + Payload: buffer.MakeWithView(icmpView), }) defer pkt.DecRef() @@ -1979,7 +1979,7 @@ func (ndp *ndpState) SendDADMessage(addr tcpip.Address, nonce []byte) tcpip.Erro } func (e *endpoint) sendNDPNS(srcAddr, dstAddr, targetAddr tcpip.Address, remoteLinkAddr tcpip.LinkAddress, opts header.NDPOptionsSerializer) tcpip.Error { - icmpView := bufferv2.NewView(header.ICMPv6NeighborSolicitMinimumSize + opts.Length()) + icmpView := buffer.NewView(header.ICMPv6NeighborSolicitMinimumSize + opts.Length()) icmpView.Grow(header.ICMPv6NeighborSolicitMinimumSize + opts.Length()) icmp := header.ICMPv6(icmpView.AsSlice()) icmp.SetType(header.ICMPv6NeighborSolicit) @@ -1994,7 +1994,7 @@ func (e *endpoint) sendNDPNS(srcAddr, dstAddr, targetAddr tcpip.Address, remoteL pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(e.MaxHeaderLength()), - Payload: bufferv2.MakeWithView(icmpView), + Payload: buffer.MakeWithView(icmpView), }) defer pkt.DecRef() diff --git a/pkg/tcpip/network/ipv6/ndp_test.go b/pkg/tcpip/network/ipv6/ndp_test.go index 1b58491fa..8c1347f8f 100644 --- a/pkg/tcpip/network/ipv6/ndp_test.go +++ b/pkg/tcpip/network/ipv6/ndp_test.go @@ -22,7 +22,7 @@ import ( "time" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" "gvisor.dev/gvisor/pkg/tcpip/checksum" @@ -189,7 +189,7 @@ func TestNeighborSolicitationWithSourceLinkLayerOption(t *testing.T) { } pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(ProtocolNumber, pktBuf) pktBuf.DecRef() @@ -451,7 +451,7 @@ func TestNeighborSolicitationResponse(t *testing.T) { } pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(ProtocolNumber, pktBuf) pktBuf.DecRef() @@ -530,7 +530,7 @@ func TestNeighborSolicitationResponse(t *testing.T) { DstAddr: nicAddr, }) pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(ProtocolNumber, pktBuf) pktBuf.DecRef() @@ -656,7 +656,7 @@ func TestNeighborAdvertisementWithTargetLinkLayerOption(t *testing.T) { t.Fatalf("got invalid = %d, want = 0", got) } pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(ProtocolNumber, pktBuf) pktBuf.DecRef() @@ -715,8 +715,8 @@ func TestNDPValidation(t *testing.T) { DstAddr: lladdr0, ExtensionHeaders: extHdrs, }) - buf := bufferv2.MakeWithData(ip) - buf.Append(bufferv2.NewViewWithData(payload)) + buf := buffer.MakeWithData(ip) + buf.Append(buffer.NewViewWithData(payload)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: buf, }) @@ -1032,7 +1032,7 @@ func TestNeighborAdvertisementValidation(t *testing.T) { } pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(header.IPv6ProtocolNumber, pktBuf) pktBuf.DecRef() @@ -1233,7 +1233,7 @@ func TestRouterAdvertValidation(t *testing.T) { } pktBuf := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) e.InjectInbound(header.IPv6ProtocolNumber, pktBuf) pktBuf.DecRef() diff --git a/pkg/tcpip/network/multicast_group_test.go b/pkg/tcpip/network/multicast_group_test.go index d91ab16a9..7bc9b918d 100644 --- a/pkg/tcpip/network/multicast_group_test.go +++ b/pkg/tcpip/network/multicast_group_test.go @@ -20,7 +20,7 @@ import ( "testing" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -284,7 +284,7 @@ func createAndInjectIGMPPacket(e *channel.Endpoint, igmpType byte, maxRespTime b igmp.SetChecksum(header.IGMPCalculateChecksum(igmp)) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) e.InjectInbound(ipv4.ProtocolNumber, pkt) pkt.DecRef() @@ -325,7 +325,7 @@ func createAndInjectMLDPacket(e *channel.Endpoint, mldType uint8, maxRespDelay b })) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) e.InjectInbound(ipv6.ProtocolNumber, pkt) pkt.DecRef() diff --git a/pkg/tcpip/socketops.go b/pkg/tcpip/socketops.go index 28d04ba26..a3aadb223 100644 --- a/pkg/tcpip/socketops.go +++ b/pkg/tcpip/socketops.go @@ -16,7 +16,7 @@ package tcpip import ( "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" ) @@ -606,7 +606,7 @@ type SockError struct { Cause SockErrorCause // Payload is the errant packet's payload. - Payload *bufferv2.View + Payload *buffer.View // Dst is the original destination address of the errant packet. Dst FullAddress // Offender is the original sender address of the errant packet. @@ -653,7 +653,7 @@ func (so *SocketOptions) QueueErr(err *SockError) { } // QueueLocalErr queues a local error onto the local queue. -func (so *SocketOptions) QueueLocalErr(err Error, net NetworkProtocolNumber, info uint32, dst FullAddress, payload *bufferv2.View) { +func (so *SocketOptions) QueueLocalErr(err Error, net NetworkProtocolNumber, info uint32, dst FullAddress, payload *buffer.View) { so.QueueErr(&SockError{ Err: err, Cause: &LocalSockError{info: info}, diff --git a/pkg/tcpip/stack/BUILD b/pkg/tcpip/stack/BUILD index 2ae482e38..b0fb4fd45 100644 --- a/pkg/tcpip/stack/BUILD +++ b/pkg/tcpip/stack/BUILD @@ -265,7 +265,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/ilist", "//pkg/log", "//pkg/rand", @@ -300,7 +300,7 @@ go_test( shard_count = most_shards, deps = [ ":stack", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/rand", "//pkg/sync", "//pkg/tcpip", @@ -340,7 +340,7 @@ go_test( library = ":stack", deps = [ "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/sync", "//pkg/tcpip", "//pkg/tcpip/faketime", diff --git a/pkg/tcpip/stack/conntrack_test.go b/pkg/tcpip/stack/conntrack_test.go index 1da184ca3..edcee3024 100644 --- a/pkg/tcpip/stack/conntrack_test.go +++ b/pkg/tcpip/stack/conntrack_test.go @@ -17,7 +17,7 @@ package stack import ( "testing" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/faketime" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -323,7 +323,7 @@ func genTCPPacket(opts genTCPOpts) PacketBufferPtr { packetLen := header.IPv4MinimumSize + uint16(tcpHdrSize) pkt := NewPacketBuffer(PacketBufferOptions{ ReserveHeaderBytes: int(packetLen), - Payload: bufferv2.MakeWithData(opts.data), + Payload: buffer.MakeWithData(opts.data), }) pkt.NetworkProtocolNumber = header.IPv4ProtocolNumber pkt.TransportProtocolNumber = header.TCPProtocolNumber diff --git a/pkg/tcpip/stack/forwarding_test.go b/pkg/tcpip/stack/forwarding_test.go index dc99825a2..00de02501 100644 --- a/pkg/tcpip/stack/forwarding_test.go +++ b/pkg/tcpip/stack/forwarding_test.go @@ -20,7 +20,7 @@ import ( "testing" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/faketime" @@ -430,7 +430,7 @@ func TestForwardingWithStaticResolver(t *testing.T) { buf := make([]byte, 30) copy(buf[dstAddrOffset:], []byte("\x03\x00\x00\x00")) ep1.InjectInbound(fwdTestNetNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) var p PacketBufferPtr @@ -474,7 +474,7 @@ func TestForwardingWithFakeResolver(t *testing.T) { buf := make([]byte, 30) buf[dstAddrOffset] = 3 ep1.InjectInbound(fwdTestNetNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) var p PacketBufferPtr @@ -508,7 +508,7 @@ func TestForwardingWithNoResolver(t *testing.T) { buf := make([]byte, 30) buf[dstAddrOffset] = 3 ep1.InjectInbound(fwdTestNetNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) clock.Advance(proto.addrResolveDelay) @@ -536,7 +536,7 @@ func TestForwardingResolutionFailsForQueuedPackets(t *testing.T) { buf := make([]byte, 30) buf[dstAddrOffset] = 3 ep1.InjectInbound(fwdTestNetNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) } @@ -577,7 +577,7 @@ func TestForwardingWithFakeResolverPartialTimeout(t *testing.T) { buf := make([]byte, 30) buf[dstAddrOffset] = 4 ep1.InjectInbound(fwdTestNetNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) // Inject an inbound packet to address 3 on NIC 1, and see if it is @@ -585,7 +585,7 @@ func TestForwardingWithFakeResolverPartialTimeout(t *testing.T) { buf = make([]byte, 30) buf[dstAddrOffset] = 3 ep1.InjectInbound(fwdTestNetNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) var p PacketBufferPtr @@ -635,7 +635,7 @@ func TestForwardingWithFakeResolverTwoPackets(t *testing.T) { buf := make([]byte, 30) buf[dstAddrOffset] = 3 ep1.InjectInbound(fwdTestNetNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) } @@ -690,7 +690,7 @@ func TestForwardingWithFakeResolverManyPackets(t *testing.T) { // Set the packet sequence number. binary.BigEndian.PutUint16(buf[fwdTestNetHeaderLen:], uint16(i)) ep1.InjectInbound(fwdTestNetNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) } @@ -756,7 +756,7 @@ func TestForwardingWithFakeResolverManyResolutions(t *testing.T) { buf := make([]byte, 30) buf[dstAddrOffset] = byte(3 + i) ep1.InjectInbound(fwdTestNetNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) } diff --git a/pkg/tcpip/stack/ndp_test.go b/pkg/tcpip/stack/ndp_test.go index 4b346189b..9f8425bf9 100644 --- a/pkg/tcpip/stack/ndp_test.go +++ b/pkg/tcpip/stack/ndp_test.go @@ -24,7 +24,7 @@ import ( "time" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" cryptorand "gvisor.dev/gvisor/pkg/rand" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -759,7 +759,7 @@ func rxNDPSolicit(e *channel.Endpoint, tgt tcpip.Address) { SrcAddr: header.IPv6Any, DstAddr: snmc, }) - e.InjectInbound(header.IPv6ProtocolNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: bufferv2.MakeWithData(hdr.View())})) + e.InjectInbound(header.IPv6ProtocolNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: buffer.MakeWithData(hdr.View())})) } // TestDADFail tests to make sure that the DAD process fails if another node is @@ -811,7 +811,7 @@ func TestDADFail(t *testing.T) { SrcAddr: tgt, DstAddr: header.IPv6AllNodesMulticastAddress, }) - e.InjectInbound(header.IPv6ProtocolNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: bufferv2.MakeWithData(hdr.View())})) + e.InjectInbound(header.IPv6ProtocolNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: buffer.MakeWithData(hdr.View())})) }, getStat: func(s tcpip.ICMPv6ReceivedPacketStats) *tcpip.StatCounter { return s.NeighborAdvert @@ -1274,7 +1274,7 @@ func raBuf(ip tcpip.Address, rl uint16, managedAddress, otherConfigurations bool }) return stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), }) } diff --git a/pkg/tcpip/stack/nic_test.go b/pkg/tcpip/stack/nic_test.go index 0946667a5..4946341aa 100644 --- a/pkg/tcpip/stack/nic_test.go +++ b/pkg/tcpip/stack/nic_test.go @@ -19,7 +19,7 @@ import ( "testing" "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" "gvisor.dev/gvisor/pkg/tcpip/testutil" @@ -184,7 +184,7 @@ func TestDisabledRxStatsWhenNICDisabled(t *testing.T) { } nic.DeliverNetworkPacket(0, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData([]byte{1, 2, 3, 4}), + Payload: buffer.MakeWithData([]byte{1, 2, 3, 4}), })) if got := nic.stats.local.DisabledRx.Packets.Value(); got != 1 { @@ -209,7 +209,7 @@ func TestPacketWithUnknownNetworkProtocolNumber(t *testing.T) { // IPv4 isn't recognized since we haven't initialized the NIC with an IPv4 // endpoint. nic.DeliverNetworkPacket(header.IPv4ProtocolNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData([]byte{1, 2, 3, 4}), + Payload: buffer.MakeWithData([]byte{1, 2, 3, 4}), })) var count uint64 if got, ok := nic.stats.local.UnknownL3ProtocolRcvdPacketCounts.Get(uint64(header.IPv4ProtocolNumber)); ok { @@ -229,7 +229,7 @@ func TestPacketWithUnknownTransportProtocolNumber(t *testing.T) { // UDP isn't recognized since we haven't initialized the NIC with a UDP // protocol. nic.DeliverTransportPacket(header.UDPProtocolNumber, NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData([]byte{1, 2, 3, 4}), + Payload: buffer.MakeWithData([]byte{1, 2, 3, 4}), })) var count uint64 if got, ok := nic.stats.local.UnknownL4ProtocolRcvdPacketCounts.Get(uint64(header.UDPProtocolNumber)); ok { diff --git a/pkg/tcpip/stack/packet_buffer.go b/pkg/tcpip/stack/packet_buffer.go index 85e6717ec..86b756950 100644 --- a/pkg/tcpip/stack/packet_buffer.go +++ b/pkg/tcpip/stack/packet_buffer.go @@ -17,7 +17,7 @@ import ( "fmt" "io" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -47,7 +47,7 @@ type PacketBufferOptions struct { // Payload is the initial unparsed data for the new packet. If set, it will // be owned by the new packet. - Payload bufferv2.Buffer + Payload buffer.Buffer // IsForwardedPacket identifies that the PacketBuffer being created is for a // forwarded packet. @@ -74,7 +74,7 @@ type PacketBufferPtr = *PacketBuffer // reference count to 1. Owners should call `DecRef()` when they are finished // with the buffer to return it to the pool. // -// Internal structure: A PacketBuffer holds a pointer to bufferv2.Buffer, which +// Internal structure: A PacketBuffer holds a pointer to buffer.Buffer, which // exposes a logically-contiguous byte storage. The underlying storage structure // is abstracted out, and should not be a concern here for most of the time. // @@ -110,7 +110,7 @@ type PacketBuffer struct { // buf is the underlying buffer for the packet. See struct level docs for // details. - buf bufferv2.Buffer + buf buffer.Buffer reserved int pushed int consumed int @@ -176,7 +176,7 @@ func NewPacketBuffer(opts PacketBufferOptions) PacketBufferPtr { pk := pkPool.Get().(*PacketBuffer) pk.reset() if opts.ReserveHeaderBytes != 0 { - v := bufferv2.NewViewSize(opts.ReserveHeaderBytes) + v := buffer.NewViewSize(opts.ReserveHeaderBytes) pk.buf.Append(v) pk.reserved = opts.ReserveHeaderBytes } @@ -282,7 +282,7 @@ func (pk PacketBufferPtr) Data() PacketData { func (pk PacketBufferPtr) AsSlices() [][]byte { var views [][]byte offset := pk.headerOffset() - pk.buf.SubApply(offset, int(pk.buf.Size())-offset, func(v *bufferv2.View) { + pk.buf.SubApply(offset, int(pk.buf.Size())-offset, func(v *buffer.View) { views = append(views, v.AsSlice()) }) return views @@ -290,7 +290,7 @@ func (pk PacketBufferPtr) AsSlices() [][]byte { // ToBuffer returns a caller-owned copy of the underlying storage of the whole // packet. -func (pk PacketBufferPtr) ToBuffer() bufferv2.Buffer { +func (pk PacketBufferPtr) ToBuffer() buffer.Buffer { b := pk.buf.Clone() b.TrimFront(int64(pk.headerOffset())) return b @@ -298,10 +298,10 @@ func (pk PacketBufferPtr) ToBuffer() bufferv2.Buffer { // ToView returns a caller-owned copy of the underlying storage of the whole // packet as a view. -func (pk PacketBufferPtr) ToView() *bufferv2.View { - p := bufferv2.NewView(int(pk.buf.Size())) +func (pk PacketBufferPtr) ToView() *buffer.View { + p := buffer.NewView(int(pk.buf.Size())) offset := pk.headerOffset() - pk.buf.SubApply(offset, int(pk.buf.Size())-offset, func(v *bufferv2.View) { + pk.buf.SubApply(offset, int(pk.buf.Size())-offset, func(v *buffer.View) { p.Write(v.AsSlice()) }) return p @@ -349,10 +349,10 @@ func (pk PacketBufferPtr) consume(typ headerType, size int) (v []byte, consumed return view.AsSlice(), true } -func (pk PacketBufferPtr) headerView(typ headerType) bufferv2.View { +func (pk PacketBufferPtr) headerView(typ headerType) buffer.View { h := &pk.headers[typ] if h.length == 0 { - return bufferv2.View{} + return buffer.View{} } v, ok := pk.buf.PullUp(pk.headerOffsetOf(typ), h.length) if !ok { @@ -394,7 +394,7 @@ func (pk PacketBufferPtr) ReserveHeaderBytes(reserved int) { panic(fmt.Sprintf("ReserveHeaderBytes(...) called on packet with reserved=%d, want reserved=0", pk.reserved)) } pk.reserved = reserved - pk.buf.Prepend(bufferv2.NewViewSize(reserved)) + pk.buf.Prepend(buffer.NewViewSize(reserved)) } // Network returns the network header as a header.Network. @@ -486,8 +486,8 @@ type PacketHeader struct { } // View returns an caller-owned copy of the underlying storage of h as a -// *bufferv2.View. -func (h PacketHeader) View() *bufferv2.View { +// *buffer.View. +func (h PacketHeader) View() *buffer.View { view := h.pk.headerView(h.typ) if view.Size() == 0 { return nil @@ -553,7 +553,7 @@ func (d PacketData) ReadTo(dst io.Writer, peek bool) (int, error) { done int ) offset := d.pk.dataOffset() - d.pk.buf.SubApply(offset, int(d.pk.buf.Size())-offset, func(v *bufferv2.View) { + d.pk.buf.SubApply(offset, int(d.pk.buf.Size())-offset, func(v *buffer.View) { if err != nil { return } @@ -581,8 +581,8 @@ func (d PacketData) CapLength(length int) { d.pk.buf.Truncate(int64(length + d.pk.dataOffset())) } -// ToBuffer returns the underlying storage of d in a bufferv2.Buffer. -func (d PacketData) ToBuffer() bufferv2.Buffer { +// ToBuffer returns the underlying storage of d in a buffer.Buffer. +func (d PacketData) ToBuffer() buffer.Buffer { buf := d.pk.buf.Clone() offset := d.pk.dataOffset() buf.TrimFront(int64(offset)) @@ -590,12 +590,12 @@ func (d PacketData) ToBuffer() bufferv2.Buffer { } // AppendView appends v into d, taking the ownership of v. -func (d PacketData) AppendView(v *bufferv2.View) { +func (d PacketData) AppendView(v *buffer.View) { d.pk.buf.Append(v) } // MergeBuffer merges b into d and clears b. -func (d PacketData) MergeBuffer(b *bufferv2.Buffer) { +func (d PacketData) MergeBuffer(b *buffer.Buffer) { d.pk.buf.Merge(b) } @@ -608,7 +608,7 @@ func MergeFragment(dst, frag PacketBufferPtr) { // ReadFrom moves at most count bytes from the beginning of src to the end // of d and returns the number of bytes moved. -func (d PacketData) ReadFrom(src *bufferv2.Buffer, count int) int { +func (d PacketData) ReadFrom(src *buffer.Buffer, count int) int { toRead := int64(count) if toRead > src.Size() { toRead = src.Size() @@ -716,19 +716,19 @@ func (r Range) ToSlice() []byte { return nil } all := make([]byte, 0, r.length) - r.iterate(func(v *bufferv2.View) { + r.iterate(func(v *buffer.View) { all = append(all, v.AsSlice()...) }) return all } // ToView returns a caller-owned copy of data in r. -func (r Range) ToView() *bufferv2.View { +func (r Range) ToView() *buffer.View { if r.length == 0 { return nil } - newV := bufferv2.NewView(r.length) - r.iterate(func(v *bufferv2.View) { + newV := buffer.NewView(r.length) + r.iterate(func(v *buffer.View) { newV.Write(v.AsSlice()) }) return newV @@ -736,13 +736,13 @@ func (r Range) ToView() *bufferv2.View { // iterate calls fn for each piece in r. fn is always called with a non-empty // slice. -func (r Range) iterate(fn func(*bufferv2.View)) { +func (r Range) iterate(fn func(*buffer.View)) { r.pk.buf.SubApply(r.offset, r.length, fn) } // PayloadSince returns a caller-owned view containing the payload starting from // and including a particular header. -func PayloadSince(h PacketHeader) *bufferv2.View { +func PayloadSince(h PacketHeader) *buffer.View { offset := h.pk.headerOffset() for i := headerType(0); i < h.typ; i++ { offset += h.pk.headers[i].length @@ -756,7 +756,7 @@ func PayloadSince(h PacketHeader) *bufferv2.View { // BufferSince returns a caller-owned view containing the packet payload // starting from and including a particular header. -func BufferSince(h PacketHeader) bufferv2.Buffer { +func BufferSince(h PacketHeader) buffer.Buffer { offset := h.pk.headerOffset() for i := headerType(0); i < h.typ; i++ { offset += h.pk.headers[i].length diff --git a/pkg/tcpip/stack/packet_buffer_test.go b/pkg/tcpip/stack/packet_buffer_test.go index 9285c96b2..7d5f73174 100644 --- a/pkg/tcpip/stack/packet_buffer_test.go +++ b/pkg/tcpip/stack/packet_buffer_test.go @@ -18,7 +18,7 @@ import ( "fmt" "testing" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" ) func TestPacketHeaderPush(t *testing.T) { @@ -76,7 +76,7 @@ func TestPacketHeaderPush(t *testing.T) { ReserveHeaderBytes: test.reserved, // Make a copy of data to make sure our truth data won't be taint by // PacketBuffer. - Payload: bufferv2.MakeWithData(test.data), + Payload: buffer.MakeWithData(test.data), }) allHdrSize := len(test.link) + len(test.network) + len(test.transport) @@ -84,7 +84,7 @@ func TestPacketHeaderPush(t *testing.T) { // Check the initial values for packet. checkInitialPacketBuffer(t, pk, PacketBufferOptions{ ReserveHeaderBytes: test.reserved, - Payload: bufferv2.MakeWithData(test.data), + Payload: buffer.MakeWithData(test.data), }) // Push headers. @@ -148,12 +148,12 @@ func TestPacketHeaderConsume(t *testing.T) { pk := NewPacketBuffer(PacketBufferOptions{ // Make a copy of data to make sure our truth data won't be taint by // PacketBuffer. - Payload: bufferv2.MakeWithData(test.data), + Payload: buffer.MakeWithData(test.data), }) // Check the initial values for packet. checkInitialPacketBuffer(t, pk, PacketBufferOptions{ - Payload: bufferv2.MakeWithData(test.data), + Payload: buffer.MakeWithData(test.data), }) // Consume headers. @@ -205,7 +205,7 @@ func TestPacketHeaderConsumeDataTooShort(t *testing.T) { pk := NewPacketBuffer(PacketBufferOptions{ // Make a copy of data to make sure our truth data won't be taint by // PacketBuffer. - Payload: bufferv2.MakeWithData(data), + Payload: buffer.MakeWithData(data), }) // Consume should fail if pkt.Data is too short. @@ -221,7 +221,7 @@ func TestPacketHeaderConsumeDataTooShort(t *testing.T) { // Check packet should look the same as initial packet. checkInitialPacketBuffer(t, pk, PacketBufferOptions{ - Payload: bufferv2.MakeWithData(data), + Payload: buffer.MakeWithData(data), }) } @@ -238,7 +238,7 @@ func TestPacketHeaderPushConsumeMixed(t *testing.T) { initData = append(initData, data...) pk := NewPacketBuffer(PacketBufferOptions{ ReserveHeaderBytes: len(link), - Payload: bufferv2.MakeWithData(initData), + Payload: buffer.MakeWithData(initData), }) // 1. Consume network header @@ -266,7 +266,7 @@ func TestPacketHeaderPushConsumeMixedTooLong(t *testing.T) { initData := concatViews(network, data) pk := NewPacketBuffer(PacketBufferOptions{ ReserveHeaderBytes: len(link), - Payload: bufferv2.MakeWithData(initData), + Payload: buffer.MakeWithData(initData), }) // 1. Push link header @@ -315,7 +315,7 @@ func TestPacketHeaderConsumeCalledAtMostOnce(t *testing.T) { const headerSize = 10 pk := NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(make([]byte, headerSize*int(numHeaderType))), + Payload: buffer.MakeWithData(make([]byte, headerSize*int(numHeaderType))), }) for _, h := range []PacketHeader{ @@ -372,7 +372,7 @@ func TestPacketHeaderConsumeThenPushPanics(t *testing.T) { const headerSize = 10 pk := NewPacketBuffer(PacketBufferOptions{ - Payload: bufferv2.MakeWithData(make([]byte, headerSize*int(numHeaderType))), + Payload: buffer.MakeWithData(make([]byte, headerSize*int(numHeaderType))), }) for _, h := range []PacketHeader{ @@ -493,7 +493,7 @@ func TestPacketBufferData(t *testing.T) { s := "APPEND" pkt := tc.makePkt(t) - pkt.Data().AppendView(bufferv2.NewViewWithData([]byte(s))) + pkt.Data().AppendView(buffer.NewViewWithData([]byte(s))) checkData(t, pkt, []byte(tc.data+s)) }) @@ -529,7 +529,7 @@ func TestPacketBufferData(t *testing.T) { t.Run(fmt.Sprintf("ReadFrom%d", n), func(t *testing.T) { s := "TO READ" s += s - srcBuf := bufferv2.MakeWithData([]byte(s)) + srcBuf := buffer.MakeWithData([]byte(s)) pkt := tc.makePkt(t) pkt.Data().ReadFrom(&srcBuf, n) @@ -700,10 +700,10 @@ func checkRange(t *testing.T, r Range, data []byte) { } } -func buf(pieces ...string) bufferv2.Buffer { - b := bufferv2.Buffer{} +func buf(pieces ...string) buffer.Buffer { + b := buffer.Buffer{} for _, p := range pieces { - b.Append(bufferv2.NewViewWithData([]byte(p))) + b.Append(buffer.NewViewWithData([]byte(p))) } return b } diff --git a/pkg/tcpip/stack/registration.go b/pkg/tcpip/stack/registration.go index 2e7f8b87a..a76e53287 100644 --- a/pkg/tcpip/stack/registration.go +++ b/pkg/tcpip/stack/registration.go @@ -18,7 +18,7 @@ import ( "fmt" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" "gvisor.dev/gvisor/pkg/waiter" @@ -1161,7 +1161,7 @@ type InjectableLinkEndpoint interface { // link. // // dest is used by endpoints with multiple raw destinations. - InjectOutbound(dest tcpip.Address, packet *bufferv2.View) tcpip.Error + InjectOutbound(dest tcpip.Address, packet *buffer.View) tcpip.Error } // DADResult is a marker interface for the result of a duplicate address diff --git a/pkg/tcpip/stack/stack.go b/pkg/tcpip/stack/stack.go index f569a948f..d0b4df7d7 100644 --- a/pkg/tcpip/stack/stack.go +++ b/pkg/tcpip/stack/stack.go @@ -29,7 +29,7 @@ import ( "golang.org/x/time/rate" "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/log" cryptorand "gvisor.dev/gvisor/pkg/rand" "gvisor.dev/gvisor/pkg/tcpip" @@ -1856,7 +1856,7 @@ func (s *Stack) unregisterPacketEndpointLocked(nicID tcpip.NICID, netProto tcpip // WritePacketToRemote writes a payload on the specified NIC using the provided // network protocol and remote link address. -func (s *Stack) WritePacketToRemote(nicID tcpip.NICID, remote tcpip.LinkAddress, netProto tcpip.NetworkProtocolNumber, payload bufferv2.Buffer) tcpip.Error { +func (s *Stack) WritePacketToRemote(nicID tcpip.NICID, remote tcpip.LinkAddress, netProto tcpip.NetworkProtocolNumber, payload buffer.Buffer) tcpip.Error { s.mu.Lock() nic, ok := s.nics[nicID] s.mu.Unlock() @@ -1874,7 +1874,7 @@ func (s *Stack) WritePacketToRemote(nicID tcpip.NICID, remote tcpip.LinkAddress, // WriteRawPacket writes data directly to the specified NIC without adding any // headers. -func (s *Stack) WriteRawPacket(nicID tcpip.NICID, proto tcpip.NetworkProtocolNumber, payload bufferv2.Buffer) tcpip.Error { +func (s *Stack) WriteRawPacket(nicID tcpip.NICID, proto tcpip.NetworkProtocolNumber, payload buffer.Buffer) tcpip.Error { s.mu.RLock() nic, ok := s.nics[nicID] s.mu.RUnlock() diff --git a/pkg/tcpip/stack/stack_test.go b/pkg/tcpip/stack/stack_test.go index 9b8a71d67..7df71fa23 100644 --- a/pkg/tcpip/stack/stack_test.go +++ b/pkg/tcpip/stack/stack_test.go @@ -28,7 +28,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/rand" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" @@ -576,7 +576,7 @@ func TestNetworkReceive(t *testing.T) { // Make sure packet with wrong address is not delivered. buf[dstAddrOffset] = 3 ep.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeNet.packetCount[1] != 0 { t.Errorf("packetCount[1] = %d, want %d", fakeNet.packetCount[1], 0) @@ -588,7 +588,7 @@ func TestNetworkReceive(t *testing.T) { // Make sure packet is delivered to first endpoint. buf[dstAddrOffset] = 1 ep.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeNet.packetCount[1] != 1 { t.Errorf("packetCount[1] = %d, want %d", fakeNet.packetCount[1], 1) @@ -600,7 +600,7 @@ func TestNetworkReceive(t *testing.T) { // Make sure packet is delivered to second endpoint. buf[dstAddrOffset] = 2 ep.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeNet.packetCount[1] != 1 { t.Errorf("packetCount[1] = %d, want %d", fakeNet.packetCount[1], 1) @@ -611,7 +611,7 @@ func TestNetworkReceive(t *testing.T) { // Make sure packet is not delivered if protocol number is wrong. ep.InjectInbound(fakeNetNumber-1, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeNet.packetCount[1] != 1 { t.Errorf("packetCount[1] = %d, want %d", fakeNet.packetCount[1], 1) @@ -623,7 +623,7 @@ func TestNetworkReceive(t *testing.T) { // Make sure packet that is too small is dropped. buf = buf[:2] ep.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeNet.packetCount[1] != 1 { t.Errorf("packetCount[1] = %d, want %d", fakeNet.packetCount[1], 1) @@ -645,7 +645,7 @@ func sendTo(s *stack.Stack, addr tcpip.Address, payload []byte) tcpip.Error { func send(r *stack.Route, payload []byte) tcpip.Error { return r.WritePacket(stack.NetworkHeaderParams{Protocol: fakeTransNumber, TTL: 123, TOS: stack.DefaultTOS}, stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(r.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(payload), + Payload: buffer.MakeWithData(payload), })) } @@ -703,7 +703,7 @@ func testFailingRecv(t *testing.T, fakeNet *fakeNetworkProtocol, localAddrByte b func testRecvInternal(t *testing.T, fakeNet *fakeNetworkProtocol, localAddrByte byte, ep *channel.Endpoint, buf []byte, want int) { t.Helper() ep.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if got := fakeNet.PacketCount(localAddrByte); got != want { t.Errorf("receive packet count: got = %d, want %d", got, want) @@ -1799,7 +1799,7 @@ func TestExternalSendWithHandleLocal(t *testing.T) { TOS: stack.DefaultTOS, }, stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(r.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(make([]byte, 10)), + Payload: buffer.MakeWithData(make([]byte, 10)), })); err != nil { t.Fatalf("r.WritePacket(nil, _, _): %s", err) } @@ -2574,7 +2574,7 @@ func TestNICStats(t *testing.T) { // Inbound packet. rxBuffer := make([]byte, nic.rxByteCount) ep.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(rxBuffer), + Payload: buffer.MakeWithData(rxBuffer), })) if got, want := nicStats.Rx.Packets.Value(), uint64(1); got != want { t.Errorf("got Rx.Packets.Value() = %d, want = %d", got, want) @@ -5276,7 +5276,7 @@ func TestWritePacketToRemote(t *testing.T) { } for _, test := range tests { t.Run(test.name, func(t *testing.T) { - if err := s.WritePacketToRemote(nicID, linkAddr2, test.protocol, bufferv2.MakeWithData(test.payload)); err != nil { + if err := s.WritePacketToRemote(nicID, linkAddr2, test.protocol, buffer.MakeWithData(test.payload)); err != nil { t.Fatalf("s.WritePacketToRemote(_, _, _, _) = %s", err) } @@ -5298,7 +5298,7 @@ func TestWritePacketToRemote(t *testing.T) { } t.Run("InvalidNICID", func(t *testing.T) { - err := s.WritePacketToRemote(234, linkAddr2, header.IPv4ProtocolNumber, bufferv2.MakeWithData([]byte{1})) + err := s.WritePacketToRemote(234, linkAddr2, header.IPv4ProtocolNumber, buffer.MakeWithData([]byte{1})) if _, ok := err.(*tcpip.ErrUnknownDevice); !ok { t.Fatalf("s.WritePacketToRemote(_, _, _, _) = %s, want = %s", err, &tcpip.ErrUnknownDevice{}) } diff --git a/pkg/tcpip/stack/transport_demuxer_test.go b/pkg/tcpip/stack/transport_demuxer_test.go index 1d1034433..11f9d45f4 100644 --- a/pkg/tcpip/stack/transport_demuxer_test.go +++ b/pkg/tcpip/stack/transport_demuxer_test.go @@ -21,7 +21,7 @@ import ( "strconv" "testing" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checksum" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -142,7 +142,7 @@ func (c *testContext) sendV4Packet(payload []byte, h *headers, linkEpID tcpip.NI // Inject packet. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) c.linkEps[linkEpID].InjectInbound(ipv4.ProtocolNumber, pkt) } @@ -179,7 +179,7 @@ func (c *testContext) sendV6Packet(payload []byte, h *headers, linkEpID tcpip.NI // Inject packet. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) c.linkEps[linkEpID].InjectInbound(ipv6.ProtocolNumber, pkt) } diff --git a/pkg/tcpip/stack/transport_test.go b/pkg/tcpip/stack/transport_test.go index 51a569d00..0da3af882 100644 --- a/pkg/tcpip/stack/transport_test.go +++ b/pkg/tcpip/stack/transport_test.go @@ -19,7 +19,7 @@ import ( "io" "testing" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" "gvisor.dev/gvisor/pkg/tcpip/link/channel" @@ -105,7 +105,7 @@ func (f *fakeTransportEndpoint) Write(p tcpip.Payloader, opts tcpip.WriteOptions pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(f.route.MaxHeaderLength()) + fakeTransHeaderLen, - Payload: bufferv2.MakeWithData(v), + Payload: buffer.MakeWithData(v), }) _ = pkt.TransportHeader().Push(fakeTransHeaderLen) if err := f.route.WritePacket(stack.NetworkHeaderParams{Protocol: fakeTransNumber, TTL: 123, TOS: stack.DefaultTOS}, pkt); err != nil { @@ -404,7 +404,7 @@ func TestTransportReceive(t *testing.T) { copy(buf[dstAddrOffset:], []byte("\x01\x00\x00\x00")) buf[protocolNumberOffset] = 0 linkEP.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeTrans.packetCount != 0 { t.Errorf("packetCount = %d, want %d", fakeTrans.packetCount, 0) @@ -415,7 +415,7 @@ func TestTransportReceive(t *testing.T) { copy(buf[srcAddrOffset:], []byte("\x03\x00\x00\x00")) buf[protocolNumberOffset] = byte(fakeTransNumber) linkEP.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeTrans.packetCount != 0 { t.Errorf("packetCount = %d, want %d", fakeTrans.packetCount, 0) @@ -426,7 +426,7 @@ func TestTransportReceive(t *testing.T) { copy(buf[srcAddrOffset:], []byte("\x02\x00\x00\x00")) buf[protocolNumberOffset] = byte(fakeTransNumber) linkEP.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeTrans.packetCount != 1 { t.Errorf("packetCount = %d, want %d", fakeTrans.packetCount, 1) @@ -488,7 +488,7 @@ func TestTransportControlReceive(t *testing.T) { copy(buf[fakeNetHeaderLen:][srcAddrOffset:], []byte("\x01\x00\x00\x00")) buf[fakeNetHeaderLen:][protocolNumberOffset] = 0 linkEP.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeTrans.controlCount != 0 { t.Errorf("controlCount = %d, want %d", fakeTrans.controlCount, 0) @@ -499,7 +499,7 @@ func TestTransportControlReceive(t *testing.T) { copy(buf[fakeNetHeaderLen:][srcAddrOffset:], []byte("\x01\x00\x00\x00")) buf[fakeNetHeaderLen:][protocolNumberOffset] = byte(fakeTransNumber) linkEP.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeTrans.controlCount != 0 { t.Errorf("controlCount = %d, want %d", fakeTrans.controlCount, 0) @@ -510,7 +510,7 @@ func TestTransportControlReceive(t *testing.T) { copy(buf[fakeNetHeaderLen:][srcAddrOffset:], []byte("\x01\x00\x00\x00")) buf[fakeNetHeaderLen:][protocolNumberOffset] = byte(fakeTransNumber) linkEP.InjectInbound(fakeNetNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), })) if fakeTrans.controlCount != 1 { t.Errorf("controlCount = %d, want %d", fakeTrans.controlCount, 1) diff --git a/pkg/tcpip/tests/integration/BUILD b/pkg/tcpip/tests/integration/BUILD index 4c241acd6..394e34641 100644 --- a/pkg/tcpip/tests/integration/BUILD +++ b/pkg/tcpip/tests/integration/BUILD @@ -10,7 +10,7 @@ go_test( size = "small", srcs = ["forward_test.go"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/checker", "//pkg/tcpip/header", @@ -33,7 +33,7 @@ go_test( size = "small", srcs = ["iptables_test.go"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/checker", "//pkg/tcpip/checksum", @@ -60,7 +60,7 @@ go_test( size = "small", srcs = ["link_resolution_test.go"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/sync", "//pkg/tcpip", "//pkg/tcpip/checker", @@ -90,7 +90,7 @@ go_test( size = "small", srcs = ["loopback_test.go"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/checker", "//pkg/tcpip/header", @@ -114,7 +114,7 @@ go_test( size = "small", srcs = ["multicast_broadcast_test.go"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/checker", "//pkg/tcpip/checksum", diff --git a/pkg/tcpip/tests/integration/forward_test.go b/pkg/tcpip/tests/integration/forward_test.go index ad0818e97..a7172a2c9 100644 --- a/pkg/tcpip/tests/integration/forward_test.go +++ b/pkg/tcpip/tests/integration/forward_test.go @@ -20,7 +20,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -46,7 +46,7 @@ func rxICMPv6EchoRequest(e *channel.Endpoint, src, dst tcpip.Address) { utils.RxICMPv6EchoRequest(e, src, dst, ttl) } -func forwardedICMPv4EchoRequestChecker(t *testing.T, v *bufferv2.View, src, dst tcpip.Address) { +func forwardedICMPv4EchoRequestChecker(t *testing.T, v *buffer.View, src, dst tcpip.Address) { checker.IPv4(t, v, checker.SrcAddr(src), checker.DstAddr(dst), @@ -55,7 +55,7 @@ func forwardedICMPv4EchoRequestChecker(t *testing.T, v *bufferv2.View, src, dst checker.ICMPv4Type(header.ICMPv4Echo))) } -func forwardedICMPv6EchoRequestChecker(t *testing.T, v *bufferv2.View, src, dst tcpip.Address) { +func forwardedICMPv6EchoRequestChecker(t *testing.T, v *buffer.View, src, dst tcpip.Address) { checker.IPv6(t, v, checker.SrcAddr(src), checker.DstAddr(dst), @@ -379,7 +379,7 @@ func TestUnicastForwarding(t *testing.T) { srcAddr, dstAddr tcpip.Address rx func(*channel.Endpoint, tcpip.Address, tcpip.Address) expectForward bool - checker func(*testing.T, *bufferv2.View) + checker func(*testing.T, *buffer.View) }{ { name: "IPv4 link-local source", @@ -404,7 +404,7 @@ func TestUnicastForwarding(t *testing.T) { dstAddr: utils.Ipv4Addr2.AddressWithPrefix.Address, rx: rxICMPv4EchoRequest, expectForward: true, - checker: func(t *testing.T, v *bufferv2.View) { + checker: func(t *testing.T, v *buffer.View) { forwardedICMPv4EchoRequestChecker(t, v, utils.RemoteIPv4Addr, utils.Ipv4Addr2.AddressWithPrefix.Address) }, }, @@ -431,7 +431,7 @@ func TestUnicastForwarding(t *testing.T) { dstAddr: utils.Ipv6Addr2.AddressWithPrefix.Address, rx: rxICMPv6EchoRequest, expectForward: true, - checker: func(t *testing.T, v *bufferv2.View) { + checker: func(t *testing.T, v *buffer.View) { forwardedICMPv6EchoRequestChecker(t, v, utils.RemoteIPv6Addr, utils.Ipv6Addr2.AddressWithPrefix.Address) }, }, @@ -547,14 +547,14 @@ func TestPerInterfaceForwarding(t *testing.T) { name string srcAddr, dstAddr tcpip.Address rx func(*channel.Endpoint, tcpip.Address, tcpip.Address) - checker func(*testing.T, *bufferv2.View) + checker func(*testing.T, *buffer.View) }{ { name: "IPv4 unicast", srcAddr: utils.RemoteIPv4Addr, dstAddr: utils.Ipv4Addr2.AddressWithPrefix.Address, rx: rxICMPv4EchoRequest, - checker: func(t *testing.T, v *bufferv2.View) { + checker: func(t *testing.T, v *buffer.View) { forwardedICMPv4EchoRequestChecker(t, v, utils.RemoteIPv4Addr, utils.Ipv4Addr2.AddressWithPrefix.Address) }, }, @@ -563,7 +563,7 @@ func TestPerInterfaceForwarding(t *testing.T) { srcAddr: utils.RemoteIPv6Addr, dstAddr: utils.Ipv6Addr2.AddressWithPrefix.Address, rx: rxICMPv6EchoRequest, - checker: func(t *testing.T, v *bufferv2.View) { + checker: func(t *testing.T, v *buffer.View) { forwardedICMPv6EchoRequestChecker(t, v, utils.RemoteIPv6Addr, utils.Ipv6Addr2.AddressWithPrefix.Address) }, }, diff --git a/pkg/tcpip/tests/integration/iptables_test.go b/pkg/tcpip/tests/integration/iptables_test.go index e095c1864..c972699d4 100644 --- a/pkg/tcpip/tests/integration/iptables_test.go +++ b/pkg/tcpip/tests/integration/iptables_test.go @@ -21,7 +21,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" "gvisor.dev/gvisor/pkg/tcpip/checksum" @@ -123,7 +123,7 @@ func genPacketV6() stack.PacketBufferPtr { SrcAddr: srcAddrV6, DstAddr: dstAddrV6, }) - buf := bufferv2.MakeWithData(hdr.View()) + buf := buffer.MakeWithData(hdr.View()) return stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: buf}) } @@ -144,7 +144,7 @@ func genPacketV4() stack.PacketBufferPtr { }) ip.SetChecksum(0) ip.SetChecksum(^ip.CalculateChecksum()) - buf := bufferv2.MakeWithData(hdr.View()) + buf := buffer.MakeWithData(hdr.View()) return stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: buf}) } @@ -670,7 +670,7 @@ func rxICMPv6EchoReply(e *channel.Endpoint, src, dst tcpip.Address) { utils.RxICMPv6EchoReply(e, src, dst, ttl) } -func forwardedICMPv4EchoReplyChecker(t *testing.T, v *bufferv2.View, src, dst tcpip.Address) { +func forwardedICMPv4EchoReplyChecker(t *testing.T, v *buffer.View, src, dst tcpip.Address) { checker.IPv4(t, v, checker.SrcAddr(src), checker.DstAddr(dst), @@ -679,7 +679,7 @@ func forwardedICMPv4EchoReplyChecker(t *testing.T, v *bufferv2.View, src, dst tc checker.ICMPv4Type(header.ICMPv4EchoReply))) } -func forwardedICMPv6EchoReplyChecker(t *testing.T, v *bufferv2.View, src, dst tcpip.Address) { +func forwardedICMPv6EchoReplyChecker(t *testing.T, v *buffer.View, src, dst tcpip.Address) { checker.IPv6(t, v, checker.SrcAddr(src), checker.DstAddr(dst), @@ -729,7 +729,7 @@ func TestForwardingHook(t *testing.T) { local bool srcAddr, dstAddr tcpip.Address rx func(*channel.Endpoint, tcpip.Address, tcpip.Address) - checker func(*testing.T, *bufferv2.View) + checker func(*testing.T, *buffer.View) }{ { name: "IPv4 remote", @@ -738,7 +738,7 @@ func TestForwardingHook(t *testing.T) { srcAddr: utils.RemoteIPv4Addr, dstAddr: utils.Ipv4Addr2.AddressWithPrefix.Address, rx: rxICMPv4EchoReply, - checker: func(t *testing.T, v *bufferv2.View) { + checker: func(t *testing.T, v *buffer.View) { forwardedICMPv4EchoReplyChecker(t, v, utils.RemoteIPv4Addr, utils.Ipv4Addr2.AddressWithPrefix.Address) }, }, @@ -757,7 +757,7 @@ func TestForwardingHook(t *testing.T) { srcAddr: utils.RemoteIPv6Addr, dstAddr: utils.Ipv6Addr2.AddressWithPrefix.Address, rx: rxICMPv6EchoReply, - checker: func(t *testing.T, v *bufferv2.View) { + checker: func(t *testing.T, v *buffer.View) { forwardedICMPv6EchoReplyChecker(t, v, utils.RemoteIPv6Addr, utils.Ipv6Addr2.AddressWithPrefix.Address) }, }, @@ -974,7 +974,7 @@ func TestFilteringEchoPacketsWithLocalForwarding(t *testing.T) { name string netProto tcpip.NetworkProtocolNumber rx func(*channel.Endpoint) - checker func(*testing.T, *bufferv2.View) + checker func(*testing.T, *buffer.View) }{ { name: "IPv4", @@ -982,7 +982,7 @@ func TestFilteringEchoPacketsWithLocalForwarding(t *testing.T) { rx: func(e *channel.Endpoint) { utils.RxICMPv4EchoRequest(e, utils.RemoteIPv4Addr, utils.Ipv4Addr2.AddressWithPrefix.Address, ttl) }, - checker: func(t *testing.T, v *bufferv2.View) { + checker: func(t *testing.T, v *buffer.View) { checker.IPv4(t, v, checker.SrcAddr(utils.Ipv4Addr2.AddressWithPrefix.Address), checker.DstAddr(utils.RemoteIPv4Addr), @@ -996,7 +996,7 @@ func TestFilteringEchoPacketsWithLocalForwarding(t *testing.T) { rx: func(e *channel.Endpoint) { utils.RxICMPv6EchoRequest(e, utils.RemoteIPv6Addr, utils.Ipv6Addr2.AddressWithPrefix.Address, ttl) }, - checker: func(t *testing.T, v *bufferv2.View) { + checker: func(t *testing.T, v *buffer.View) { checker.IPv6(t, v, checker.SrcAddr(utils.Ipv6Addr2.AddressWithPrefix.Address), checker.DstAddr(utils.RemoteIPv6Addr), @@ -1390,7 +1390,7 @@ func TestNATEcho(t *testing.T) { return icmpv4Packet(srcAddr, dstAddr, icmpType, ident) } - checkV4EchoPkt := func(t *testing.T, v *bufferv2.View, srcAddr, dstAddr tcpip.Address, reply bool) { + checkV4EchoPkt := func(t *testing.T, v *buffer.View, srcAddr, dstAddr tcpip.Address, reply bool) { t.Helper() icmpType := header.ICMPv4Echo @@ -1417,7 +1417,7 @@ func TestNATEcho(t *testing.T) { return icmpv6Packet(srcAddr, dstAddr, icmpType, ident) } - checkV6EchoPkt := func(t *testing.T, v *bufferv2.View, srcAddr, dstAddr tcpip.Address, reply bool) { + checkV6EchoPkt := func(t *testing.T, v *buffer.View, srcAddr, dstAddr tcpip.Address, reply bool) { t.Helper() icmpType := header.ICMPv6EchoRequest @@ -1446,7 +1446,7 @@ func TestNATEcho(t *testing.T) { netProto tcpip.NetworkProtocolNumber transProto tcpip.TransportProtocolNumber echoPkt func(srcAddr, dstAddr tcpip.Address, reply bool) []byte - checkEchoPkt func(t *testing.T, v *bufferv2.View, srcAddr, dstAddr tcpip.Address, reply bool) + checkEchoPkt func(t *testing.T, v *buffer.View, srcAddr, dstAddr tcpip.Address, reply bool) natTypes []natTypeTest }{ @@ -1541,7 +1541,7 @@ func TestNATEcho(t *testing.T) { // Send and check the Echo Request. { ep2.InjectInbound(test.netProto, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(test.echoPkt(natTypeTest.requestSrc, natTypeTest.requestDst, false /* reply */)), + Payload: buffer.MakeWithData(test.echoPkt(natTypeTest.requestSrc, natTypeTest.requestDst, false /* reply */)), })) pkt := ep1.Read() if pkt.IsNil() { @@ -1560,7 +1560,7 @@ func TestNATEcho(t *testing.T) { // Send and check the Echo Reply. { ep1.InjectInbound(test.netProto, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(test.echoPkt(natTypeTest.expectedRequestDst, natTypeTest.expectedRequestSrc, true /* reply */)), + Payload: buffer.MakeWithData(test.echoPkt(natTypeTest.expectedRequestDst, natTypeTest.expectedRequestSrc, true /* reply */)), })) pkt := ep2.Read() if pkt.IsNil() { @@ -2203,7 +2203,7 @@ func TestNATICMPError(t *testing.T) { name string proto tcpip.TransportProtocolNumber buf []byte - checkNATed func(*testing.T, *bufferv2.View) + checkNATed func(*testing.T, *buffer.View) } tests := []struct { @@ -2212,7 +2212,7 @@ func TestNATICMPError(t *testing.T) { host1Addr tcpip.Address icmpError func(*testing.T, []byte, uint8) []byte decrementTTL func([]byte) - checkNATedError func(*testing.T, *bufferv2.View, []byte, uint8) + checkNATedError func(*testing.T, *buffer.View, []byte, uint8) transportTypes []transportTypeTest icmpTypes []icmpTypeTest @@ -2245,7 +2245,7 @@ func TestNATICMPError(t *testing.T) { ip.SetChecksum(0) ip.SetChecksum(^ip.CalculateChecksum()) }, - checkNATedError: func(t *testing.T, v *bufferv2.View, original []byte, icmpType uint8) { + checkNATedError: func(t *testing.T, v *buffer.View, original []byte, icmpType uint8) { checker.IPv4(t, v, checker.SrcAddr(utils.RouterNIC2IPv4Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host2IPv4Addr.AddressWithPrefix.Address), @@ -2263,7 +2263,7 @@ func TestNATICMPError(t *testing.T) { buf: func() []byte { return udpv4Packet(utils.Host2IPv4Addr.AddressWithPrefix.Address, utils.RouterNIC2IPv4Addr.AddressWithPrefix.Address, srcPort, dstPort, dataSize) }(), - checkNATed: func(t *testing.T, v *bufferv2.View) { + checkNATed: func(t *testing.T, v *buffer.View) { checker.IPv4(t, v, checker.SrcAddr(utils.RouterNIC1IPv4Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host1IPv4Addr.AddressWithPrefix.Address), @@ -2280,7 +2280,7 @@ func TestNATICMPError(t *testing.T) { buf: func() []byte { return tcpv4Packet(utils.Host2IPv4Addr.AddressWithPrefix.Address, utils.RouterNIC2IPv4Addr.AddressWithPrefix.Address, srcPort, dstPort, dataSize) }(), - checkNATed: func(t *testing.T, v *bufferv2.View) { + checkNATed: func(t *testing.T, v *buffer.View) { checker.IPv4(t, v, checker.SrcAddr(utils.RouterNIC1IPv4Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host1IPv4Addr.AddressWithPrefix.Address), @@ -2351,7 +2351,7 @@ func TestNATICMPError(t *testing.T) { ip := header.IPv6(v) ip.SetHopLimit(ip.HopLimit() - 1) }, - checkNATedError: func(t *testing.T, v *bufferv2.View, original []byte, icmpType uint8) { + checkNATedError: func(t *testing.T, v *buffer.View, original []byte, icmpType uint8) { checker.IPv6(t, v, checker.SrcAddr(utils.RouterNIC2IPv6Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host2IPv6Addr.AddressWithPrefix.Address), @@ -2368,7 +2368,7 @@ func TestNATICMPError(t *testing.T) { buf: func() []byte { return udpv6Packet(utils.Host2IPv6Addr.AddressWithPrefix.Address, utils.RouterNIC2IPv6Addr.AddressWithPrefix.Address, srcPort, dstPort, dataSize) }(), - checkNATed: func(t *testing.T, v *bufferv2.View) { + checkNATed: func(t *testing.T, v *buffer.View) { checker.IPv6(t, v, checker.SrcAddr(utils.RouterNIC1IPv6Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host1IPv6Addr.AddressWithPrefix.Address), @@ -2385,7 +2385,7 @@ func TestNATICMPError(t *testing.T) { buf: func() []byte { return tcpv6Packet(utils.Host2IPv6Addr.AddressWithPrefix.Address, utils.RouterNIC2IPv6Addr.AddressWithPrefix.Address, srcPort, dstPort, dataSize) }(), - checkNATed: func(t *testing.T, v *bufferv2.View) { + checkNATed: func(t *testing.T, v *buffer.View) { checker.IPv6(t, v, checker.SrcAddr(utils.RouterNIC1IPv6Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host1IPv6Addr.AddressWithPrefix.Address), @@ -2532,7 +2532,7 @@ func TestNATICMPError(t *testing.T) { buf := transportType.buf ep2.InjectInbound(test.netProto, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(append([]byte{}, buf...)), + Payload: buffer.MakeWithData(append([]byte{}, buf...)), })) { @@ -2552,7 +2552,7 @@ func TestNATICMPError(t *testing.T) { buf = buf[:len(buf)-trimTest.trimLen] ep1.InjectInbound(test.netProto, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(test.icmpError(t, pktSlice, icmpType.val)), + Payload: buffer.MakeWithData(test.icmpError(t, pktSlice, icmpType.val)), })) } @@ -2634,7 +2634,7 @@ func TestSNATHandlePortOrIdentConflicts(t *testing.T) { name string proto tcpip.TransportProtocolNumber buf func(tcpip.Address, uint16) []byte - checkNATed func(*testing.T, *bufferv2.View, uint16, bool, portOrIdentRange) + checkNATed func(*testing.T, *buffer.View, uint16, bool, portOrIdentRange) srcPortOrIdentRanges []srcPortOrIdentRangeTest } @@ -2676,7 +2676,7 @@ func TestSNATHandlePortOrIdentConflicts(t *testing.T) { buf: func(srcAddr tcpip.Address, srcPort uint16) []byte { return udpv4Packet(srcAddr, utils.Host1IPv4Addr.AddressWithPrefix.Address, srcPort, dstPort, 0 /* dataSize */) }, - checkNATed: func(t *testing.T, v *bufferv2.View, originalSrcPort uint16, firstPacket bool, expectedRange portOrIdentRange) { + checkNATed: func(t *testing.T, v *buffer.View, originalSrcPort uint16, firstPacket bool, expectedRange portOrIdentRange) { checker.IPv4(t, v, checker.SrcAddr(utils.RouterNIC1IPv4Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host1IPv4Addr.AddressWithPrefix.Address), @@ -2697,7 +2697,7 @@ func TestSNATHandlePortOrIdentConflicts(t *testing.T) { buf: func(srcAddr tcpip.Address, srcPort uint16) []byte { return tcpv4Packet(srcAddr, utils.Host1IPv4Addr.AddressWithPrefix.Address, srcPort, dstPort, 0 /* dataSize */) }, - checkNATed: func(t *testing.T, v *bufferv2.View, originalSrcPort uint16, firstPacket bool, expectedRange portOrIdentRange) { + checkNATed: func(t *testing.T, v *buffer.View, originalSrcPort uint16, firstPacket bool, expectedRange portOrIdentRange) { checker.IPv4(t, v, checker.SrcAddr(utils.RouterNIC1IPv4Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host1IPv4Addr.AddressWithPrefix.Address), @@ -2718,7 +2718,7 @@ func TestSNATHandlePortOrIdentConflicts(t *testing.T) { buf: func(srcAddr tcpip.Address, ident uint16) []byte { return icmpv4Packet(srcAddr, utils.Host1IPv4Addr.AddressWithPrefix.Address, header.ICMPv4Echo, ident) }, - checkNATed: func(t *testing.T, v *bufferv2.View, originalIdent uint16, firstPacket bool, expectedRange portOrIdentRange) { + checkNATed: func(t *testing.T, v *buffer.View, originalIdent uint16, firstPacket bool, expectedRange portOrIdentRange) { checker.IPv4(t, v, checker.SrcAddr(utils.RouterNIC1IPv4Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host1IPv4Addr.AddressWithPrefix.Address), @@ -2752,7 +2752,7 @@ func TestSNATHandlePortOrIdentConflicts(t *testing.T) { buf: func(srcAddr tcpip.Address, srcPort uint16) []byte { return udpv6Packet(srcAddr, utils.Host1IPv6Addr.AddressWithPrefix.Address, srcPort, dstPort, 0 /* dataSize */) }, - checkNATed: func(t *testing.T, v *bufferv2.View, originalSrcPort uint16, firstPacket bool, expectedRange portOrIdentRange) { + checkNATed: func(t *testing.T, v *buffer.View, originalSrcPort uint16, firstPacket bool, expectedRange portOrIdentRange) { checker.IPv6(t, v, checker.SrcAddr(utils.RouterNIC1IPv6Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host1IPv6Addr.AddressWithPrefix.Address), @@ -2773,7 +2773,7 @@ func TestSNATHandlePortOrIdentConflicts(t *testing.T) { buf: func(srcAddr tcpip.Address, srcPort uint16) []byte { return tcpv6Packet(srcAddr, utils.Host1IPv6Addr.AddressWithPrefix.Address, srcPort, dstPort, 0 /* dataSize */) }, - checkNATed: func(t *testing.T, v *bufferv2.View, originalSrcPort uint16, firstPacket bool, expectedRange portOrIdentRange) { + checkNATed: func(t *testing.T, v *buffer.View, originalSrcPort uint16, firstPacket bool, expectedRange portOrIdentRange) { checker.IPv6(t, v, checker.SrcAddr(utils.RouterNIC1IPv6Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host1IPv6Addr.AddressWithPrefix.Address), @@ -2794,7 +2794,7 @@ func TestSNATHandlePortOrIdentConflicts(t *testing.T) { buf: func(srcAddr tcpip.Address, ident uint16) []byte { return icmpv6Packet(srcAddr, utils.Host1IPv6Addr.AddressWithPrefix.Address, header.ICMPv6EchoRequest, ident) }, - checkNATed: func(t *testing.T, v *bufferv2.View, originalIdent uint16, firstPacket bool, expectedRange portOrIdentRange) { + checkNATed: func(t *testing.T, v *buffer.View, originalIdent uint16, firstPacket bool, expectedRange portOrIdentRange) { checker.IPv6(t, v, checker.SrcAddr(utils.RouterNIC1IPv6Addr.AddressWithPrefix.Address), checker.DstAddr(utils.Host1IPv6Addr.AddressWithPrefix.Address), @@ -2903,7 +2903,7 @@ func TestSNATHandlePortOrIdentConflicts(t *testing.T) { for i, srcAddr := range test.srcAddrs { t.Run(fmt.Sprintf("Packet#%d", i), func(t *testing.T) { ep2.InjectInbound(test.netProto, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(transportType.buf(srcAddr, srcPortOrIdent)), + Payload: buffer.MakeWithData(transportType.buf(srcAddr, srcPortOrIdent)), })) pkt := ep1.Read() @@ -3105,7 +3105,7 @@ func TestRejectWith(t *testing.T) { name string netProto tcpip.NetworkProtocolNumber rxICMPEchoRequest func(tcpip.Address) []byte - icmpChecker func(*testing.T, *bufferv2.View, tcpip.Address, uint8, uint8, []byte) + icmpChecker func(*testing.T, *buffer.View, tcpip.Address, uint8, uint8, []byte) natHooks []natHook @@ -3118,7 +3118,7 @@ func TestRejectWith(t *testing.T) { netProto: header.IPv4ProtocolNumber, rxICMPEchoRequest: rxICMPv4EchoRequest, - icmpChecker: func(t *testing.T, v *bufferv2.View, dstAddr tcpip.Address, icmpType, icmpCode uint8, origPayload []byte) { + icmpChecker: func(t *testing.T, v *buffer.View, dstAddr tcpip.Address, icmpType, icmpCode uint8, origPayload []byte) { t.Helper() checker.IPv4(t, v, @@ -3205,7 +3205,7 @@ func TestRejectWith(t *testing.T) { netProto: header.IPv6ProtocolNumber, rxICMPEchoRequest: rxICMPv6EchoRequest, - icmpChecker: func(t *testing.T, v *bufferv2.View, dstAddr tcpip.Address, icmpType, icmpCode uint8, origPayload []byte) { + icmpChecker: func(t *testing.T, v *buffer.View, dstAddr tcpip.Address, icmpType, icmpCode uint8, origPayload []byte) { t.Helper() checker.IPv6(t, v, @@ -3308,7 +3308,7 @@ func TestRejectWith(t *testing.T) { func() { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(test.rxICMPEchoRequest(natHook.dstAddr)), + Payload: buffer.MakeWithData(test.rxICMPEchoRequest(natHook.dstAddr)), }) defer pkt.DecRef() ep1.InjectInbound(test.netProto, pkt) @@ -3441,7 +3441,7 @@ func genTCP4(offset int8) stack.PacketBufferPtr { ip.SetChecksum(0) ip.SetChecksum(^ip.CalculateChecksum()) - buf := bufferv2.MakeWithData(append([]byte{}, hdr.View()...)) + buf := buffer.MakeWithData(append([]byte{}, hdr.View()...)) return stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: buf}) } @@ -3467,7 +3467,7 @@ func genTCP6(offset int8) stack.PacketBufferPtr { DstAddr: dstAddrV6, }) - buf := bufferv2.MakeWithData(append([]byte{}, hdr.View()...)) + buf := buffer.MakeWithData(append([]byte{}, hdr.View()...)) return stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: buf}) } @@ -3498,7 +3498,7 @@ func genUDP4(offset int8) stack.PacketBufferPtr { ip.SetChecksum(0) ip.SetChecksum(^ip.CalculateChecksum()) - buf := bufferv2.MakeWithData(append([]byte{}, hdr.View()...)) + buf := buffer.MakeWithData(append([]byte{}, hdr.View()...)) return stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: buf}) } @@ -3523,6 +3523,6 @@ func genUDP6(offset int8) stack.PacketBufferPtr { DstAddr: dstAddrV6, }) - buf := bufferv2.MakeWithData(append([]byte{}, hdr.View()...)) + buf := buffer.MakeWithData(append([]byte{}, hdr.View()...)) return stack.NewPacketBuffer(stack.PacketBufferOptions{Payload: buf}) } diff --git a/pkg/tcpip/tests/integration/link_resolution_test.go b/pkg/tcpip/tests/integration/link_resolution_test.go index 3949116b9..028c1b9a2 100644 --- a/pkg/tcpip/tests/integration/link_resolution_test.go +++ b/pkg/tcpip/tests/integration/link_resolution_test.go @@ -24,7 +24,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -486,7 +486,7 @@ func TestForwardingWithLinkResolutionFailure(t *testing.T) { )) } - icmpv4Checker := func(t *testing.T, v *bufferv2.View, src, dst tcpip.Address) { + icmpv4Checker := func(t *testing.T, v *buffer.View, src, dst tcpip.Address) { checker.IPv4(t, v, checker.SrcAddr(src), checker.DstAddr(dst), @@ -499,7 +499,7 @@ func TestForwardingWithLinkResolutionFailure(t *testing.T) { ) } - icmpv6Checker := func(t *testing.T, v *bufferv2.View, src, dst tcpip.Address) { + icmpv6Checker := func(t *testing.T, v *buffer.View, src, dst tcpip.Address) { checker.IPv6(t, v, checker.SrcAddr(src), checker.DstAddr(dst), @@ -522,7 +522,7 @@ func TestForwardingWithLinkResolutionFailure(t *testing.T) { transportProtocol func(*stack.Stack) stack.TransportProtocol rx func(*channel.Endpoint, tcpip.Address, tcpip.Address) linkResolutionRequestChecker func(*testing.T, stack.PacketBufferPtr, tcpip.Address, tcpip.Address) - icmpReplyChecker func(*testing.T, *bufferv2.View, tcpip.Address, tcpip.Address) + icmpReplyChecker func(*testing.T, *buffer.View, tcpip.Address, tcpip.Address) mtu uint32 }{ { @@ -975,7 +975,7 @@ func TestWritePacketsLinkResolution(t *testing.T) { data := []byte{1, 2} pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: header.UDPMinimumSize + int(r.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(data), + Payload: buffer.MakeWithData(data), }) pkt.TransportProtocolNumber = udp.ProtocolNumber length := uint16(pkt.Data().Size() + header.UDPMinimumSize) @@ -1732,7 +1732,7 @@ func TestUpdateCachedNeighborEntry(t *testing.T) { writePacket := func(t *testing.T, r *stack.Route) { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: header.UDPMinimumSize + int(r.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(d), + Payload: buffer.MakeWithData(d), }) if err := r.WritePacket(params, pkt); err != nil { t.Fatalf("WritePacket(...): %s", err) diff --git a/pkg/tcpip/tests/integration/loopback_test.go b/pkg/tcpip/tests/integration/loopback_test.go index 2f600b815..eff0c70f9 100644 --- a/pkg/tcpip/tests/integration/loopback_test.go +++ b/pkg/tcpip/tests/integration/loopback_test.go @@ -20,7 +20,7 @@ import ( "time" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -321,7 +321,7 @@ func TestLoopbackSubnetLifetimeBoundToAddr(t *testing.T) { data := []byte{1, 2, 3, 4} if err := r.WritePacket(params, stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(r.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(data), + Payload: buffer.MakeWithData(data), })); err != nil { t.Fatalf("r.WritePacket(%#v, _): %s", params, err) } @@ -333,7 +333,7 @@ func TestLoopbackSubnetLifetimeBoundToAddr(t *testing.T) { { err := r.WritePacket(params, stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(r.MaxHeaderLength()), - Payload: bufferv2.MakeWithData(data), + Payload: buffer.MakeWithData(data), })) if _, ok := err.(*tcpip.ErrInvalidEndpointState); !ok { t.Fatalf("got r.WritePacket(%#v, _) = %s, want = %s", params, err, &tcpip.ErrInvalidEndpointState{}) diff --git a/pkg/tcpip/tests/integration/multicast_broadcast_test.go b/pkg/tcpip/tests/integration/multicast_broadcast_test.go index 4c226bde6..fc408068c 100644 --- a/pkg/tcpip/tests/integration/multicast_broadcast_test.go +++ b/pkg/tcpip/tests/integration/multicast_broadcast_test.go @@ -19,7 +19,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" "gvisor.dev/gvisor/pkg/tcpip/checksum" @@ -202,7 +202,7 @@ func rxIPv4UDP(e *channel.Endpoint, src, dst tcpip.Address, data []byte) { ip.SetChecksum(^ip.CalculateChecksum()) e.InjectInbound(header.IPv4ProtocolNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), })) } @@ -230,7 +230,7 @@ func rxIPv6UDP(e *channel.Endpoint, src, dst tcpip.Address, data []byte) { }) e.InjectInbound(header.IPv6ProtocolNumber, stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(hdr.View()), + Payload: buffer.MakeWithData(hdr.View()), })) } diff --git a/pkg/tcpip/tests/utils/BUILD b/pkg/tcpip/tests/utils/BUILD index 8ef41b312..468cb1583 100644 --- a/pkg/tcpip/tests/utils/BUILD +++ b/pkg/tcpip/tests/utils/BUILD @@ -11,7 +11,7 @@ go_library( srcs = ["utils.go"], visibility = ["//pkg/tcpip/tests:__subpackages__"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/checksum", "//pkg/tcpip/header", diff --git a/pkg/tcpip/tests/utils/utils.go b/pkg/tcpip/tests/utils/utils.go index 0d0884804..bbd38b5e3 100644 --- a/pkg/tcpip/tests/utils/utils.go +++ b/pkg/tcpip/tests/utils/utils.go @@ -18,7 +18,7 @@ package utils import ( "testing" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checksum" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -380,7 +380,7 @@ func ICMPv4Echo(src, dst tcpip.Address, ttl uint8, ty header.ICMPv4Type) []byte // the provided endpoint. func RxICMPv4EchoRequest(e *channel.Endpoint, src, dst tcpip.Address, ttl uint8) { newPkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(ICMPv4Echo(src, dst, ttl, header.ICMPv4Echo)), + Payload: buffer.MakeWithData(ICMPv4Echo(src, dst, ttl, header.ICMPv4Echo)), }) defer newPkt.DecRef() e.InjectInbound(header.IPv4ProtocolNumber, newPkt) @@ -390,7 +390,7 @@ func RxICMPv4EchoRequest(e *channel.Endpoint, src, dst tcpip.Address, ttl uint8) // the provided endpoint. func RxICMPv4EchoReply(e *channel.Endpoint, src, dst tcpip.Address, ttl uint8) { newPkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(ICMPv4Echo(src, dst, ttl, header.ICMPv4EchoReply)), + Payload: buffer.MakeWithData(ICMPv4Echo(src, dst, ttl, header.ICMPv4EchoReply)), }) defer newPkt.DecRef() e.InjectInbound(header.IPv4ProtocolNumber, newPkt) @@ -424,7 +424,7 @@ func ICMPv6Echo(src, dst tcpip.Address, ttl uint8, ty header.ICMPv6Type) []byte // the provided endpoint. func RxICMPv6EchoRequest(e *channel.Endpoint, src, dst tcpip.Address, ttl uint8) { newPkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(ICMPv6Echo(src, dst, ttl, header.ICMPv6EchoRequest)), + Payload: buffer.MakeWithData(ICMPv6Echo(src, dst, ttl, header.ICMPv6EchoRequest)), }) defer newPkt.DecRef() e.InjectInbound(header.IPv6ProtocolNumber, newPkt) @@ -434,7 +434,7 @@ func RxICMPv6EchoRequest(e *channel.Endpoint, src, dst tcpip.Address, ttl uint8) // the provided endpoint. func RxICMPv6EchoReply(e *channel.Endpoint, src, dst tcpip.Address, ttl uint8) { newPkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(ICMPv6Echo(src, dst, ttl, header.ICMPv6EchoReply)), + Payload: buffer.MakeWithData(ICMPv6Echo(src, dst, ttl, header.ICMPv6EchoReply)), }) defer newPkt.DecRef() e.InjectInbound(header.IPv6ProtocolNumber, newPkt) diff --git a/pkg/tcpip/transport/icmp/BUILD b/pkg/tcpip/transport/icmp/BUILD index 0708a0bf9..41cd86c83 100644 --- a/pkg/tcpip/transport/icmp/BUILD +++ b/pkg/tcpip/transport/icmp/BUILD @@ -28,7 +28,7 @@ go_library( ], visibility = ["//visibility:public"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/log", "//pkg/sleep", "//pkg/sync", diff --git a/pkg/tcpip/transport/icmp/endpoint.go b/pkg/tcpip/transport/icmp/endpoint.go index e386ed993..3bebf8d56 100644 --- a/pkg/tcpip/transport/icmp/endpoint.go +++ b/pkg/tcpip/transport/icmp/endpoint.go @@ -19,7 +19,7 @@ import ( "io" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checksum" @@ -342,7 +342,7 @@ func (e *endpoint) write(p tcpip.Payloader, opts tcpip.WriteOptions) (int64, tcp return 0, &tcpip.ErrMessageTooLong{} } - v := bufferv2.NewView(p.Len()) + v := buffer.NewView(p.Len()) defer v.Release() if _, err := io.CopyN(v, p, int64(p.Len())); err != nil { return 0, &tcpip.ErrBadBuffer{} @@ -406,12 +406,12 @@ func (e *endpoint) GetSockOpt(opt tcpip.GettableSocketOption) tcpip.Error { return e.net.GetSockOpt(opt) } -func send4(s *stack.Stack, ctx *network.WriteContext, ident uint16, data *bufferv2.View, maxHeaderLength uint16) tcpip.Error { +func send4(s *stack.Stack, ctx *network.WriteContext, ident uint16, data *buffer.View, maxHeaderLength uint16) tcpip.Error { if data.Size() < header.ICMPv4MinimumSize { return &tcpip.ErrInvalidEndpointState{} } - pkt := ctx.TryNewPacketBuffer(header.ICMPv4MinimumSize+int(maxHeaderLength), bufferv2.Buffer{}) + pkt := ctx.TryNewPacketBuffer(header.ICMPv4MinimumSize+int(maxHeaderLength), buffer.Buffer{}) if pkt.IsNil() { return &tcpip.ErrWouldBlock{} } @@ -448,12 +448,12 @@ func send4(s *stack.Stack, ctx *network.WriteContext, ident uint16, data *buffer return nil } -func send6(s *stack.Stack, ctx *network.WriteContext, ident uint16, data *bufferv2.View, src, dst tcpip.Address, maxHeaderLength uint16) tcpip.Error { +func send6(s *stack.Stack, ctx *network.WriteContext, ident uint16, data *buffer.View, src, dst tcpip.Address, maxHeaderLength uint16) tcpip.Error { if data.Size() < header.ICMPv6EchoMinimumSize { return &tcpip.ErrInvalidEndpointState{} } - pkt := ctx.TryNewPacketBuffer(header.ICMPv6MinimumSize+int(maxHeaderLength), bufferv2.Buffer{}) + pkt := ctx.TryNewPacketBuffer(header.ICMPv6MinimumSize+int(maxHeaderLength), buffer.Buffer{}) if pkt.IsNil() { return &tcpip.ErrWouldBlock{} } diff --git a/pkg/tcpip/transport/internal/network/BUILD b/pkg/tcpip/transport/internal/network/BUILD index e995eaf16..f30dc4173 100644 --- a/pkg/tcpip/transport/internal/network/BUILD +++ b/pkg/tcpip/transport/internal/network/BUILD @@ -18,7 +18,7 @@ go_library( ], deps = [ "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/sync", "//pkg/tcpip", "//pkg/tcpip/header", @@ -34,7 +34,7 @@ go_test( srcs = ["endpoint_test.go"], deps = [ ":network", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/checker", diff --git a/pkg/tcpip/transport/internal/network/endpoint.go b/pkg/tcpip/transport/internal/network/endpoint.go index 0b9ed0a77..880099f1d 100644 --- a/pkg/tcpip/transport/internal/network/endpoint.go +++ b/pkg/tcpip/transport/internal/network/endpoint.go @@ -20,7 +20,7 @@ import ( "fmt" "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -265,7 +265,7 @@ func (c *WriteContext) PacketInfo() WritePacketInfo { // // If this method returns nil, the caller should wait for the endpoint to become // writable. -func (c *WriteContext) TryNewPacketBuffer(reserveHdrBytes int, data bufferv2.Buffer) stack.PacketBufferPtr { +func (c *WriteContext) TryNewPacketBuffer(reserveHdrBytes int, data buffer.Buffer) stack.PacketBufferPtr { e := c.e e.sendBufferSizeInUseMu.Lock() diff --git a/pkg/tcpip/transport/internal/network/endpoint_test.go b/pkg/tcpip/transport/internal/network/endpoint_test.go index aeb1f507b..f25475385 100644 --- a/pkg/tcpip/transport/internal/network/endpoint_test.go +++ b/pkg/tcpip/transport/internal/network/endpoint_test.go @@ -20,7 +20,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -49,7 +49,7 @@ func TestEndpointStateTransitions(t *testing.T) { const nicID = 1 data := []byte{1, 2, 4, 5} - v4Checker := func(t *testing.T, v *bufferv2.View) { + v4Checker := func(t *testing.T, v *buffer.View) { checker.IPv4(t, v, checker.SrcAddr(ipv4NICAddr), checker.DstAddr(ipv4RemoteAddr), @@ -57,7 +57,7 @@ func TestEndpointStateTransitions(t *testing.T) { ) } - v6Checker := func(t *testing.T, v *bufferv2.View) { + v6Checker := func(t *testing.T, v *buffer.View) { checker.IPv6(t, v, checker.SrcAddr(ipv6NICAddr), checker.DstAddr(ipv6RemoteAddr), @@ -75,7 +75,7 @@ func TestEndpointStateTransitions(t *testing.T) { expectedBoundAddr tcpip.Address remoteAddr tcpip.Address expectedRemoteAddr tcpip.Address - checker func(*testing.T, *bufferv2.View) + checker func(*testing.T, *buffer.View) }{ { name: "IPv4", @@ -205,7 +205,7 @@ func TestEndpointStateTransitions(t *testing.T) { } injectPkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ ReserveHeaderBytes: int(info.MaxHeaderLength), - Payload: bufferv2.MakeWithData(data), + Payload: buffer.MakeWithData(data), }) defer injectPkt.DecRef() if err := ctx.WritePacket(injectPkt, false /* headerIncluded */); err != nil { diff --git a/pkg/tcpip/transport/packet/BUILD b/pkg/tcpip/transport/packet/BUILD index a47898b51..c07f25e4a 100644 --- a/pkg/tcpip/transport/packet/BUILD +++ b/pkg/tcpip/transport/packet/BUILD @@ -27,7 +27,7 @@ go_library( ], visibility = ["//visibility:public"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/log", "//pkg/sleep", "//pkg/sync", diff --git a/pkg/tcpip/transport/packet/endpoint.go b/pkg/tcpip/transport/packet/endpoint.go index 668bd5957..46a7f82a0 100644 --- a/pkg/tcpip/transport/packet/endpoint.go +++ b/pkg/tcpip/transport/packet/endpoint.go @@ -28,7 +28,7 @@ import ( "io" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -239,7 +239,7 @@ func (ep *endpoint) Write(p tcpip.Payloader, opts tcpip.WriteOptions) (int64, tc return 0, &tcpip.ErrMessageTooLong{} } - var payload bufferv2.Buffer + var payload buffer.Buffer if _, err := payload.WriteFromReader(p, int64(p.Len())); err != nil { return 0, &tcpip.ErrBadBuffer{} } diff --git a/pkg/tcpip/transport/raw/BUILD b/pkg/tcpip/transport/raw/BUILD index 9a31da141..5c440e9ac 100644 --- a/pkg/tcpip/transport/raw/BUILD +++ b/pkg/tcpip/transport/raw/BUILD @@ -28,7 +28,7 @@ go_library( ], visibility = ["//visibility:public"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/log", "//pkg/sleep", "//pkg/sync", diff --git a/pkg/tcpip/transport/raw/endpoint.go b/pkg/tcpip/transport/raw/endpoint.go index 38b798c2a..476932d2b 100644 --- a/pkg/tcpip/transport/raw/endpoint.go +++ b/pkg/tcpip/transport/raw/endpoint.go @@ -30,7 +30,7 @@ import ( "io" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checksum" @@ -356,7 +356,7 @@ func (e *endpoint) write(p tcpip.Payloader, opts tcpip.WriteOptions) (int64, tcp return 0, &tcpip.ErrMessageTooLong{} } - var payload bufferv2.Buffer + var payload buffer.Buffer defer payload.Release() if _, err := payload.WriteFromReader(p, int64(p.Len())); err != nil { return 0, &tcpip.ErrBadBuffer{} @@ -680,15 +680,15 @@ func (e *endpoint) HandlePacket(pkt stack.PacketBufferPtr) { // TODO(https://gvisor.dev/issue/6517): Avoid the copy once S/R supports // overlapping slices. transportHeader := pkt.TransportHeader().Slice() - var combinedBuf bufferv2.Buffer + var combinedBuf buffer.Buffer defer combinedBuf.Release() switch info.NetProto { case header.IPv4ProtocolNumber: networkHeader := pkt.NetworkHeader().Slice() - headers := bufferv2.NewView(len(networkHeader) + len(transportHeader)) + headers := buffer.NewView(len(networkHeader) + len(transportHeader)) headers.Write(networkHeader) headers.Write(transportHeader) - combinedBuf = bufferv2.MakeWithView(headers) + combinedBuf = buffer.MakeWithView(headers) pktBuf := pkt.Data().ToBuffer() combinedBuf.Merge(&pktBuf) case header.IPv6ProtocolNumber: @@ -702,7 +702,7 @@ func (e *endpoint) HandlePacket(pkt stack.PacketBufferPtr) { } } - combinedBuf = bufferv2.MakeWithView(pkt.TransportHeader().View()) + combinedBuf = buffer.MakeWithView(pkt.TransportHeader().View()) pktBuf := pkt.Data().ToBuffer() combinedBuf.Merge(&pktBuf) diff --git a/pkg/tcpip/transport/tcp/BUILD b/pkg/tcpip/transport/tcp/BUILD index d1b6dfecd..10aabc402 100644 --- a/pkg/tcpip/transport/tcp/BUILD +++ b/pkg/tcpip/transport/tcp/BUILD @@ -74,7 +74,7 @@ go_library( visibility = ["//visibility:public"], deps = [ "//pkg/atomicbitops", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/log", "//pkg/rand", "//pkg/refs", @@ -105,7 +105,7 @@ go_test( ], library = ":tcp", deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/sleep", "//pkg/tcpip/faketime", diff --git a/pkg/tcpip/transport/tcp/endpoint.go b/pkg/tcpip/transport/tcp/endpoint.go index e94944909..6dcf557e2 100644 --- a/pkg/tcpip/transport/tcp/endpoint.go +++ b/pkg/tcpip/transport/tcp/endpoint.go @@ -25,7 +25,7 @@ import ( "time" "gvisor.dev/gvisor/pkg/atomicbitops" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sleep" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" @@ -1527,7 +1527,7 @@ func (e *endpoint) isEndpointWritableLocked() (int, tcpip.Error) { // readFromPayloader reads a slice from the Payloader. // +checklocks:e.mu // +checklocks:e.sndQueueInfo.sndQueueMu -func (e *endpoint) readFromPayloader(p tcpip.Payloader, opts tcpip.WriteOptions, avail int) (bufferv2.Buffer, tcpip.Error) { +func (e *endpoint) readFromPayloader(p tcpip.Payloader, opts tcpip.WriteOptions, avail int) (buffer.Buffer, tcpip.Error) { // We can release locks while copying data. // // This is not possible if atomic is set, because we can't allow the @@ -1542,7 +1542,7 @@ func (e *endpoint) readFromPayloader(p tcpip.Payloader, opts tcpip.WriteOptions, } // Fetch data. - var payload bufferv2.Buffer + var payload buffer.Buffer if l := p.Len(); l < avail { avail = l } @@ -1551,7 +1551,7 @@ func (e *endpoint) readFromPayloader(p tcpip.Payloader, opts tcpip.WriteOptions, } if _, err := payload.WriteFromReader(p, int64(avail)); err != nil { payload.Release() - return bufferv2.Buffer{}, &tcpip.ErrBadBuffer{} + return buffer.Buffer{}, &tcpip.ErrBadBuffer{} } return payload, nil } @@ -2525,7 +2525,7 @@ func (e *endpoint) shutdownLocked(flags tcpip.ShutdownFlags) tcpip.Error { } // Queue fin segment. - s := newOutgoingSegment(e.TransportEndpointInfo.ID, e.stack.Clock(), bufferv2.Buffer{}) + s := newOutgoingSegment(e.TransportEndpointInfo.ID, e.stack.Clock(), buffer.Buffer{}) e.snd.writeList.PushBack(s) // Mark endpoint as closed. e.sndQueueInfo.SndClosed = true diff --git a/pkg/tcpip/transport/tcp/segment.go b/pkg/tcpip/transport/tcp/segment.go index 976f79f32..df5206582 100644 --- a/pkg/tcpip/transport/tcp/segment.go +++ b/pkg/tcpip/transport/tcp/segment.go @@ -18,7 +18,7 @@ import ( "fmt" "io" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -125,7 +125,7 @@ func newIncomingSegment(id stack.TransportEndpointID, clock tcpip.Clock, pkt sta return s, nil } -func newOutgoingSegment(id stack.TransportEndpointID, clock tcpip.Clock, buf bufferv2.Buffer) *segment { +func newOutgoingSegment(id stack.TransportEndpointID, clock tcpip.Clock, buf buffer.Buffer) *segment { s := newSegment() s.id = id s.rcvdTime = clock.NowMonotonic() diff --git a/pkg/tcpip/transport/tcp/segment_test.go b/pkg/tcpip/transport/tcp/segment_test.go index 9240a7d79..5664c8903 100644 --- a/pkg/tcpip/transport/tcp/segment_test.go +++ b/pkg/tcpip/transport/tcp/segment_test.go @@ -18,7 +18,7 @@ import ( "testing" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip/faketime" "gvisor.dev/gvisor/pkg/tcpip/stack" ) @@ -44,9 +44,9 @@ func checkSegmentSize(t *testing.T, name string, seg *segment, want segmentSizeW func TestSegmentMerge(t *testing.T) { var clock faketime.NullClock id := stack.TransportEndpointID{} - seg1 := newOutgoingSegment(id, &clock, bufferv2.MakeWithView(bufferv2.NewViewSize(10))) + seg1 := newOutgoingSegment(id, &clock, buffer.MakeWithView(buffer.NewViewSize(10))) defer seg1.DecRef() - seg2 := newOutgoingSegment(id, &clock, bufferv2.MakeWithView(bufferv2.NewViewSize(20))) + seg2 := newOutgoingSegment(id, &clock, buffer.MakeWithView(buffer.NewViewSize(20))) defer seg2.DecRef() checkSegmentSize(t, "seg1", seg1, segmentSizeWants{ diff --git a/pkg/tcpip/transport/tcp/test/e2e/BUILD b/pkg/tcpip/transport/tcp/test/e2e/BUILD index 235a748bf..fc3d98127 100644 --- a/pkg/tcpip/transport/tcp/test/e2e/BUILD +++ b/pkg/tcpip/transport/tcp/test/e2e/BUILD @@ -12,7 +12,7 @@ go_test( shard_count = more_shards, deps = [ ":e2e", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/rand", "//pkg/refs", "//pkg/sync", @@ -131,7 +131,7 @@ go_test( srcs = ["tcp_rack_test.go"], deps = [ ":e2e", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/header", @@ -148,7 +148,7 @@ go_test( srcs = ["tcp_sack_test.go"], deps = [ ":e2e", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/checker", diff --git a/pkg/tcpip/transport/tcp/test/e2e/tcp_rack_test.go b/pkg/tcpip/transport/tcp/test/e2e/tcp_rack_test.go index 96b9c6945..59469ad7e 100644 --- a/pkg/tcpip/transport/tcp/test/e2e/tcp_rack_test.go +++ b/pkg/tcpip/transport/tcp/test/e2e/tcp_rack_test.go @@ -21,7 +21,7 @@ import ( "testing" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -332,7 +332,7 @@ func TestNoTLPRecoveryOnDSACK(t *testing.T) { if err := c.EP.GetSockOpt(&info); err != nil { t.Fatalf("GetSockOpt failed: %v", err) } - var p *bufferv2.View + var p *buffer.View if p = c.GetPacketWithTimeout(info.RTO); p != nil { t.Errorf("received an unexpected packet: %v", p) p.Release() diff --git a/pkg/tcpip/transport/tcp/test/e2e/tcp_sack_test.go b/pkg/tcpip/transport/tcp/test/e2e/tcp_sack_test.go index 9aaaef41e..ab2f706f3 100644 --- a/pkg/tcpip/transport/tcp/test/e2e/tcp_sack_test.go +++ b/pkg/tcpip/transport/tcp/test/e2e/tcp_sack_test.go @@ -23,7 +23,7 @@ import ( "testing" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -717,7 +717,7 @@ func verifySpuriousRecoveryMetric(t *testing.T, c *context.Context, numSpuriousR } } -func checkReceivedPacket(t *testing.T, c *context.Context, tcpHdr header.TCP, bytesRead uint32, b *bufferv2.View, data []byte) { +func checkReceivedPacket(t *testing.T, c *context.Context, tcpHdr header.TCP, bytesRead uint32, b *buffer.View, data []byte) { payloadLen := uint32(len(tcpHdr.Payload())) checker.IPv4(t, b, checker.TCP( diff --git a/pkg/tcpip/transport/tcp/test/e2e/tcp_test.go b/pkg/tcpip/transport/tcp/test/e2e/tcp_test.go index eedd880fa..d70dac7b4 100644 --- a/pkg/tcpip/transport/tcp/test/e2e/tcp_test.go +++ b/pkg/tcpip/transport/tcp/test/e2e/tcp_test.go @@ -25,7 +25,7 @@ import ( "time" "github.com/google/go-cmp/cmp" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/rand" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/sync" @@ -4911,7 +4911,7 @@ func TestReceivedInvalidSegmentCountIncrement(t *testing.T) { tcpbuf := buf.Flatten() tcpbuf[header.IPv4MinimumSize+header.TCPDataOffset] = ((header.TCPMinimumSize - 1) / 4) << 4 - segbuf := bufferv2.MakeWithData(tcpbuf) + segbuf := buffer.MakeWithData(tcpbuf) c.SendSegment(segbuf) if got := stats.TCP.InvalidSegmentsReceived.Value(); got != want { @@ -4943,9 +4943,9 @@ func TestReceivedIncorrectChecksumIncrement(t *testing.T) { // verification to fail. tcpbuf[header.IPv4MinimumSize+((tcpbuf[header.IPv4MinimumSize+header.TCPDataOffset]>>4)*4)] = 0x4 - segbuf := bufferv2.MakeWithData(tcpbuf) + segbuf := buffer.MakeWithData(tcpbuf) defer segbuf.Release() - c.SendSegment(bufferv2.MakeWithData(tcpbuf)) + c.SendSegment(buffer.MakeWithData(tcpbuf)) if got := stats.TCP.ChecksumErrors.Value(); got != want { t.Errorf("got stats.TCP.ChecksumErrors.Value() = %d, want = %d", got, want) @@ -5716,8 +5716,8 @@ func TestPathMTUDiscovery(t *testing.T) { t.Fatalf("Write failed: %s", err) } - receivePackets := func(c *context.Context, sizes []int, which int, seqNum uint32) *bufferv2.View { - var ret *bufferv2.View + receivePackets := func(c *context.Context, sizes []int, which int, seqNum uint32) *buffer.View { + var ret *buffer.View iss := seqnum.Value(context.TestInitialSequenceNumber).Add(1) for i, size := range sizes { p := c.GetPacket() @@ -5748,7 +5748,7 @@ func TestPathMTUDiscovery(t *testing.T) { // Send "packet too big" messages back to netstack. const newMTU = 1200 const newMaxPayload = newMTU - header.IPv4MinimumSize - header.TCPMinimumSize - mtu := bufferv2.NewViewWithData([]byte{0, 0, newMTU / 256, newMTU % 256}) + mtu := buffer.NewViewWithData([]byte{0, 0, newMTU / 256, newMTU % 256}) defer mtu.Release() c.SendICMPPacket(header.ICMPv4DstUnreachable, header.ICMPv4FragmentationNeeded, mtu, first, newMTU) diff --git a/pkg/tcpip/transport/tcp/testing/context/BUILD b/pkg/tcpip/transport/tcp/testing/context/BUILD index 399676761..d0db65e30 100644 --- a/pkg/tcpip/transport/tcp/testing/context/BUILD +++ b/pkg/tcpip/transport/tcp/testing/context/BUILD @@ -13,7 +13,7 @@ go_library( "//visibility:public", ], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip", "//pkg/tcpip/checker", "//pkg/tcpip/checksum", diff --git a/pkg/tcpip/transport/tcp/testing/context/context.go b/pkg/tcpip/transport/tcp/testing/context/context.go index 868c7b2cf..f115d2055 100644 --- a/pkg/tcpip/transport/tcp/testing/context/context.go +++ b/pkg/tcpip/transport/tcp/testing/context/context.go @@ -22,7 +22,7 @@ import ( "testing" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" "gvisor.dev/gvisor/pkg/tcpip/checksum" @@ -331,7 +331,7 @@ func (c *Context) CheckNoPacket(errMsg string) { // that it is an IPv4 packet with the expected source and destination // addresses. If no packet is received in the specified timeout it will return // nil. -func (c *Context) GetPacketWithTimeout(timeout time.Duration) *bufferv2.View { +func (c *Context) GetPacketWithTimeout(timeout time.Duration) *buffer.View { c.t.Helper() ctx, cancel := context.WithTimeout(context.Background(), timeout) @@ -367,7 +367,7 @@ func (c *Context) GetPacketWithTimeout(timeout time.Duration) *bufferv2.View { // GetPacket reads a packet from the link layer endpoint and verifies // that it is an IPv4 packet with the expected source and destination // addresses. -func (c *Context) GetPacket() *bufferv2.View { +func (c *Context) GetPacket() *buffer.View { c.t.Helper() p := c.GetPacketWithTimeout(5 * time.Second) @@ -383,7 +383,7 @@ func (c *Context) GetPacket() *bufferv2.View { // and verifies that it is an IPv4 packet with the expected source // and destination address. If no packet is available it will return // nil immediately. -func (c *Context) GetPacketNonBlocking() *bufferv2.View { +func (c *Context) GetPacketNonBlocking() *buffer.View { c.t.Helper() pkt := c.linkEP.Read() @@ -411,9 +411,9 @@ func (c *Context) GetPacketNonBlocking() *bufferv2.View { } // SendICMPPacket builds and sends an ICMPv4 packet via the link layer endpoint. -func (c *Context) SendICMPPacket(typ header.ICMPv4Type, code header.ICMPv4Code, p1, p2 *bufferv2.View, maxTotalSize int) { +func (c *Context) SendICMPPacket(typ header.ICMPv4Type, code header.ICMPv4Code, p1, p2 *buffer.View, maxTotalSize int) { // Allocate a buffer data and headers. - buf := bufferv2.NewViewSize(header.IPv4MinimumSize + header.ICMPv4PayloadOffset + p2.Size()) + buf := buffer.NewViewSize(header.IPv4MinimumSize + header.ICMPv4PayloadOffset + p2.Size()) if buf.Size() > maxTotalSize { buf.CapLength(maxTotalSize) } @@ -440,20 +440,20 @@ func (c *Context) SendICMPPacket(typ header.ICMPv4Type, code header.ICMPv4Code, // Inject packet. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithView(buf), + Payload: buffer.MakeWithView(buf), }) defer pkt.DecRef() c.linkEP.InjectInbound(ipv4.ProtocolNumber, pkt) } // BuildSegment builds a TCP segment based on the given Headers and payload. -func (c *Context) BuildSegment(payload []byte, h *Headers) bufferv2.Buffer { +func (c *Context) BuildSegment(payload []byte, h *Headers) buffer.Buffer { return c.BuildSegmentWithAddrs(payload, h, TestAddr, StackAddr) } // BuildSegmentWithAddrs builds a TCP segment based on the given Headers, // payload and source and destination IPv4 addresses. -func (c *Context) BuildSegmentWithAddrs(payload []byte, h *Headers, src, dst tcpip.Address) bufferv2.Buffer { +func (c *Context) BuildSegmentWithAddrs(payload []byte, h *Headers, src, dst tcpip.Address) buffer.Buffer { // Allocate a buffer for data and headers. buf := make([]byte, header.TCPMinimumSize+header.IPv4MinimumSize+len(h.TCPOpts)+len(payload)) copy(buf[len(buf)-len(payload):], payload) @@ -490,12 +490,12 @@ func (c *Context) BuildSegmentWithAddrs(payload []byte, h *Headers, src, dst tcp t.SetChecksum(^t.CalculateChecksum(xsum)) // Inject packet. - return bufferv2.MakeWithData(buf) + return buffer.MakeWithData(buf) } // SendSegment sends a TCP segment that has already been built and written to a // buffer.VectorisedView. -func (c *Context) SendSegment(s bufferv2.Buffer) { +func (c *Context) SendSegment(s buffer.Buffer) { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ Payload: s, }) @@ -628,7 +628,7 @@ func (c *Context) CreateV6Endpoint(v6only bool) { // GetV6Packet reads a single packet from the link layer endpoint of the context // and asserts that it is an IPv6 Packet with the expected src/dest addresses. -func (c *Context) GetV6Packet() *bufferv2.View { +func (c *Context) GetV6Packet() *buffer.View { c.t.Helper() ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second) @@ -695,7 +695,7 @@ func (c *Context) SendV6PacketWithAddrs(payload []byte, h *Headers, src, dst tcp // Inject packet. pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) defer pkt.DecRef() c.linkEP.InjectInbound(ipv6.ProtocolNumber, pkt) @@ -851,7 +851,7 @@ func (r *RawEndpoint) SendPacket(payload []byte, opts []byte) { // VerifyAndReturnACKWithTS verifies that the tsEcr field int he ACK matches // the provided tsVal as well as returns the original packet. -func (r *RawEndpoint) VerifyAndReturnACKWithTS(tsVal uint32) *bufferv2.View { +func (r *RawEndpoint) VerifyAndReturnACKWithTS(tsVal uint32) *buffer.View { r.C.t.Helper() // Read ACK and verify that tsEcr of ACK packet is [1,2,3,4] ackPacket := r.C.GetPacket() @@ -1010,7 +1010,7 @@ func (c *Context) CreateConnectedWithOptions(wantOptions header.TCPSynOptions, d }) // Read ACK. - var ackPacket *bufferv2.View + var ackPacket *buffer.View // Ignore retransimitted SYN packets. for { packet := c.GetPacket() diff --git a/pkg/tcpip/transport/testing/context/BUILD b/pkg/tcpip/transport/testing/context/BUILD index abe315b4e..96c75a25f 100644 --- a/pkg/tcpip/transport/testing/context/BUILD +++ b/pkg/tcpip/transport/testing/context/BUILD @@ -16,7 +16,7 @@ go_library( "//visibility:public", ], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/checker", diff --git a/pkg/tcpip/transport/testing/context/context.go b/pkg/tcpip/transport/testing/context/context.go index 6e45aabb0..85e0689b0 100644 --- a/pkg/tcpip/transport/testing/context/context.go +++ b/pkg/tcpip/transport/testing/context/context.go @@ -23,7 +23,7 @@ import ( "github.com/google/go-cmp/cmp" "golang.org/x/time/rate" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -255,7 +255,7 @@ func (c *Context) CheckEndpointReadStats(incr uint64, want *tcpip.TransportEndpo // InjectPacket injects a packet into the context's link endpoint. func (c *Context) InjectPacket(netProto tcpip.NetworkProtocolNumber, buf []byte) { pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(buf), + Payload: buffer.MakeWithData(buf), }) defer pkt.DecRef() c.LinkEP.InjectInbound(netProto, pkt) diff --git a/pkg/tcpip/transport/testing/context/flow.go b/pkg/tcpip/transport/testing/context/flow.go index c261f8844..9ec9c7ca2 100644 --- a/pkg/tcpip/transport/testing/context/flow.go +++ b/pkg/tcpip/transport/testing/context/flow.go @@ -18,7 +18,7 @@ import ( "fmt" "testing" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" "gvisor.dev/gvisor/pkg/tcpip/checksum" @@ -275,7 +275,7 @@ func (flow TestFlow) SockProto() tcpip.NetworkProtocolNumber { } // CheckerFn returns the correct network checker for the current TestFlow. -func (flow TestFlow) CheckerFn() func(*testing.T, *bufferv2.View, ...checker.NetworkChecker) { +func (flow TestFlow) CheckerFn() func(*testing.T, *buffer.View, ...checker.NetworkChecker) { if flow.IsV4() { return checker.IPv4 } diff --git a/pkg/tcpip/transport/udp/BUILD b/pkg/tcpip/transport/udp/BUILD index 291e61423..7cc20756d 100644 --- a/pkg/tcpip/transport/udp/BUILD +++ b/pkg/tcpip/transport/udp/BUILD @@ -29,7 +29,7 @@ go_library( ], visibility = ["//visibility:public"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/log", "//pkg/sleep", "//pkg/sync", @@ -52,7 +52,7 @@ go_test( srcs = ["udp_test.go"], deps = [ ":udp", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/refs", "//pkg/tcpip", "//pkg/tcpip/checker", diff --git a/pkg/tcpip/transport/udp/endpoint.go b/pkg/tcpip/transport/udp/endpoint.go index c0837a1e4..02f304efa 100644 --- a/pkg/tcpip/transport/udp/endpoint.go +++ b/pkg/tcpip/transport/udp/endpoint.go @@ -21,7 +21,7 @@ import ( "math" "time" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/sync" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checksum" @@ -436,7 +436,7 @@ func (e *endpoint) prepareForWrite(p tcpip.Payloader, opts tcpip.WriteOptions) ( return udpPacketInfo{}, &tcpip.ErrMessageTooLong{} } - var buf bufferv2.Buffer + var buf buffer.Buffer if _, err := buf.WriteFromReader(p, int64(p.Len())); err != nil { buf.Release() ctx.Release() @@ -593,7 +593,7 @@ func (e *endpoint) GetSockOpt(opt tcpip.GettableSocketOption) tcpip.Error { // udpPacketInfo holds information needed to send a UDP packet. type udpPacketInfo struct { ctx network.WriteContext - data bufferv2.Buffer + data buffer.Buffer localPort uint16 remotePort uint16 } diff --git a/pkg/tcpip/transport/udp/udp_test.go b/pkg/tcpip/transport/udp/udp_test.go index 888983a38..750c77091 100644 --- a/pkg/tcpip/transport/udp/udp_test.go +++ b/pkg/tcpip/transport/udp/udp_test.go @@ -24,7 +24,7 @@ import ( "os" "testing" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/refs" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checker" @@ -1562,7 +1562,7 @@ func TestV4UnknownDestination(t *testing.T) { t.Fatalf("got an ICMP packet of size: %d, want: sz <= %d", got, want) } - hdr := bufferv2.NewViewWithData(pkt) + hdr := buffer.NewViewWithData(pkt) defer hdr.Release() checker.IPv4(t, hdr, checker.ICMPv4( checker.ICMPv4Type(header.ICMPv4DstUnreachable), @@ -1659,7 +1659,7 @@ func TestV6UnknownDestination(t *testing.T) { t.Fatalf("got an ICMP packet of size: %d, want: sz <= %d", got, want) } - hdr := bufferv2.NewViewWithData(pkt) + hdr := buffer.NewViewWithData(pkt) defer hdr.Release() checker.IPv6(t, hdr, checker.ICMPv6( checker.ICMPv6Type(header.ICMPv6DstUnreachable), diff --git a/test/packetimpact/testbench/BUILD b/test/packetimpact/testbench/BUILD index c27044f13..bf7b6af28 100644 --- a/test/packetimpact/testbench/BUILD +++ b/test/packetimpact/testbench/BUILD @@ -19,7 +19,7 @@ go_library( deps = [ "//pkg/abi/linux", "//pkg/binary", - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/hostarch", "//pkg/tcpip", "//pkg/tcpip/checksum", diff --git a/test/packetimpact/testbench/layers.go b/test/packetimpact/testbench/layers.go index a5902519a..37eec26a4 100644 --- a/test/packetimpact/testbench/layers.go +++ b/test/packetimpact/testbench/layers.go @@ -25,7 +25,7 @@ import ( "github.com/google/go-cmp/cmp" "github.com/google/go-cmp/cmp/cmpopts" "go.uber.org/multierr" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip" "gvisor.dev/gvisor/pkg/tcpip/checksum" "gvisor.dev/gvisor/pkg/tcpip/header" @@ -1124,15 +1124,15 @@ func totalLength(l Layer) int { return totalLength } -// payload returns a bufferv2.Buffer of l's payload. -func payload(l Layer) (bufferv2.Buffer, error) { - var payloadBytes bufferv2.Buffer +// payload returns a buffer.Buffer of l's payload. +func payload(l Layer) (buffer.Buffer, error) { + var payloadBytes buffer.Buffer for current := l.next(); current != nil; current = current.next() { payload, err := current.ToBytes() if err != nil { - return bufferv2.Buffer{}, fmt.Errorf("can't get bytes for next header: %s", payload) + return buffer.Buffer{}, fmt.Errorf("can't get bytes for next header: %s", payload) } - payloadBytes.Append(bufferv2.NewViewWithData(payload)) + payloadBytes.Append(buffer.NewViewWithData(payload)) } return payloadBytes, nil } diff --git a/tools/xdp/BUILD b/tools/xdp/BUILD index 158d10929..d3d1706ab 100644 --- a/tools/xdp/BUILD +++ b/tools/xdp/BUILD @@ -20,7 +20,7 @@ go_binary( ], visibility = ["//:sandbox"], deps = [ - "//pkg/bufferv2", + "//pkg/buffer", "//pkg/tcpip/header", "//pkg/tcpip/link/sniffer", "//pkg/tcpip/stack", diff --git a/tools/xdp/tcpdump.go b/tools/xdp/tcpdump.go index 4a5e1624b..bdf91e5b5 100644 --- a/tools/xdp/tcpdump.go +++ b/tools/xdp/tcpdump.go @@ -25,7 +25,7 @@ import ( "github.com/cilium/ebpf" "github.com/google/subcommands" "golang.org/x/sys/unix" - "gvisor.dev/gvisor/pkg/bufferv2" + "gvisor.dev/gvisor/pkg/buffer" "gvisor.dev/gvisor/pkg/tcpip/header" "gvisor.dev/gvisor/pkg/tcpip/link/sniffer" "gvisor.dev/gvisor/pkg/tcpip/stack" @@ -154,7 +154,7 @@ func (pc *TcpdumpCommand) execute() error { descriptor := controlBlock.RX.Get(rxIndex + i) data := controlBlock.UMEM.Get(descriptor) pkt := stack.NewPacketBuffer(stack.PacketBufferOptions{ - Payload: bufferv2.MakeWithData(data[header.EthernetMinimumSize:]), + Payload: buffer.MakeWithData(data[header.EthernetMinimumSize:]), }) sniffer.LogPacket("", diff --git a/website/blog/2022-10-24-buffer-pooling.md b/website/blog/2022-10-24-buffer-pooling.md index cbc60d59b..99cbe04f6 100644 --- a/website/blog/2022-10-24-buffer-pooling.md +++ b/website/blog/2022-10-24-buffer-pooling.md @@ -91,9 +91,9 @@ changing any intermediate buffer processing logic. ## Introducing bufferv2 Our solution was -[bufferv2](https://github.com/google/gvisor/tree/master/pkg/bufferv2). Bufferv2 -is a non-contiguous, reference counted, pooled, copy-on-write, buffer-like data -structure. +[bufferv2](https://github.com/google/gvisor/tree/1ceb81454444981448ad57612139adfc0def1b85/pkg/bufferv2). +Bufferv2 is a non-contiguous, reference counted, pooled, copy-on-write, +buffer-like data structure. Internally, a bufferv2 `Buffer` is a linked list of `View`s. Each `View` has start/end indices and holds a pointer to a `Chunk`. A `Chunk` is a