summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--epan/dissectors/packet-erf.c6
-rw-r--r--wiretap/erf.c6
-rw-r--r--wiretap/erf.h20
3 files changed, 27 insertions, 5 deletions
diff --git a/epan/dissectors/packet-erf.c b/epan/dissectors/packet-erf.c
index 6fc972e384..7eac264601 100644
--- a/epan/dissectors/packet-erf.c
+++ b/epan/dissectors/packet-erf.c
@@ -439,6 +439,7 @@ static const value_string erf_type_vals[] = {
{ ERF_TYPE_IPV6 , "IPV6"},
{ ERF_TYPE_RAW_LINK , "RAW_LINK"},
{ ERF_TYPE_INFINIBAND_LINK , "INFINIBAND_LINK"},
+ { ERF_TYPE_META , "META"},
{0, NULL}
};
@@ -1460,6 +1461,11 @@ dissect_erf(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
}
break;
+ case ERF_TYPE_META:
+ /* use data dissector for now */
+ call_dissector(data_handle, tvb, pinfo, tree);
+ break;
+
default:
break;
} /* erf type */
diff --git a/wiretap/erf.c b/wiretap/erf.c
index a00eaed0eb..f38b8a4e16 100644
--- a/wiretap/erf.c
+++ b/wiretap/erf.c
@@ -168,11 +168,6 @@ extern wtap_open_return_val erf_open(wtap *wth, int *err, gchar **err_info)
return WTAP_OPEN_NOT_MINE;
}
- /* The ERF_TYPE_MAX is the PAD record, but the last used type is ERF_TYPE_INFINIBAND_LINK */
- if ((header.type & 0x7F) > ERF_TYPE_INFINIBAND_LINK) {
- return WTAP_OPEN_NOT_MINE;
- }
-
if ((ts = pletoh64(&header.ts)) < prevts) {
/* reassembled AALx records may not be in time order, also records are not in strict time order between physical interfaces, so allow 1 sec fudge */
if ( ((prevts-ts)>>32) > 1 ) {
@@ -429,6 +424,7 @@ static gboolean erf_read_header(FILE_T fh,
case ERF_TYPE_RAW_LINK:
case ERF_TYPE_INFINIBAND:
case ERF_TYPE_INFINIBAND_LINK:
+ case ERF_TYPE_META:
#if 0
{
phdr->len = g_htons(erf_header->wlen);
diff --git a/wiretap/erf.h b/wiretap/erf.h
index 20d7303f54..6db215d6fa 100644
--- a/wiretap/erf.h
+++ b/wiretap/erf.h
@@ -65,7 +65,27 @@
#define ERF_TYPE_IPV6 23
#define ERF_TYPE_RAW_LINK 24
#define ERF_TYPE_INFINIBAND_LINK 25
+#define ERF_TYPE_META 27
+/* Record types reserved for local and internal use */
+#define ERF_TYPE_INTERNAL0 32
+#define ERF_TYPE_INTERNAL1 33
+#define ERF_TYPE_INTERNAL2 34
+#define ERF_TYPE_INTERNAL3 35
+#define ERF_TYPE_INTERNAL4 36
+#define ERF_TYPE_INTERNAL5 37
+#define ERF_TYPE_INTERNAL6 38
+#define ERF_TYPE_INTERNAL7 39
+#define ERF_TYPE_INTERNAL8 40
+#define ERF_TYPE_INTERNAL9 41
+#define ERF_TYPE_INTERNAL10 42
+#define ERF_TYPE_INTERNAL11 43
+#define ERF_TYPE_INTERNAL12 44
+#define ERF_TYPE_INTERNAL13 45
+#define ERF_TYPE_INTERNAL14 46
+#define ERF_TYPE_INTERNAL15 47
+
+/* Pad records */
#define ERF_TYPE_PAD 48
#define ERF_TYPE_MIN 1 /* sanity checking */