1*76404edcSAsim Jamshed #ifdef TEST_BPF
2*76404edcSAsim Jamshed
3*76404edcSAsim Jamshed #include "sfbpf.h"
4*76404edcSAsim Jamshed #include "sfbpf_dlt.h"
5*76404edcSAsim Jamshed #include <stdlib.h>
6*76404edcSAsim Jamshed #include <stdio.h>
7*76404edcSAsim Jamshed #include <string.h>
8*76404edcSAsim Jamshed
9*76404edcSAsim Jamshed int
main()10*76404edcSAsim Jamshed main()
11*76404edcSAsim Jamshed {
12*76404edcSAsim Jamshed struct sfbpf_program fcode;
13*76404edcSAsim Jamshed const char *filter = "tcp";
14*76404edcSAsim Jamshed char data[1514];
15*76404edcSAsim Jamshed int len = 1514;
16*76404edcSAsim Jamshed
17*76404edcSAsim Jamshed memset(data, 0, sizeof(data));
18*76404edcSAsim Jamshed
19*76404edcSAsim Jamshed if (sfbpf_compile(1514, DLT_EN10MB, &fcode, filter, 1, 0) < 0) {
20*76404edcSAsim Jamshed fprintf(stderr, "%s: BPF state machine compilation failed!", __FUNCTION__);
21*76404edcSAsim Jamshed return EXIT_FAILURE;
22*76404edcSAsim Jamshed }
23*76404edcSAsim Jamshed
24*76404edcSAsim Jamshed if (fcode.bf_insns && sfbpf_filter(fcode.bf_insns, data, len, len) == 0) {
25*76404edcSAsim Jamshed fprintf(stderr, "Packet ignored!\n");
26*76404edcSAsim Jamshed }
27*76404edcSAsim Jamshed
28*76404edcSAsim Jamshed sfbpf_freecode(&fcode);
29*76404edcSAsim Jamshed
30*76404edcSAsim Jamshed return EXIT_SUCCESS;
31*76404edcSAsim Jamshed }
32*76404edcSAsim Jamshed
33*76404edcSAsim Jamshed #endif /* !TEST_BPF */
34