Please see the second, third, and final entries in the POX FAQ. I also think the second entry you're trying to install has problems (too many actions).
-- Murphy On Dec 17, 2014, at 9:54 AM, chaitanya tanwar <chaitanya.tan...@gmail.com> wrote: > Hi all, > > I am using the following code to insert flowtable entires in switch. I want > to fill two table entries but the following code is only putting the last > one, may be overwriting the previously written. > How to resolve this? > > from pox.core import core > import pox.openflow.libopenflow_01 as of > from pox.lib.revent import * > from pox.lib.util import dpidToStr > from pox.lib.addresses import EthAddr > from collections import namedtuple > from pox.lib.addresses import IPAddr > import os > log = core.getLogger() > class Diversion(EventMixin): > def __init__ (self) : > self.listenTo(core.openflow) > log.debug("Enabling Diversion Module") > def _handle_ConnectionUp (self, event): > msg = of.ofp_flow_mod() > msg1 = of.ofp_flow_mod() > msg.match = of.ofp_match(nw_src = '10.0.0.2',nw_dst = '10.0.0.3') > msg.actions.append(of.ofp_action_nw_addr.set_dst(IPAddr('30.0.0.2'))) > msg.actions.append(of.ofp_action_output(port = 3)) > msg.priority = 100 > event.connection.send(msg) > msg.match = of.ofp_match(nw_dst = '30.0.0.2') > msg.actions.append(of.ofp_action_output(port = 1)) > msg.priority = 100 > event.connection.send(msg) > log.debug(" rules installed on %s", dpidToStr(event.dpid)) > def launch(): > core.registerNew(Diversion) > > Thanks in advance. > > > Best Regards.