[ovs-dev] [PATCH ovn 03/11] netdev-dummy: Implement ARP responder.
Alex Wang
alexw at nicira.com
Mon Jun 15 06:25:27 UTC 2015
Want to ask, do we need to call 'dummy_packet_conn_send(&dev->conn, buffer,
size);' in the
arp request case? Could this cause problem when there is a loop?
Thanks,
Alex Wang,
On Sun, Jun 14, 2015 at 12:18 PM, Ben Pfaff <blp at nicira.com> wrote:
> This is the only missing piece to make native tunneling work with dummy
> devices for testing purposes.
>
> Signed-off-by: Ben Pfaff <blp at nicira.com>
> ---
> lib/netdev-dummy.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c
> index 4d1ef8a..ff65689 100644
> --- a/lib/netdev-dummy.c
> +++ b/lib/netdev-dummy.c
> @@ -932,6 +932,23 @@ netdev_dummy_send(struct netdev *netdev, int qid
> OVS_UNUSED,
>
> dummy_packet_conn_send(&dev->conn, buffer, size);
>
> + /* Reply to ARP requests for 'dev''s assigned IP address. */
> + if (dev->address.s_addr) {
> + struct dp_packet packet;
> + struct flow flow;
> +
> + dp_packet_use_const(&packet, buffer, size);
> + flow_extract(&packet, &flow);
> + if (flow.dl_type == htons(ETH_TYPE_ARP)
> + && flow.nw_proto == ARP_OP_REQUEST
> + && flow.nw_dst == dev->address.s_addr) {
> + struct dp_packet *reply = dp_packet_new(0);
> + compose_arp(reply, ARP_OP_REPLY, dev->hwaddr, flow.dl_src,
> + false, flow.nw_dst, flow.nw_src);
> + netdev_dummy_queue_packet(dev, reply);
> + }
> + }
> +
> if (dev->tx_pcap) {
> struct dp_packet packet;
>
> --
> 2.1.3
>
> _______________________________________________
> dev mailing list
> dev at openvswitch.org
> http://openvswitch.org/mailman/listinfo/dev
>
More information about the dev
mailing list