#!/usr/bin/env python

# disable IPv6 error message
import logging
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *
logging.getLogger("scapy.runtime").setLevel(logging.WARN)
from pprint import pprint

# disable payload parsing (saves two seconds runtime^^)
IP.payload_guess = []

flowset = {}

for p in PcapReader('team15_ex21.pcap'):
    if IP in p:
        src = p[IP].src
        dst = p[IP].dst

        if (src,dst) in flowset:
            i,o = flowset[(src,dst)]
            flowset[(src,dst)] = (i+1,o)
        elif (dst,src) in flowset:
            i,o = flowset[(dst,src)]
            flowset[(dst,src)] = (i,o+1)
        else:
            flowset[(src,dst)] = (1, 0)

largeflows = {}

for flow,counts in flowset.items():
    if counts[0]+counts[1] >= 400:
        largeflows[flow] = counts

pprint(largeflows)
