nmsg 1.1.1
input.h
1/*
2 * Copyright (c) 2008-2015, 2017-2019 by Farsight Security, Inc.
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17#ifndef NMSG_INPUT_H
18#define NMSG_INPUT_H
19
54typedef enum {
55 nmsg_input_type_stream, /*%< NMSG payloads from file or socket */
56 nmsg_input_type_pcap, /*%< pcap packets from file or interface */
57 nmsg_input_type_pres, /*%< presentation form */
58 nmsg_input_type_callback,
59 nmsg_input_type_json, /*%< JSON form */
60} nmsg_input_type;
61
69nmsg_input_t
70nmsg_input_open_file(int fd);
71
79nmsg_input_t
80nmsg_input_open_sock(int fd);
81
89nmsg_input_t
90nmsg_input_open_zmq(void *s);
91
119nmsg_input_t
120nmsg_input_open_zmq_endpoint(void *zmq_ctx, const char *ep);
121
134nmsg_input_t
135nmsg_input_open_callback(nmsg_cb_message_read cb, void *user);
136
149nmsg_input_t
150nmsg_input_open_null(void);
151
162nmsg_input_t
163nmsg_input_open_pres(int fd, nmsg_msgmod_t msgmod);
164
174nmsg_input_t
175nmsg_input_open_json(int fd);
176
188nmsg_input_t
189nmsg_input_open_pcap(nmsg_pcap_t pcap, nmsg_msgmod_t msgmod);
190
198nmsg_res
199nmsg_input_close(nmsg_input_t *input);
200
217nmsg_res
218nmsg_input_loop(nmsg_input_t input, int count, nmsg_cb_message cb, void *user);
219
225void
226nmsg_input_breakloop(nmsg_input_t input);
227
242nmsg_res
243nmsg_input_read(nmsg_input_t input, nmsg_message_t *msg);
244
271nmsg_res
272nmsg_input_read_null(nmsg_input_t input, uint8_t *buf, size_t buf_len,
273 struct timespec *ts, nmsg_message_t **msg, size_t *n_msg);
274
289void
290nmsg_input_set_filter_msgtype(nmsg_input_t input,
291 unsigned vid, unsigned msgtype);
292
302nmsg_res
303nmsg_input_set_filter_msgtype_byname(nmsg_input_t input,
304 const char *vname, const char *mname);
305
315void
316nmsg_input_set_filter_source(nmsg_input_t input, unsigned source);
317
327void
328nmsg_input_set_filter_operator(nmsg_input_t input, unsigned operator_);
329
339void
340nmsg_input_set_filter_group(nmsg_input_t input, unsigned group);
341
353nmsg_res
354nmsg_input_set_blocking_io(nmsg_input_t input, bool flag);
355
371nmsg_res
372nmsg_input_set_byte_rate(nmsg_input_t input, size_t rate);
373
387nmsg_res
388nmsg_input_set_verify_seqsrc(nmsg_input_t input, bool verify);
389
403nmsg_res
404nmsg_input_get_count_container_received(nmsg_input_t input, uint64_t *count);
405
420nmsg_res
421nmsg_input_get_count_container_dropped(nmsg_input_t input, uint64_t *count);
422
423#endif /* NMSG_INPUT_H */