26 pkt_pcap_init(
void *clos, nmsg_pcap_t pcap);
29 pkt_pkt_to_payload(
void *clos, nmsg_pcap_t pcap, nmsg_message_t *m);
48 NMSG_MSGMOD_REQUIRED_INIT,
49 .vendor = NMSG_VENDOR_BASE,
50 .msgtype = { NMSG_VENDOR_BASE_PKT_ID, NMSG_VENDOR_BASE_PKT_NAME },
52 .pbdescr = &nmsg__base__pkt__descriptor,
54 .pkt_to_payload = pkt_pkt_to_payload,
55 .pcap_init = pkt_pcap_init
59 pkt_pcap_init(
void *clos, nmsg_pcap_t pcap) {
62 fprintf(stderr,
"%s: ERROR: This message type cannot be used "
63 "safely with datalink types other than DLT_EN10MB.\n",
71 pkt_pkt_to_payload(
void *clos, nmsg_pcap_t pcap, nmsg_message_t *m) {
73 const uint8_t *pkt_data;
77 struct pcap_pkthdr *pkt_hdr;
92 buf = malloc(snaplen + 64);
97 pkt = calloc(1,
sizeof(*pkt));
102 nmsg__base__pkt__init(pkt);
104 pkt->payload.len = pkt_hdr->caplen;
105 pkt->payload.data = (uint8_t *) pkt_data;
106 pkt->len_frame = pkt_hdr->len;
107 pkt->has_len_frame = 1;
108 buf_sz = nmsg__base__pkt__pack(pkt, buf);
109 pkt->payload.len = 0;
110 pkt->payload.data = NULL;
112 NMSG_VENDOR_BASE_PKT_ID,
Structure exported by message modules to implement a new message type.
Structure mapping protocol buffer schema fields to nmsg_msgmod_field_type values for "transparent" mo...
nmsg_msgmod_field_type type
Intended (nmsg) type of this protobuf field.
nmsg_message_t nmsg_message_from_raw_payload(unsigned vid, unsigned msgtype, uint8_t *data, size_t sz, const struct timespec *ts)
Initialize a new message object from an opaque payload blob.
int nmsg_get_debug(void)
Retrieve the current debug level.