Implemented ARP PDML Protocol. Removed hardcoded field numbers from IPv4
This commit is contained in:
parent
0347b939b7
commit
a7d28d8a8d
@ -24,6 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>
|
|||||||
#include "protocolmanager.h"
|
#include "protocolmanager.h"
|
||||||
#include "streambase.h"
|
#include "streambase.h"
|
||||||
|
|
||||||
|
#include "arp.pb.h"
|
||||||
#include "eth2.pb.h"
|
#include "eth2.pb.h"
|
||||||
#include "dot3.pb.h"
|
#include "dot3.pb.h"
|
||||||
#include "hexdump.pb.h"
|
#include "hexdump.pb.h"
|
||||||
@ -203,6 +204,7 @@ PdmlReader::PdmlReader(OstProto::StreamConfigList *streams)
|
|||||||
|
|
||||||
factory_.insert("eth", PdmlEthProtocol::createInstance);
|
factory_.insert("eth", PdmlEthProtocol::createInstance);
|
||||||
factory_.insert("ip", PdmlIp4Protocol::createInstance);
|
factory_.insert("ip", PdmlIp4Protocol::createInstance);
|
||||||
|
factory_.insert("arp", PdmlArpProtocol::createInstance);
|
||||||
factory_.insert("ipv6", PdmlIp6Protocol::createInstance);
|
factory_.insert("ipv6", PdmlIp6Protocol::createInstance);
|
||||||
factory_.insert("llc", PdmlLlcProtocol::createInstance);
|
factory_.insert("llc", PdmlLlcProtocol::createInstance);
|
||||||
factory_.insert("ieee8021ad", PdmlSvlanProtocol::createInstance);
|
factory_.insert("ieee8021ad", PdmlSvlanProtocol::createInstance);
|
||||||
@ -1116,6 +1118,30 @@ void PdmlLlcProtocol::postProtocolHandler(OstProto::Protocol *pbProto,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ---------------------------------------------------------- //
|
||||||
|
// PdmlArpProtocol //
|
||||||
|
// ---------------------------------------------------------- //
|
||||||
|
|
||||||
|
PdmlArpProtocol::PdmlArpProtocol()
|
||||||
|
{
|
||||||
|
pdmlProtoName_ = "arp";
|
||||||
|
ostProtoId_ = OstProto::Protocol::kArpFieldNumber;
|
||||||
|
|
||||||
|
fieldMap_.insert("arp.opcode", OstProto::Arp::kOpCodeFieldNumber);
|
||||||
|
fieldMap_.insert("arp.src.hw_mac", OstProto::Arp::kSenderHwAddrFieldNumber);
|
||||||
|
fieldMap_.insert("arp.src.proto_ipv4",
|
||||||
|
OstProto::Arp::kSenderProtoAddrFieldNumber);
|
||||||
|
fieldMap_.insert("arp.dst.hw_mac", OstProto::Arp::kTargetHwAddrFieldNumber);
|
||||||
|
fieldMap_.insert("arp.dst.proto_ipv4",
|
||||||
|
OstProto::Arp::kTargetProtoAddrFieldNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
PdmlDefaultProtocol* PdmlArpProtocol::createInstance()
|
||||||
|
{
|
||||||
|
return new PdmlArpProtocol();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------------------------------------- //
|
// ---------------------------------------------------------- //
|
||||||
// PdmlIp4Protocol //
|
// PdmlIp4Protocol //
|
||||||
// ---------------------------------------------------------- //
|
// ---------------------------------------------------------- //
|
||||||
@ -1125,17 +1151,17 @@ PdmlIp4Protocol::PdmlIp4Protocol()
|
|||||||
pdmlProtoName_ = "ip";
|
pdmlProtoName_ = "ip";
|
||||||
ostProtoId_ = OstProto::Protocol::kIp4FieldNumber;
|
ostProtoId_ = OstProto::Protocol::kIp4FieldNumber;
|
||||||
|
|
||||||
fieldMap_.insert("ip.version", 5);
|
fieldMap_.insert("ip.version", OstProto::Ip4::kVerHdrlenFieldNumber);
|
||||||
fieldMap_.insert("ip.dsfield", 6);
|
fieldMap_.insert("ip.dsfield", OstProto::Ip4::kTosFieldNumber);
|
||||||
fieldMap_.insert("ip.len", 7);
|
fieldMap_.insert("ip.len", OstProto::Ip4::kTotlenFieldNumber);
|
||||||
fieldMap_.insert("ip.id", 8);
|
fieldMap_.insert("ip.id", OstProto::Ip4::kIdFieldNumber);
|
||||||
//fieldMap_.insert("ip.flags", 9);
|
//fieldMap_.insert("ip.flags", OstProto::Ip4::kFlagsFieldNumber);
|
||||||
fieldMap_.insert("ip.frag_offset", 10);
|
fieldMap_.insert("ip.frag_offset", OstProto::Ip4::kFragOfsFieldNumber);
|
||||||
fieldMap_.insert("ip.ttl", 11);
|
fieldMap_.insert("ip.ttl", OstProto::Ip4::kTtlFieldNumber);
|
||||||
fieldMap_.insert("ip.proto", 12);
|
fieldMap_.insert("ip.proto", OstProto::Ip4::kProtoFieldNumber);
|
||||||
fieldMap_.insert("ip.checksum", 13);
|
fieldMap_.insert("ip.checksum", OstProto::Ip4::kCksumFieldNumber);
|
||||||
fieldMap_.insert("ip.src", 14);
|
fieldMap_.insert("ip.src", OstProto::Ip4::kSrcIpFieldNumber);
|
||||||
fieldMap_.insert("ip.dst", 18);
|
fieldMap_.insert("ip.dst", OstProto::Ip4::kDstIpFieldNumber);
|
||||||
}
|
}
|
||||||
|
|
||||||
PdmlDefaultProtocol* PdmlIp4Protocol::createInstance()
|
PdmlDefaultProtocol* PdmlIp4Protocol::createInstance()
|
||||||
|
@ -210,6 +210,14 @@ public:
|
|||||||
OstProto::Stream *stream);
|
OstProto::Stream *stream);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class PdmlArpProtocol : public PdmlDefaultProtocol
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
PdmlArpProtocol();
|
||||||
|
|
||||||
|
static PdmlDefaultProtocol* createInstance();
|
||||||
|
};
|
||||||
|
|
||||||
class PdmlIp4Protocol : public PdmlDefaultProtocol
|
class PdmlIp4Protocol : public PdmlDefaultProtocol
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
Loading…
Reference in New Issue
Block a user