예제 #1
0
    def sendRREQ(self, macDestiny):

        #Inicializa uma sequencia e coloca o seu ID como primeiro
        sequence = []
        sequence.append(self._linkLayer._phyLayer._id)
        sequenceNumber = random.randint(1, 128733788)
        self._listRREQs.append(sequenceNumber)

        #Cria um pacote e inseri o cabeçalho da camada de rede
        header = Header("NETWORK", self._linkLayer._phyLayer._id, macDestiny,
                        -1, 0, sequenceNumber, sequence)
        package = Package("", 1)
        package.addHeader(header)

        print("ID", self._linkLayer._phyLayer._id,
              ": Enviando um RREQ com destino para ", header._macDestiny)
        self._linkLayer.addPackage(package, -1)
예제 #2
0
    def sendRREP(self, macDestiny, sequence, route):

        #Cria um pacote e inseri o cabeçalho da camada de rede
        header = Header("NETWORK", self._linkLayer._phyLayer._id, macDestiny,
                        -1, 1, -1, sequence)
        package = Package(route, 1)
        package.addHeader(header)

        print("ID", self._linkLayer._phyLayer._id,
              ": Enviando um RREP com destino para ", header._macDestiny)

        #Define a rota requisitada
        for index, mac in enumerate(header._sequenceList):
            if (mac == self._linkLayer._phyLayer._id):
                nextDestiny = header._sequenceList[index + 1]
                nextPackage = package
                self._linkLayer.addPackage(nextPackage, nextDestiny)
                break
예제 #3
0
 def addPackage(self, macDestiny, message, time):
     package = Package(message, time)
     header = Header("NETWORK", self._linkLayer._phyLayer._id, macDestiny,
                     -1, -1, -1, None)
     package.addHeader(header)
     self._listPackages.append(package)