From 3cfbc53754ec7f1456a218cf384a72125116cf63 Mon Sep 17 00:00:00 2001 From: Ivan Loskutov Date: Mon, 26 Mar 2012 13:18:28 +0400 Subject: [PATCH] Extend nic_bridge to support internal traffic Fixes #156 --- os/src/server/nic_bridge/component.cc | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/os/src/server/nic_bridge/component.cc b/os/src/server/nic_bridge/component.cc index 52f3a4287..b713da43e 100644 --- a/os/src/server/nic_bridge/component.cc +++ b/os/src/server/nic_bridge/component.cc @@ -55,7 +55,12 @@ bool Session_component::Tx_handler::handle_arp(Ethernet_frame *eth, Genode::size new (eth->data()) Arp_packet(size - sizeof(Ethernet_frame)); if (arp->ethernet_ipv4() && arp->opcode() == Arp_packet::REQUEST) { - arp->src_mac(_mac); + Ipv4_address_node *node = Vlan::vlan()->ip_tree()->first(); + if (node) + node = node->find_by_address(arp->dst_ip()); + if (!node) { + arp->src_mac(_mac); + } } return true; }