In [ ]:
ipfix_file = "../test/mawi.ipfix"

In [ ]:
import ipfix
import qof
import pandas as pd

ipfix.ie.use_iana_default() # loads IANA default IEs from module core definitions
ipfix.ie.use_5103_default() # loads reverse IEs for RFC5103 biflows
ipfix.ie.use_specfile("qof.iespec") # loads enterprise-specific IEs for QoF

ipfix.types.use_integer_ipv4() # accelerate dataframe processing of per-IP stuff

In [ ]:
df = qof.dataframe_from_ipfix(ipfix_file, ("flowStartMilliseconds", "flowEndMilliseconds",
                                           "tcpSequenceJumpCount", "reverseTcpSequenceJumpCount",
                                           "tcpRetransmitCount", "reverseTcpRetransmitCount",
                                           "tcpLossEventCount", "reverseTcpLossEventCount",
                                           "packetDeltaCount", "reversePacketDeltaCount", 
                                           "transportPacketDeltaCount", "reverseTransportPacketDeltaCount",
                                           "octetDeltaCount", "reverseOctetDeltaCount",
                                           "transportOctetDeltaCount", "reverseTransportOctetDeltaCount",
                                           "tcpSequenceCount", "reverseTcpSequenceCount",
                                           "tcpSequenceLossCount", "reverseTcpSequenceLossCount"))

In [ ]:
print ("Total flows:         "+str(len(df)))
df = qof.drop_lossy(df)
print ("  of which lossless: "+str(len(df)))

In [ ]:
(df["tcpSequenceCount"] / df["transportOctetDeltaCount"]).hist(bins=100, range=(0.9,1))