Hi

I tried to add an explicit flow entry from POX controller to one of openVswitch.

Issue #1
I could see an entry is added but the matching files are missing.
 
#pox.py py vn_core vn_test     ( these two are my components)


   Is switch: ove dump shows the following 

    XST_FLOW reply (xid=0x4):
           cookie=0x0, duration=4.266s, table=0, n_packets=0, n_bytes=0, 
idle_age=4, actions=NORMAL
    { My match fields are missing}

Issue #2:

 With Le_learning component: My script deletes the flows added by l2 learning 
and further learning does not happen


  - Invoked   - pox.py py forwarding.l2_learning vn_core vn_test


   - In switch #1, send a ping pkt to one my VMs
   - I could see the following flow entries are added
   

virtunetx3@vnetx3:~$ ovs-dump
NXST_FLOW reply (xid=0x4):
 cookie=0x0,
 duration=2.572s, table=0, n_packets=1, n_bytes=60, idle_timeout=10, 
hard_timeout=30, idle_age=2, 
priority=65535,arp,in_port=2,vlan_tci=0x0000,dl_src=08:00:27:d9:77:cd,dl_dst=92:76:cc:22:32:e9,arp_spa=192.167.20.10,arp_tpa=192.167.20.253,arp_op=2
 actions=output:4
 cookie=0x0, duration=2.537s, table=0, n_packets=1,
 n_bytes=98, idle_timeout=10, hard_timeout=30, idle_age=2, 
priority=65535,icmp,in_port=2,vlan_tci=0x0000,dl_src=08:00:27:d9:77:cd,dl_dst=92:76:cc:22:32:e9,nw_src=192.167.20.10,nw_dst=192.167.20.253,nw_tos=0,icmp_type=0,icmp_code=0
 actions=output:4
 cookie=0x0, duration=2.567s, table=0, n_packets=1,
 n_bytes=98, idle_timeout=10, hard_timeout=30, idle_age=2, 
priority=65535,icmp,in_port=4,vlan_tci=0x0000,dl_src=92:76:cc:22:32:e9,dl_dst=08:00:27:d9:77:cd,nw_src=192.167.20.253,nw_dst=192.167.20.10,nw_tos=0,icmp_type=8,icmp_code=0
 actions=output:2

  - But when I run my script that adds own entry, it erases the the above 
entries and addd mine
 XST_FLOW reply (xid=0x4):
 cookie=0x0, duration=4.266s, table=0, n_packets=0, n_bytes=0, idle_age=4, 
actions=NORMAL


   - After wards, I could not ping to me dest VM anymore.

My expectations:

   My flow entry should be added on top of the existing ones.
   My objective is to add a flow for this match that is treated as normal pkt 
for now - switching. But
   I can collect the stats specifc to this flow. Later I intend to redirect the 
packet to another server overiding l2 forwarding


Plase hlp me to find out what I am missing.

Thanks in advance
-Senthil


My code:

def _vn_addNormalFlow(self, vn_context):
    print 'Adding VN flow for dpid %s' %(vn_context["dpid"])
 
    msg = of.ofp_flow_mod()
    msg.flags = of.OFPFF_CHECK_OVERLAP

    msg.command = of.OFPFC_ADD
    msg.match.nw_src = IPAddr(vn_context["src_ip"])
   # msg.match.nw_src = IPAddr("192.167.10.10")
   # msg.match.nw_dst = IPAddr("192.167.20.10")
    msg.match.nw_dst = IPAddr(vn_context["dst_ip"])
    msg.match.nw_proto = vn_context["proto"]
    msg.match.tp_dst = vn_context["tcp_dst"]

    msg.actions.append(of.ofp_action_output(port = of.OFPP_NORMAL))
 #   core.openflow.sendToDPID(str_to_dpid(vn_context["dpid"]),msg)
    con = core.openflow.getConnection(str_to_dpid(vn_context["dpid"]))
    con.send(msg)
    return True

Reply via email to