source: lib/format_erf.h @ a857389

cachetimestampsdevelopetsiliverc-4.0.3rc-4.0.4ringdecrementfixringperformance
Last change on this file since a857389 was a857389, checked in by Shane Alcock <salcock@…>, 3 years ago

Initial support for ERF provenance records

Update erftypes.h with TYPE_META (27).
Check for ERF_TYPE_MAX rather than some arbitrary type in ERF sanity checks. In Wireshark we recently completely removed these checks as there are only a few types before TYPE_PAD/ERF_TYPE_MAX, but leave them in for now.
Add TRACE_TYPE_ERF_META for provenance record payload.
Continue to use TRACE_RT_DATA_ERF as provenance is a valid ERF record. Note: this means that LIBTRACE_IS_META_PACKET() will currently return FALSE which may confuse some tools. Other places in the code also tend to check for TRACE_TYPE_NONDATA which isn't true here either.
Return zero for wire length of provenance records.
Don't allow snapping them (just return the same value).
Skip provenance records in l2 parsers and trace_get_payload_from_meta().
Return provenance payload for trace_get_packet_meta().

Also add support for a couple of missing ERF_TYPE_ETH_COLOR variants.

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/*
2 *
3 * Copyright (c) 2007-2016 The University of Waikato, Hamilton, New Zealand.
4 * All rights reserved.
5 *
6 * This file is part of libtrace.
7 *
8 * This code has been developed by the University of Waikato WAND
9 * research group. For further information please see http://www.wand.net.nz/
10 *
11 * libtrace is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License as published by
13 * the Free Software Foundation; either version 3 of the License, or
14 * (at your option) any later version.
15 *
16 * libtrace is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 * GNU Lesser General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
23 *
24 *
25 */
26#ifndef FORMAT_ERF_H
27#define FORMAT_ERF_H
28
29#include "libtrace.h"
30
31/** @file
32 *
33 * @brief Header file defining functions that apply to all libtrace formats
34 * that use the ERF record format, e.g. ERF, DAG 2.4, DAG 2.5
35 *
36 * @author Daniel Lawson
37 * @author Perry Lorier
38 * @author Shane Alcock
39 *
40 * @version $Id$
41 *
42 * Not too much detail required with these functions - this header file exists
43 * solely to ensure that we don't have to duplicate the same code across
44 * multiple format modules.
45 */
46
47int erf_get_framing_length(const libtrace_packet_t *packet);
48libtrace_linktype_t erf_get_link_type(const libtrace_packet_t *packet);
49libtrace_direction_t erf_get_direction(const libtrace_packet_t *packet);
50libtrace_direction_t erf_set_direction(libtrace_packet_t *packet, libtrace_direction_t direction);
51uint64_t erf_get_erf_timestamp(const libtrace_packet_t *packet);
52int erf_get_capture_length(const libtrace_packet_t *packet);
53int erf_get_wire_length(const libtrace_packet_t *packet);
54size_t erf_set_capture_length(libtrace_packet_t *packet, size_t size);
55int erf_is_color_type(uint8_t erf_type);
56
57#endif
Note: See TracBrowser for help on using the repository browser.