Home / Function/ verifyUdpCapture() — netty Function Reference

verifyUdpCapture() — netty Function Reference

Architecture documentation for the verifyUdpCapture() function in PcapWriteHandlerTest.java from the netty codebase.

Function java Buffer Allocators calls 1 called by 5

Entity Profile

Dependency Diagram

graph TD
  eb1ea467_0963_a158_64e4_4642e02fe449["verifyUdpCapture()"]
  e9f4993c_4935_9405_4fab_0bbc9030a673["PcapWriteHandlerTest"]
  eb1ea467_0963_a158_64e4_4642e02fe449 -->|defined in| e9f4993c_4935_9405_4fab_0bbc9030a673
  09664c21_072d_80b4_a75e_e5bf4f97af22["udpV4()"]
  09664c21_072d_80b4_a75e_e5bf4f97af22 -->|calls| eb1ea467_0963_a158_64e4_4642e02fe449
  ddfde28c_4e8f_f8cd_23bf_3a4fb181fa91["embeddedUdp()"]
  ddfde28c_4e8f_f8cd_23bf_3a4fb181fa91 -->|calls| eb1ea467_0963_a158_64e4_4642e02fe449
  8d1bfd2f_28e4_d994_01ee_6a6b380155f9["udpMixedAddress()"]
  8d1bfd2f_28e4_d994_01ee_6a6b380155f9 -->|calls| eb1ea467_0963_a158_64e4_4642e02fe449
  568c9eeb_3e86_a619_596b_e2249c5fae2f["udpZeroLengthByteBufCaptured()"]
  568c9eeb_3e86_a619_596b_e2249c5fae2f -->|calls| eb1ea467_0963_a158_64e4_4642e02fe449
  e94a2daf_6334_d8a0_7364_bdcc90c0b5af["udpZeroLengthDatagramCaptured()"]
  e94a2daf_6334_d8a0_7364_bdcc90c0b5af -->|calls| eb1ea467_0963_a158_64e4_4642e02fe449
  a424c66d_5bc4_c81f_9a05_686817ee4de8["verifyGlobalHeaders()"]
  eb1ea467_0963_a158_64e4_4642e02fe449 -->|calls| a424c66d_5bc4_c81f_9a05_686817ee4de8
  style eb1ea467_0963_a158_64e4_4642e02fe449 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

handler/src/test/java/io/netty/handler/pcap/PcapWriteHandlerTest.java lines 1279–1339

    private static void verifyUdpCapture(boolean verifyGlobalHeaders, ByteBuf byteBuf, ByteBuf expectedPayload,
                                         InetSocketAddress remoteAddress, InetSocketAddress localAddress) {
        if (verifyGlobalHeaders) {
            verifyGlobalHeaders(byteBuf);
        }

        int expectedPayloadLength = expectedPayload.readableBytes();

        // Verify Pcap Packet Header
        byteBuf.readInt(); // Just read, we don't care about timestamps for now
        byteBuf.readInt(); // Just read, we don't care about timestamps for now
        assertEquals(42 + expectedPayloadLength, byteBuf.readInt()); // Length of Packet Saved In Pcap
        assertEquals(42 + expectedPayloadLength, byteBuf.readInt()); // Actual Length of Packet

        // -------------------------------------------- Verify Packet --------------------------------------------
        // Verify Ethernet Packet
        ByteBuf ethernetPacket = byteBuf.readBytes(42 + expectedPayloadLength);
        ByteBuf dstMac = ethernetPacket.readBytes(6);
        ByteBuf srcMac = ethernetPacket.readBytes(6);
        assertArrayEquals(new byte[] { 0, 0, 94, 0, 83, -1 }, ByteBufUtil.getBytes(dstMac));
        assertArrayEquals(new byte[] { 0, 0, 94, 0, 83, 0 }, ByteBufUtil.getBytes(srcMac));
        assertEquals(0x0800, ethernetPacket.readShort());

        // Verify IPv4 Packet
        ByteBuf ipv4Packet = ethernetPacket.readBytes(28 + expectedPayloadLength);
        assertEquals(0x45, ipv4Packet.readByte());    // Version + IHL
        assertEquals(0x00, ipv4Packet.readByte());    // DSCP
        assertEquals(28 + expectedPayloadLength, ipv4Packet.readShort());     // Length
        assertEquals(0x0000, ipv4Packet.readShort()); // Identification
        assertEquals(0x0000, ipv4Packet.readShort()); // Fragment
        assertEquals((byte) 0xff, ipv4Packet.readByte());      // TTL
        assertEquals((byte) 17, ipv4Packet.readByte());        // Protocol
        assertEquals(0, ipv4Packet.readShort());      // Checksum

        // Source IPv4 Address
        assertEquals(NetUtil.ipv4AddressToInt((Inet4Address) localAddress.getAddress()), ipv4Packet.readInt());

        // Destination IPv4 Address
        assertEquals(NetUtil.ipv4AddressToInt((Inet4Address) remoteAddress.getAddress()), ipv4Packet.readInt());

        // Verify UDP Packet
        ByteBuf udpPacket = ipv4Packet.readBytes(8 + expectedPayloadLength);
        assertEquals(localAddress.getPort() & 0xffff, udpPacket.readUnsignedShort()); // Source Port
        assertEquals(remoteAddress.getPort() & 0xffff, udpPacket.readUnsignedShort()); // Destination Port
        assertEquals(8 + expectedPayloadLength, udpPacket.readShort());     // Length
        assertEquals(0x0001, udpPacket.readShort()); // Checksum

        // Verify Payload
        ByteBuf payload = udpPacket.readBytes(expectedPayloadLength);
        assertArrayEquals(ByteBufUtil.getBytes(expectedPayload), ByteBufUtil.getBytes(payload)); // Payload

        // Release all ByteBuf
        assertTrue(dstMac.release());
        assertTrue(srcMac.release());
        if (expectedPayloadLength > 0) {
            assertTrue(payload.release());
        }
        assertTrue(ethernetPacket.release());
        assertTrue(ipv4Packet.release());
        assertTrue(udpPacket.release());
    }

Domain

Subdomains

Frequently Asked Questions

What does verifyUdpCapture() do?
verifyUdpCapture() is a function in the netty codebase, defined in handler/src/test/java/io/netty/handler/pcap/PcapWriteHandlerTest.java.
Where is verifyUdpCapture() defined?
verifyUdpCapture() is defined in handler/src/test/java/io/netty/handler/pcap/PcapWriteHandlerTest.java at line 1279.
What does verifyUdpCapture() call?
verifyUdpCapture() calls 1 function(s): verifyGlobalHeaders.
What calls verifyUdpCapture()?
verifyUdpCapture() is called by 5 function(s): embeddedUdp, udpMixedAddress, udpV4, udpZeroLengthByteBufCaptured, udpZeroLengthDatagramCaptured.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free