def testAdd(self): f1 = Flowlet(self.ident1) f1.pkts = 1 f1.bytes = 1 f2 = copy.copy(f1) f2.pkts = 1 f2.bytes = 1 f1 += f2 self.assertEqual(f1.pkts, 2) self.assertEqual(f1.bytes, 2) self.assertEqual(f2.pkts, 1) self.assertEqual(f2.bytes, 1)
def send_ack_flow(self, flowlet, input_intf): # print "constructing ack flow:", self.name, flowlet, prevnode, destnode, input_intf revident = flowlet.ident.mkreverse() revflet = Flowlet(revident) revflet.srcmac,revflet.dstmac = flowlet.dstmac,flowlet.srcmac revflet.ackflow = True revflet.pkts = flowlet.pkts/2 revflet.bytes = revflet.pkts * 40 revflet.iptos = flowlet.iptos revflet.tcpflags = flowlet.tcpflags revflet.ingress_intf = input_intf revflet.flowstart = fscore().now revflet.flowend = revflet.flowstart destnode = fscore().topology.destnode(self.name, revflet.dstaddr) # self.logger.debug("Injecting reverse flow: {}->{}".format(revflet.srcmac, revflet.dstmac)) self.flowlet_arrival(revflet, self.name, destnode)