source: lib/Makefile.am @ d391ce0

4.0.1-hotfixescachetimestampsdevelopdpdk-ndagetsilivelibtrace4ndag_formatpfringrc-4.0.1rc-4.0.2rc-4.0.3rc-4.0.4ringdecrementfixringperformanceringtimestampfixes
Last change on this file since d391ce0 was e63d80d, checked in by Shane Alcock <salcock@…>, 6 years ago

Add bucket data structure for keeping track of packet buffers

A bucket can contain anywhere from 1 to N packets and will point to a
buffer owned by libtrace. Libtrace can signal that it is finished with an
individual packet and when all packets associated with the buffer are
finished, the buffer will be freed automatically.

This should make buffer management easier for formats like bpf and RT where
multiple packets can be read at once and will allow us to retain zero-copy
behaviour (aside from the initial read) in a parallel libtrace program.

  • Property mode set to 100644
File size: 3.2 KB
Line 
1lib_LTLIBRARIES = libtrace.la
2include_HEADERS = libtrace.h dagformat.h lt_inttypes.h daglegacy.h \
3        rt_protocol.h erftypes.h libtrace_parallel.h \
4        data-struct/ring_buffer.h data-struct/object_cache.h \
5        data-struct/vector.h data-struct/message_queue.h \
6        data-struct/deque.h data-struct/linked_list.h \
7        data-struct/sliding_window.h hash_toeplitz.h \
8        data-struct/buckets.h
9
10AM_CFLAGS=@LIBCFLAGS@ @CFLAG_VISIBILITY@ -pthread
11AM_CXXFLAGS=@LIBCXXFLAGS@ @CFLAG_VISIBILITY@ -pthread
12
13extra_DIST = format_template.c
14NATIVEFORMATS=format_linux_common.c format_linux_ring.c format_linux_int.c format_linux_common.h
15BPFFORMATS=format_bpf.c
16
17if HAVE_DAG
18if DAG2_4
19DAGSOURCE=format_dag24.c
20else
21DAGSOURCE=format_dag25.c
22endif
23else
24DAGSOURCE=
25endif
26EXTRA_DIST=format_dag24.c format_dag25.c dpdk_libtrace.mk
27
28if HAVE_LLVM
29BPFJITSOURCE=bpf-jit/bpf-jit.cc
30else
31BPFJITSOURCE=
32endif
33
34if HAVE_DPDK
35NATIVEFORMATS+= format_dpdk.c
36# So we also make libtrace.mk in dpdk otherwise automake tries to expand
37# it too early which I cannot seem to stop unless we use a path that
38# doesn't exist currently
39export RTE_SDK=@RTE_SDK@
40export RTE_TARGET=@RTE_TARGET@
41export SAVED_CFLAGS:=$(CFLAGS)
42export SAVED_CXXFLAGS:=$(CXXFLAGS)
43include $(RTE_SDK)/mk/rte.vars.mk
44# We need to add -Wl before the linker otherwise this breaks our build
45# And include any libraries that DPDK might depend upon
46export DPDK_LIBTRACE_MK=dpdk_libtrace.mk
47include $(DPDK_LIBTRACE_MK)
48export CFLAGS += $(SAVED_CFLAGS)
49export CXXFLAGS += $(SAVED_CXXFLAGS)
50endif
51
52libtrace_la_SOURCES = trace.c trace_parallel.c common.h \
53                format_erf.c format_pcap.c format_legacy.c \
54                format_rt.c format_helper.c format_helper.h format_pcapfile.c \
55                format_duck.c format_tsh.c $(NATIVEFORMATS) $(BPFFORMATS) \
56                format_atmhdr.c \
57                libtrace_int.h lt_inttypes.h lt_bswap.h \
58                linktypes.c link_wireless.c byteswap.c \
59                checksum.c checksum.h \
60                protocols_pktmeta.c protocols_l2.c protocols_l3.c \
61                protocols_transport.c protocols.h protocols_ospf.c \
62                protocols_application.c \
63                $(DAGSOURCE) format_erf.h \
64                $(BPFJITSOURCE) \
65                libtrace_arphrd.h \
66                data-struct/ring_buffer.c data-struct/vector.c \
67                data-struct/message_queue.c data-struct/deque.c \
68                data-struct/sliding_window.c data-struct/object_cache.c \
69                data-struct/linked_list.c hash_toeplitz.c combiner_ordered.c \
70                data-struct/buckets.c \
71                combiner_sorted.c combiner_unordered.c \
72                pthread_spinlock.c pthread_spinlock.h
73
74if DAG2_4
75nodist_libtrace_la_SOURCES = dagopts.c dagapi.c
76endif
77
78AM_CPPFLAGS= @ADD_INCLS@
79libtrace_la_LIBADD = @LIBTRACE_LIBS@ @LTLIBOBJS@ $(DPDKLIBS)
80libtrace_la_LDFLAGS=-version-info @LIBTRACE_MAJOR@:@LIBTRACE_MINOR@:@LIBTRACE_MID@ @ADD_LDFLAGS@
81dagapi.c:
82        cp @DAG_TOOLS_DIR@/dagapi.c .
83
84dagopts.c:
85        cp @DAG_TOOLS_DIR@/dagopts.c .
86
87if HAVE_LLVM
88# Rules to build the llvm .cc file from a C description of each opcode.
89bpf-jit/bpf-opcodes.llvm.bc: bpf-jit/bpf-opcodes.c
90        $(LLVM_GCC) -std=c99 -c -O0 -emit-llvm $< -o $@
91
92bpf-jit/bpf-opcodes.llvm.cc: bpf-jit/bpf-opcodes.llvm.bc
93        `$(LLVM_CONFIG) --bindir`/llc -march=cpp -cppgen=module $< -o $@
94
95bpf-jit/bpf-jit.cc: bpf-jit/bpf-opcodes.llvm.cc
96
97EXTRA_DIST+=bpf-jit/bpf-opcodes.c
98BUILT_SOURCES=bpf-jit/bpf-opcodes.llvm.cc
99endif
100CLEANFILES=bpf-jit/bpf-opcodes.llvm.cc bpf-jit/bpf-opcodes.llvm.bc
Note: See TracBrowser for help on using the repository browser.