• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

autoconf/H18-Apr-2019-16,30512,166

doc/H03-May-2022-3,2132,617

include/H03-May-2022-6,9541,845

m4/H18-Apr-2019-10,1619,198

src/H03-May-2022-40,42432,089

AUTHORSH A D10-May-2017443 97

Doxyfile.inH A D29-Nov-201851.1 KiB1,272910

INSTALLH A D10-May-20179.2 KiB235177

Makefile.amH A D18-Mar-20192.7 KiB8837

Makefile.inH A D03-May-202236.8 KiB1,104955

NEWSH A D18-Apr-201912.7 KiB407266

READMEH A D18-Mar-20195.9 KiB11995

aclocal.m4H A D18-Apr-201962.7 KiB1,7281,564

configureH A D18-Apr-2019689.6 KiB23,22619,727

configure.acH A D18-Apr-201910.5 KiB319264

doxygen.amH A D10-May-20174.6 KiB190136

libfixbuf.pc.inH A D12-Jul-2018324 1210

libfixbuf.specH A D18-Apr-20192.1 KiB10183

libfixbuf.spec.inH A D18-Mar-20192.2 KiB10183

README

1libfixbuf aims to be a compliant implementation of the IPFIX Protocol,
2as defined in the "Specification of the IPFIX Protocol for the Exchange of
3Flow Information" (RFC 7011). It supports the information model
4defined in "Information Model for IP Flow Information Export"
5(RFC 7012), extended as proposed by "Bidirectional Flow Export using
6IPFIX" (RFC 5103) to support information elements for representing biflows.
7
8libfixbuf supports UDP, TCP, SCTP, TLS over TCP, and Spread as transport
9protocols. Support for DTLS over UDP and DTLS over SCTP is forthcoming. It
10also supports operation as an IPFIX File Writer or IPFIX File Reader as
11defined in "An IPFIX-Based File Format" (draft-trammell-ipfix-file, current
12revision -05).
13
14libfixbuf version 1.0 supports structured data elements as described in
15"Export of Structured Data in IPFIX" (RFC 6313).
16This adds the ability to export basicLists,
17subTemplateLists, and subTemplateMultiLists.
18
19libfixbuf version 1.4 adds support for exporting type information for IPFIX
20elements as described in "Exporting Type Information for IPFIX Information
21Elements. (RFC 5610)."  This expands the definition of an Information Element
22in the Information Model.  In addition to the PEN, length, name, and ID, an
23Information Element can also have a data type, description, range, semantics,
24and units.  An Options Template can be exported to define Information Element
25Type Records.  New API Functions have been added to create and write these
26types of Options Records, as well as collect elements of this type so that
27Information Elements may be added to the Information Model as we receive
28them from the Exporting process.  See public.h for more information.
29
30As of version 1.0, libfixbuf has support for NetFlow V9.  libfixbuf converts
31the NetFlow v9 to IPFIX by changing the version number, and dropping the
32sysUpTime from the header.  In order for tools to properly make use of
33Information Elements that are offsets of the sysUpTime (flowStartSysUpTime),
34libfixbuf adds Information Element 160, systemInitTimeMilliseconds, to any
35template (and corresponding records) that contain either flowStartSysUpTime or
36flowEndSysUpTime.
37For any element that does not exist in libfixbuf's default Information Model
38(above ID 346), libfixbuf will convert this Information Element to
39"ciscoNetflowGeneric" (ID 9999) in the template.  The only exceptions are the
40"NF_F_FW_EXT_EVENT" and "NF_F_FW_EVENT", often exported from Cisco's ASA Device
41(http://www.cisco.com/en/US/docs/security/asa/asa82/netflow/netflow.html), which
42will be converted to separate elements 9997 and 9998 respectively.  Similarly,
43the Cisco ASA will often export elements 40001, 40002, 40003, and 40004.
44These elements are substituted with the IPFIX elements 225, 226, 227, and 228
45respectively.
46
47Version 1.4 adds support for NetFlow v9 options template and record retrieval
48and conversion to IPFIX.  The options scope type is converted to IE,
49messageScope.
50
51To disable NetFlow v9 log messages such as sequence number mismatch
52messages and record count discrepancy
53messages, run `make clean`, `CFLAGS="-DFB_SUPPRESS_LOGS=1" make -e`,
54`make install` when installing libfixbuf.
55
56Version 1.6 adds support for translating sFlow into IPFIX.  libfixbuf
57only supports sFlow v5. libfixbuf will process Flow Samples (1),
58Extended Flow Samples (3), Counter Samples (2), and
59Extended Counter Samples (4).  Any other format will return
60an FB_ERROR_SFLOW.  Fixbuf translates sFlow records into a fixed IPFIX
61record for flow and counter records.  A full description of the fields
62fixbuf exports for sFlow records is located in include/fixbuf/public.h.
63
64libfixbuf's public API is defined in public.h; see the documentation of
65that file for general documentation on getting started with libfixbuf, as
66well as detailed documentation on the public API calls and data types.
67
68libfixbuf API documentation is available in doc/html.
69
70ipfixDump is a command line tool for printing the contents of an IPFIX
71file as text.  As of libfixbuf-2.3.0, ipfixDump is distributed with
72libfixbuf.  (Previously, it was distributed with YAF.)
73
74A Python API to libfixbuf is available in the pyfixbuf package, distributed
75separately (http://tools.netsa.cert.org/pyfixbuf/).
76
77Building
78--------
79
80libfixbuf uses a reasonably standard autotools-based build system.
81The customary build procedure (./configure && make
82&& make install) should work in most environments.
83
84libfixbuf requires glib-2.0 version 2.18 or later.  glib is available
85on most modern Linux distributions and BSD ports collections, or in
86source form from http://www.gtk.org.
87
88libfixbuf automatically uses the getaddrinfo(3) facility and the
89accompanying dual IPv4/IPv6 stack support if present. getaddrinfo(3)
90must be present to export or collect flows over IPv6.
91
92libfixbuf does not build with SCTP support by default. The --with-sctp
93option must be given to the libfixbuf ./configure script to include SCTP
94support. Also note that SCTP requires kernel support, and applications
95built against libfixbuf with libsctp may fail at runtime if that kernel
96support is not present.
97
98libfixbuf does not build with TLS support by default. The --with-openssl option
99must be given to the libfixbuf ./configure script to include TLS support.
100
101If the information model in src/ipfix.xml changes, xsltproc is a
102prerequisite for re-creating the infomodel data structure.
103
104Known Issues
105------------
106
107The following are known issues with libfixbuf as of version 1.0.0:
108
109 * There is no support for DTLS over UDP or DTLS over SCTP transport.
110
111 * There is no support for application-selectable SCTP stream assignment
112   or SCTP partial reliability. Templates are sent reliably on stream 0,
113   and data sets are sent reliably on stream 1.
114
115 * There is no automatic support for periodic template retransmission
116   or periodic template expiration as required when transporting IPFIX
117   over UDP. Applications using libfixbuf to transport IPFIX messages
118   over UDP must maintain these timeouts and manually manage the session.
119