|
|
|
@ -64,12 +64,13 @@ int DecodeERSPAN(ThreadVars *tv, DecodeThreadVars *dtv, Packet *p, uint8_t *pkt,
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (vlan_id > 0) {
|
|
|
|
if (vlan_id > 0 && dtv->vlan_disabled == 0) {
|
|
|
|
if (p->vlan_idx >= 2) {
|
|
|
|
if (p->vlan_idx >= 2) {
|
|
|
|
ENGINE_SET_EVENT(p,ERSPAN_TOO_MANY_VLAN_LAYERS);
|
|
|
|
ENGINE_SET_EVENT(p,ERSPAN_TOO_MANY_VLAN_LAYERS);
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
return TM_ECODE_FAILED;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
p->vlan_id[p->vlan_idx++] = vlan_id;
|
|
|
|
p->vlan_id[p->vlan_idx] = vlan_id;
|
|
|
|
|
|
|
|
p->vlan_idx++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return DecodeEthernet(tv, dtv, p, pkt + sizeof(ErspanHdr), len - sizeof(ErspanHdr), pq);
|
|
|
|
return DecodeEthernet(tv, dtv, p, pkt + sizeof(ErspanHdr), len - sizeof(ErspanHdr), pq);
|
|
|
|
|