decode/gre: decode arp packets

pull/11086/head
Giuseppe Longo 1 year ago committed by Victor Julien
parent 8a171c9d74
commit b728916ca6

@ -274,6 +274,16 @@ int DecodeGRE(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p, const uint8_t *p
break;
}
case ETHERNET_TYPE_ARP: {
Packet *tp = PacketTunnelPktSetup(
tv, dtv, p, pkt + header_len, len - header_len, DECODE_TUNNEL_ARP);
if (tp != NULL) {
PKT_SET_SRC(tp, PKT_SRC_DECODER_GRE);
PacketEnqueueNoLock(&tv->decode_pq, tp);
}
break;
}
default:
return TM_ECODE_OK;
}

@ -61,6 +61,7 @@
#include "decode-geneve.h"
#include "decode-erspan.h"
#include "decode-teredo.h"
#include "decode-arp.h"
#include "defrag-hash.h"
@ -177,6 +178,8 @@ static int DecodeTunnel(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p, const
return DecodeERSPANTypeI(tv, dtv, p, pkt, len);
case DECODE_TUNNEL_NSH:
return DecodeNSH(tv, dtv, p, pkt, len);
case DECODE_TUNNEL_ARP:
return DecodeARP(tv, dtv, p, pkt, len);
default:
SCLogDebug("FIXME: DecodeTunnel: protocol %" PRIu32 " not supported.", proto);
break;

@ -1091,6 +1091,7 @@ enum DecodeTunnelProto {
DECODE_TUNNEL_IPV6_TEREDO, /**< separate protocol for stricter error handling */
DECODE_TUNNEL_PPP,
DECODE_TUNNEL_NSH,
DECODE_TUNNEL_ARP,
DECODE_TUNNEL_UNSET
};

Loading…
Cancel
Save