mirror of
https://github.com/openvswitch/ovs
synced 2025-09-01 14:55:18 +00:00
netdev-dummy: Implement ARP responder.
This is the only missing piece to make native tunneling work with dummy devices for testing purposes. Signed-off-by: Ben Pfaff <blp@nicira.com> Acked-by: Alex Wang <alexw@nicira.com>
This commit is contained in:
@@ -932,6 +932,23 @@ netdev_dummy_send(struct netdev *netdev, int qid OVS_UNUSED,
|
|||||||
|
|
||||||
dummy_packet_conn_send(&dev->conn, buffer, size);
|
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) {
|
if (dev->tx_pcap) {
|
||||||
struct dp_packet packet;
|
struct dp_packet packet;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user