FastNetMon uses Cap’N’Proto data serialization protocol for representing our own flow format FastNetMon Flow. You can find current up to date specification below.
@0xa8a892437a5fd28f;
struct SimplePacketType {
source @0 :UInt8;
sampleRatio @1 :UInt32;
srcIp @2 :UInt32;
dstIp @3 :UInt32;
srcIpv6 @4 :Data;
dstIpv6 @5 :Data;
srcMac @26 :Data;
dstMac @27 :Data;
srcAsn @6 :UInt32;
dstAsn @7 :UInt32;
inputInterface @8 :UInt32;
outputInterface @9 :UInt32;
ipProtocolVersion @10 :UInt8;
ttl @11 :UInt8;
sourcePort @12 :UInt16;
destinationPort @13 :UInt16;
protocol @14 :UInt32;
length @15 :UInt64;
ipLength @28 :UInt64;
numberOfPackets @16 :UInt64;
flags @17 :UInt8;
ipFragmented @18 :Bool;
ipDontFragment @19 :Bool;
tsSec @20 :Int64;
tsMsec @21 :Int64;
packetPayloadLength @22 :Int32;
packetPayloadFullLength @23 :UInt32;
packetDirection @24 :UInt8;
agentIpAddress @25 :UInt32;
}
In version 2.0.355 we added fields srcMac, dstMac, ipLength.