public static void toLayer2(RoutinePacket pkt){
        
        Random rn = new Random();
        float timestamp = lastime + 2 * (rn.nextFloat() % 1);
        boolean directConnected[][] = new boolean[4][4];
        //Verificando na layer2 quem está conectado diretamente a quen
        //Conectividade do nó 0 para os demais      
        directConnected[0][0]=true;
        directConnected[0][1]=true;  
        directConnected[0][2]=true;
        directConnected[0][3]=true;
        
        
        //Conectividade do nó 1 para os demais
        directConnected[1][0]=true;  
        directConnected[1][1]=true; 
        directConnected[1][2]=true;
        directConnected[1][3]=false; //não ligados diretamente
        
        //Conectividade do nó 2 para os demais
        directConnected[2][0]=true; 
        directConnected[2][1]=true;  
        directConnected[2][2]=true;
        directConnected[2][3]=true;
        
        //Conectividade do nó 3 para os demais        
        directConnected[3][0]=true;  
        directConnected[3][1]=false; 
        directConnected[3][2]=true;
        directConnected[3][3]=true;
        
        //  verifica se não tem nenhum problema com a origem e destino dos pacotes 
        //Caso os pacotes de fonte estejam fora do intervalo (0~3)
        if (pkt.getSourceid() <0 || pkt.getSourceid() >3)
        {
          System.out.printf("WARNING: illegal source id in your packet, ignoring packet!\n");
          return;
        }
        
        //Caso os pacotes de destino estejam fora do intervalo (0~3)
        if (pkt.getDestID() <0 || pkt.getDestID() >3) 
        {
          System.out.printf("WARNING: illegal dest id in your packet, ignoring packet!\n");
          return;
        }
        
        //caso destino e fonte sejam o mesmo
        if (pkt.getSourceid() == pkt.getDestID())  {
          System.out.printf("WARNING: source and destination id's the same, ignoring packet!\n");
          return;
        }
        
        //Caso fonte e destino não estejam conectados
        if(directConnected[pkt.getSourceid()][pkt.getDestID()] == false)
        {
          System.out.printf("WARNING: source and destination not connected, ignoring packet!\n");  
          return;
        }
        
       //Inicializa os valores ao pacote que irá para a lista de eventos
       myRoutinePacket.create(pkt.getSourceid(), pkt.getDestID(), pkt.getMinCost());         
       //adiciona o evento para a lista de eventos
              
       NetworkEventList.add(new NetworkEvent(timestamp, FROM_LAYER2, myRoutinePacket.getDestID(), myRoutinePacket));
       
       
       //Debug
       if(TRACE>=2){
           System.out.print("DEBUG: Routine Packet sent to layer2. Source: Node"+myRoutinePacket.getSourceid()+" Destination: Node" +myRoutinePacket.getDestID());
           System.out.println(" Data: [ "+ myRoutinePacket.getMinCost()[0]+" "+ myRoutinePacket.getMinCost()[1]+" "+ myRoutinePacket.getMinCost()[2]+" "+ myRoutinePacket.getMinCost()[3]+" ]" + " Timestamp: "+timestamp);
       }    
    }