def start_monitoring(self): self.monitors = dict() for net in self.oracle.get_networks().values(): b = BpfBuilder() b.require_protocol('ip') b.require_protocol('udp') m = Monitor(net.name, net.name + '-eth0', b.compile()) self.monitors[net] = m for m in self.monitors.values(): m.start() time.sleep(1)
def evaluate_monitoring(self): res = dict() for (net, m) in self.monitors.iteritems(): b = BpfBuilder() b.include_src_subnets(net.recv_from_src) b.include_dst_subnets(net.recv_to_dst) accepted = m.evaluate(b.compile()) b = BpfBuilder() b.exclude_src_subnets(net.recv_from_src) b.exclude_dst_subnets(net.recv_to_dst) rejected = m.evaluate(b.compile()) res[net.name] = (accepted, rejected) return res