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