Exemplo n.º 1
0
    def __makeflow(self):
        while True:
            # if haveIPAddrGen:
            #     srcip = str(ipaddr.IPv4Address(ipaddrgen.generate_addressv4(self.ipsrcgen)))
            #     dstip = str(ipaddr.IPv4Address(ipaddrgen.generate_addressv4(self.ipdstgen)))
            # else:
            #     # srcip = str(ipaddr.IPAddress(int(self.srcnet) + random.randint(0,self.srcnet.numhosts-1)))
            #     # dstip = str(ipaddr.IPAddress(int(self.dstnet) + random.randint(0,self.dstnet.numhosts-1)))
            #     # srcip = str(ipaddr.IPAddress(int(self.srcnet) + random.randint(0, 2)))
            #     # dstip = str(ipaddr.IPAddress(int(self.dstnet) + random.randint(0, 2)))
            srcip = next(self.srcnet)
            dstip = next(self.dstnet)

            ipproto = next(self.ipproto)
            sport = next(self.srcports)
            dport = next(self.dstports)
            fsize = int(next(self.flowsizerv))
            fstarttime = float(next(self.flowstarttimerv))

            #networkControlLogic2object.trafficNum[int(srcip.split('.')[3])-1][int(dstip.split('.')[3])-1]+=1

            flet = Flowlet(FlowIdent(srcip, dstip, ipproto, sport, dport), bytes=fsize, time=fstarttime)
            try:
                if fsize>ELEPHANTFLOWSIZE:
                    flet.iselephant=True
                    networkControlLogic2object.elephentsNum[int(srcip.split('.')[3])-1][int(dstip.split('.')[3])-1]+=1
                    print "networkControlLogic2object.elephentsNum[",int(srcip.split('.')[3])-1,"][",int(dstip.split('.')[3])-1,"]+=",1,";"
            except:
                print "Error Updating elephentsNum"
                pass

            #print "flettt",
            #print flet
            flet.iptos = next(self.iptosrv)
            if flet.key not in self.activeflows:
                break

        return flet