diff options
-rw-r--r-- | epan/dissectors/packet-erf.c | 6 | ||||
-rw-r--r-- | wiretap/erf.c | 6 | ||||
-rw-r--r-- | wiretap/erf.h | 20 |
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 */ |