2017-07-10 8 views
0

J'essaie d'implémenter une méthode qui bloque un flux spécifique et par conséquent des paquets. Je lui passe le datapath, l'ip source et l'ip de destination. L'application détecte le flux, mais le flux continue à fonctionner, la source envoie des données et l'hôte dest le reçoit. Qu'est-ce que je fais mal?Contrôleur ryu de paquets de flux/chutes de blocs

def drop_flow(self, datapath, ip_src, ip_dst): 
    ofproto = datapath.ofproto 
    parser = datapath.ofproto_parser 

    match = parser.OFPMatch(ipv4_src=ip_src, 
          ipv4_dst=ip_dst) 

    inst = [parser.OFPInstructionActions(ofproto.OFPIT_APPLY_ACTIONS, [])] 
    mod = parser.OFPFlowMod(datapath=datapath, 
          command=ofproto.OFPFC_DELETE, 
          out_port=ofproto.OFPP_ANY, 
          out_group=ofproto.OFPG_ANY, 
          match=match, instructions=inst) 

    print "deleting flow entries in the table " 
    datapath.send_msg(mod) 

Merci!

Répondre

0

Peut-être que vous devriez faire ceci:

mod = parser.OFPFlowMod(datapath=datapath, 
         out_port=ofproto.OFPP_ANY, 
         out_group=ofproto.OFPG_ANY, 
         match=match, instructions=inst) 

La commande que vous avez donnée est de supprimer le flux, et que vous souhaitez l'ajouter au commutateur, est-ce pas?

J'espère que ça aide!