function icmpPacket
icmpPacket(): Coder<IcmpPacket>

Creates a coder for a generic ICMPv4 packet — 4-byte fixed header (type, code, checksum) and a payload that absorbs the rest of the buffer on decode.

Examples

Round-trip a minimal Echo Request

import { assertEquals } from "@std/assert";
import { ICMP_TYPE, icmpPacket } from "@binstruct/icmp";

const coder = icmpPacket();
// First 4 payload bytes are the type-specific identifier/sequence.
const payload = new Uint8Array([0x00, 0x01, 0x00, 0x01]);
const packet = {
  type: ICMP_TYPE.ECHO_REQUEST,
  code: 0,
  checksum: 0xf7fd,
  payload,
};

const buffer = new Uint8Array(4 + payload.length);
const bytesWritten = coder.encode(packet, buffer);
const [decoded, bytesRead] = coder.decode(buffer);

assertEquals(bytesWritten, buffer.length);
assertEquals(bytesRead, buffer.length);
assertEquals(decoded.type, ICMP_TYPE.ECHO_REQUEST);
assertEquals(decoded.code, 0);
assertEquals(decoded.checksum, 0xf7fd);
assertEquals(decoded.payload, payload);

Return Type

Coder<IcmpPacket>

A coder for IcmpPacket.

Usage

import { icmpPacket } from ".";