Mikrotik has a protocol that they name Ethernet over IP (EoIP) which has

nothing to do with IP protocol 97 called EoIP. Instead it is a GRE encapsulation
with Ethertype 0x6400. It sets the GRE version to 1 but doesn't use a sequence
number (in violation of RFC2637). Welcome to the real world.

Change-Id: I3d916f8fc134ef14bcaf0b946a10f7170a9f6a75
Reviewed-on: https://code.wireshark.org/review/14596
Reviewed-by: Jörg Mayer <jmayer@loplof.de>
This commit is contained in:
Joerg Mayer 2016-03-23 20:40:39 +01:00 committed by Jörg Mayer
parent e947d362f8
commit 222d30b340
3 changed files with 34 additions and 31 deletions

View File

@ -33,6 +33,7 @@
#include <epan/capture_dissectors.h>
#include <wsutil/pint.h>
#include "packet-eth.h"
#include "packet-gre.h"
#include "packet-ieee8023.h"
#include "packet-ipx.h"
#include "packet-isl.h"
@ -1053,6 +1054,7 @@ proto_reg_handoff_eth(void)
dissector_add_uint("erf.types.type", ERF_TYPE_ETH, eth_withoutfcs_handle);
dissector_add_uint("chdlc.protocol", ETHERTYPE_ETHBRIDGE, eth_withoutfcs_handle);
dissector_add_uint("gre.proto", ETHERTYPE_ETHBRIDGE, eth_withoutfcs_handle);
dissector_add_uint("gre.proto", GRE_MIKROTIK_EOIP, eth_withoutfcs_handle);
dissector_add_uint("juniper.proto", JUNIPER_PROTO_ETHER, eth_withoutfcs_handle);
dissector_add_uint("sflow_245.header_protocol", SFLOW_245_HEADER_ETHERNET, eth_withoutfcs_handle);
dissector_add_uint("l2tp.pw_type", L2TPv3_PROTOCOL_ETH, eth_withoutfcs_handle);

View File

@ -127,6 +127,7 @@ const value_string gre_typevals[] = {
{ GRE_NHRP, "NHRP"},
{ GRE_ERSPAN_88BE, "ERSPAN"},
{ GRE_ERSPAN_22EB, "ERSPAN"},
{ GRE_MIKROTIK_EOIP, "MIKROTIK EoIP"},
{ ETHERTYPE_IPX, "IPX"},
{ ETHERTYPE_ETHBRIDGE, "Transparent Ethernet bridging" },
{ ETHERTYPE_RAW_FR, "Frame Relay"},

View File

@ -21,39 +21,39 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#define GRE_KEEPALIVE 0x0000
#define GRE_NHRP 0x2001
#define GRE_WCCP 0x883E
#define GRE_ERSPAN_88BE 0x88BE
#define GRE_ERSPAN_22EB 0x22EB
#define GRE_KEEPALIVE 0x0000
#define GRE_NHRP 0x2001
#define GRE_WCCP 0x883E
#define GRE_ERSPAN_88BE 0x88BE
#define GRE_ERSPAN_22EB 0x22EB
#define GRE_MIKROTIK_EOIP 0x6400
/* ************************************************************************* */
/* Aruba GRE Encapulsation ID */
/* ************************************************************************* */
#define GRE_ARUBA_8200 0x8200
#define GRE_ARUBA_8210 0x8210
#define GRE_ARUBA_8220 0x8220
#define GRE_ARUBA_8230 0x8230
#define GRE_ARUBA_8240 0x8240
#define GRE_ARUBA_8250 0x8250
#define GRE_ARUBA_8260 0x8260
#define GRE_ARUBA_8270 0x8270
#define GRE_ARUBA_8280 0x8280
#define GRE_ARUBA_8290 0x8290
#define GRE_ARUBA_82A0 0x82A0
#define GRE_ARUBA_82B0 0x82B0
#define GRE_ARUBA_82C0 0x82C0
#define GRE_ARUBA_82D0 0x82D0
#define GRE_ARUBA_82E0 0x82E0
#define GRE_ARUBA_82F0 0x82F0
#define GRE_ARUBA_8300 0x8300
#define GRE_ARUBA_8310 0x8310
#define GRE_ARUBA_8320 0x8320
#define GRE_ARUBA_8330 0x8330
#define GRE_ARUBA_8340 0x8340
#define GRE_ARUBA_8350 0x8350
#define GRE_ARUBA_8360 0x8360
#define GRE_ARUBA_8370 0x8370
#define GRE_ARUBA_9000 0x9000
#define GRE_ARUBA_8200 0x8200
#define GRE_ARUBA_8210 0x8210
#define GRE_ARUBA_8220 0x8220
#define GRE_ARUBA_8230 0x8230
#define GRE_ARUBA_8240 0x8240
#define GRE_ARUBA_8250 0x8250
#define GRE_ARUBA_8260 0x8260
#define GRE_ARUBA_8270 0x8270
#define GRE_ARUBA_8280 0x8280
#define GRE_ARUBA_8290 0x8290
#define GRE_ARUBA_82A0 0x82A0
#define GRE_ARUBA_82B0 0x82B0
#define GRE_ARUBA_82C0 0x82C0
#define GRE_ARUBA_82D0 0x82D0
#define GRE_ARUBA_82E0 0x82E0
#define GRE_ARUBA_82F0 0x82F0
#define GRE_ARUBA_8300 0x8300
#define GRE_ARUBA_8310 0x8310
#define GRE_ARUBA_8320 0x8320
#define GRE_ARUBA_8330 0x8330
#define GRE_ARUBA_8340 0x8340
#define GRE_ARUBA_8350 0x8350
#define GRE_ARUBA_8360 0x8360
#define GRE_ARUBA_8370 0x8370
#define GRE_ARUBA_9000 0x9000
extern const value_string gre_typevals[];