crafter 0.3.2

Packet-level network interaction for Rust tools and agents.
Documentation
// Regenerated WHAD 802.15.4 protocol subset for the libcrafter WHAD backend.
// Pin: whad-team/whad-protocol release/v3
// Commit: 82dbbefe5c3a1b3bfa89f86829c8872985a7f27e
//
// Field numbers, enum values, and oneof field numbers are sourced from
// .agents/docs/whad-dot15d4-manifest.md (step 04), which pins the upstream
// definitions at the commit above. These definitions are scope-reduced
// regenerated equivalents (not a verbatim vendored copy) per
// crafter/src/wire/backend/whad/proto/LICENSE-NOTE.md: only the package name,
// command/notification message names, field numbers, enum values, and oneof
// field numbers needed by the host-side sniff/inject backend are preserved.
// Out-of-scope WHAD command surfaces (TSCH, energy detection, jam, MITM) are
// intentionally omitted.

syntax = "proto3";

package dot15d4;

enum Dot15d4Command {
  SetNodeAddress = 0;
  Sniff = 1;
  Jam = 2;
  EnergyDetection = 3;
  Send = 4;
  SendRaw = 5;
  EndDeviceMode = 6;
  CoordinatorMode = 7;
  RouterMode = 8;
  Start = 9;
  Stop = 10;
  ManInTheMiddle = 11;
}

message SniffCmd {
  uint32 channel = 1;
}

message SendCmd {
  uint32 channel = 1;
  bytes pdu = 2;
}

message SendRawCmd {
  uint32 channel = 1;
  bytes pdu = 2;
  uint32 fcs = 3;
}

message StartCmd {}

message StopCmd {}

message RawPduReceived {
  uint32 channel = 1;
  optional int32 rssi = 2;
  optional uint64 timestamp = 3;
  bool fcs_validity = 4;
  bytes pdu = 5;
  uint32 fcs = 6;
  optional uint32 lqi = 7;
}

message PduReceived {
  uint32 channel = 1;
  optional int32 rssi = 2;
  optional uint64 timestamp = 3;
  bool fcs_validity = 4;
  bytes pdu = 5;
  optional uint32 lqi = 6;
}

message Message {
  oneof msg {
    SniffCmd sniff = 2;
    SendCmd send = 5;
    SendRawCmd send_raw = 6;
    StartCmd start = 10;
    StopCmd stop = 11;
    RawPduReceived raw_pdu = 15;
    PduReceived pdu = 16;
  }
}