The problem is that OVS first forwards ARP request(packet_in) to the
controller and all packet_in messages include (ARP). it seems that node is
waiting for the ARP reply and then it will send ICMP to the controller.

But I think in the mentioned topology, the first packet_in must include
ICMP and then the controller must install rules via flow_mod, then since
OVS has the flow rules and the next hop, it will broadcast ARP to get the
MAC of next hop.







On Mon, Apr 16, 2018 at 2:28 PM, Ben Pfaff <b...@ovn.org> wrote:

> The way you describe the problem confuses me.  As I read your
> description, when OVS processes an ICMP packet, it forwards an ARP
> packet to the controller.  OVS processes one packet at a time in an
> almost-stateless way, so this is not really possible: as OVS processing
> an ICMP packet, it only chooses how to deal with that ICMP packet; it
> cannot easily influence the processing of ARP packets.
>
> On Sat, Apr 14, 2018 at 01:50:12PM -0400, Sh j wrote:
> > Thank you very much for your helpful explanation.
> >
> >
> > I have another question.
> >
> > When a ping packet is generated from node1 to node3 (the mentioned
> > topology), in the next step, OVS1 is supposed to check its own flow table
> > to see if there are any flow rules for this ICMP(IP) packet, and since
> the
> > default flow rules installed by the controller tells that send the packet
> > to the controller, the next packet_in message should include ICMP
> message.
> >
> > But instead of that OVS1 forwards ARP request in the packet_in message. I
> > am confused about this part. When I trace the packet, the action is
> sending
> > to the controller. But somehow OVS1 skips this ICMP messages and goes to
> > the ARP.  I suppose sending ARP happens when nodes know they are in
> one-hop
> > neighbors. But in this case, nodes do not know the flow rules (routing
> path
> > and next hop) and have to send packet_in (ICMP) to the controller. I do
> not
> > know why these ARP are generating.
> >
> > I am using CORE emulator to emulate this network. So I think I should
> check
> > the Linux Kernel.  Could you let me know if you have any suggestion about
> > the configuration?
> >
> > Thank you
> >
> > On Tue, Apr 10, 2018 at 6:27 PM, Ben Pfaff <b...@ovn.org> wrote:
> >
> > > I think there's some confusion here.  OVS doesn't originate ARP
> > > requests.  It only forwards ARP requests generated by some other
> > > software, such as the Linux kernel.  If you don't want OVS to pass ARP
> > > requests to the controller via packet_in, then you can either configure
> > > the software that generates them not to do so, or you can configure OVS
> > > (via the controller) to forward them without generating a packet_in.
> > >
> > > On Tue, Apr 10, 2018 at 05:54:36PM -0400, Sh j wrote:
> > > > Thank you. I fixed the problem through the flow table installed by
> ONOS
> > > and
> > > > I do not see ARP broadcasts anymore.
> > > >
> > > >
> > > >
> > > >
> > > > I have another question about packet_in messages to the controller.
> > > Before
> > > > that, I will explain about my topology. I asked related questions
> before
> > > > but I still have a problem.
> > > >
> > > >
> > > > Usually, in the topology, OVS connected to hosts and they help hosts
> to
> > > > communicate with each other. I prefer not to have any host and all
> nodes
> > > in
> > > > my network acts as forwarding elements (running OVS) (especially in
> case
> > > of
> > > > wireless networks, it is easier to add mobility to nodes without
> hosts).
> > > >
> > > > After having this topology (OVS1--OVS2---OVS3), with the following
> > > > configuration:
> > > >
> > > > OVS1(eth0) ------- (eth0)OVS2
> > > >
> > > > ovs-vsctl add-br brx
> > > > ovs-vsctl add-port brx ethx
> > > > ip addr flush dev ethx
> > > > ip addr add 10.0.0.x/16 dev brx
> > > > ip link set brx up
> > > >
> > > >
> > > > when 10.0.0.1 (br1) pings 10.0.0.2(br2), node1 sends a packet_in
> > > > message(ICMP) to the controller(ONOS).
> > > >
> > > > But, when 10.0.0.1(br1) pings 10.0.0.3(br3), node1 sends a packet_in
> > > > message(ARP) to the controller.
> > > > While I do not except this ARP request to the controller. I am
> expecting
> > > > ICMP message as a packet_in to the controller in the first place,
> after
> > > > that based on the packet_out, node1 is supposed to send the ARP
> request
> > > for
> > > > the next hop. I do not know why OVS sends this ARP requests.
> > > >
> > > >  In this case, which part of the network needs to change? should I
> change
> > > > the configuration of OVS and how?
> > > >
> > > > Thank you in advance
> > > >
> > > >
> > > >
> > > >
> > > > On Tue, Apr 10, 2018 at 4:27 PM, Ben Pfaff <b...@ovn.org> wrote:
> > > >
> > > > > On Mon, Apr 09, 2018 at 01:09:37PM -0400, Sh j wrote:
> > > > > > Hello,
> > > > > >
> > > > > > I have the following topology:
> > > > > >
> > > > > > host1 ----openvswitch1 ----openvswitch2----host2
> > > > > >
> > > > > > and both openvswitches are connected to the ONOS controller.
> > > > > >
> > > > > > The problem is that when host1 ping host2, openvswitch1 sends
> the ARP
> > > > > > request as a packet_in to the controller, Also, it broadcasts
> the ARP
> > > > > > request so that openvswitch2 receives this broadcast.
> > > > > >
> > > > > > Do you have any suggestion how to avoid this ARP broadcast?
> > > > >
> > > > > I would guess that ONOS can control this behavior through the flow
> > > > > table.
> > > > >
> > >
>
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to