Hi Ben,

Thank you for your reply. And I am sorry that I post this question twice. I
just clicked Send but there was nothing happened so I just re-click it
again. Really sorry for that.

*ovs-appctl ofproto/trace *gives me the answer.

mininet> *sh ovs-ofctl add-flow s1 in_port=1,actions=output:1 -O OpenFlow13*
mininet>
mininet> sh ovs-appctl ofproto/trace s1 in_port=1
Flow:
metadata=0,in_port=1,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_type=0x0000
Rule: table=0 cookie=0 in_port=1
OpenFlow actions=output:1
*skipping output to input port*

Final flow: unchanged
Relevant fields: skb_priority=0,in_port=1,dl_type=0x0000,nw_frag=no
*Datapath actions: drop*

And actually, there is one specific port reserved for output to input port ,*
no need* to use* output:1*, below is information about this port in
*openflow-spec-v1.3.0*

*OFPP_IN_PORT = 0xfffffff8, /* Send the packet out the input port. This
reserved port must be explicitly used in order to send back out of the
input port. */ *

So I just changed the *actions=output:1* into *actions=in_port*, and it
works!

mininet> *sh ovs-ofctl add-flow s1 in_port=2,actions=in_port -O OpenFlow13*
mininet>
mininet>
mininet> sh ovs-appctl ofproto/trace s1 in_port=2
Flow:
metadata=0,in_port=2,vlan_tci=0x0000,dl_src=00:00:00:00:00:00,dl_dst=00:00:00:00:00:00,dl_type=0x0000
Rule: table=0 cookie=0 in_port=2
*OpenFlow actions=IN_PORT*

Final flow: unchanged
Relevant fields: skb_priority=0,in_port=2,dl_type=0x0000,nw_frag=no
*Datapath actions: 6*


Thanks again!

Shawn Lin


On Wed, Jul 13, 2016 at 12:12 PM, Ben Pfaff <b...@ovn.org> wrote:

> On Mon, Jul 11, 2016 at 09:41:36PM +0800, Shawn Lin wrote:
> > I am trying to use OpenvSwitch to exchange the source IP address and the
> > destination IP address of a packet, and then forward this packet out to a
> > host.
> >
> > I do this test in *Mininet(2.2.1) *and *OpenvSwitch(2.0.2)*, And below is
> > the command:
> >
> > Topology in Mininet is quite simple,
> > *h1-s1-h2*
> >
> > I use this command to add the flow.
> > *mininet> sh ovs-ofctl add-flow s1
> >
> dl_type=0x0800,dl_type=0x0800,nw_dst=10.0.0.2,actions=mod_dl_src:00:00:00:00:00:02,mod_dl_dst:00:00:00:00:00:01,mod_nw_src:10.0.0.2,mod_nw_dst=10.0.0.1,output:1
> > -O OpenFlow13*
> >
> > And then I could see the result when I show flows in the switch s1,
> >
> > *mininet>* *sh ovs-ofctl dump-flows s1 -O OpenFlow13*
> > OFPST_FLOW reply (OF1.3) (xid=0x2):
> >
> >
> >
> > * cookie=0x0, duration=418.133s, table=0, n_packets=1813,
> n_bytes=2731190,
> > ip,nw_dst=10.0.0.2
> >
> actions=mod_dl_src:00:00:00:00:00:02,mod_dl_dst:00:00:00:00:00:01,mod_nw_src:10.0.0.2,mod_nw_dst:10.0.0.1,output:1
> >      *
> > * In my understanding, this flow would change the packets' src IP, dst
> IP,
> > src Mac, dst Mac, and then forward it out port 1 which is s1-eth1.  *
> >
> >  cookie=0x2b0000000000000f, duration=2982.739s, table=0, n_packets=1,
> > n_bytes=42, priority=2,in_port=1 actions=output:2,CONTROLLER:65535
> >
> >
> >  cookie=0x2b0000000000000e, duration=2982.739s, table=0, n_packets=1,
> > n_bytes=42, priority=2,in_port=2 actions=output:1,CONTROLLER:65535
> >
> >
> >  cookie=0x2b0000000000000f, duration=2986.774s, table=0, n_packets=0,
> > n_bytes=0, priority=100,dl_type=0x88cc actions=CONTROLLER:65535
> >
> >
> >  cookie=0x2b0000000000000f, duration=2986.774s, table=0, n_packets=0,
> > n_bytes=0, priority=0 actions=drop
> >
> > And then in terminal, I use tcpdump to catch the packets through s1-eth1,
> > *tcpdump -i s1-eth1 -w result.pcap*
> >
> > I scan all packets and find that these packets are all with *src IP
> > 10.0.0.1, and dst IP 10.0.0.2.*
> > At the same time, the *n_bytes* in flow shows that this flow has been
> hit.
> >
> > So Am I doing some wrong configuration? Or which version of OVS support
> > this feature? Any suggestions or comments are welcomed!
>
> Every version of OVS ever released supports this feature.  Your flow
> looks OK to me.  It's hard to guess what's going wrong.  You might want
> to use "ovs-appctl ofproto/trace" or "ovs-dpctl dump-flows" to try to
> peer deeper into what's going on.
>
_______________________________________________
discuss mailing list
discuss@openvswitch.org
http://openvswitch.org/mailman/listinfo/discuss

Reply via email to