diff --git a/os/src/server/nic_bridge/nic.cc b/os/src/server/nic_bridge/nic.cc index 12f41382ae..12f3e3b376 100644 --- a/os/src/server/nic_bridge/nic.cc +++ b/os/src/server/nic_bridge/nic.cc @@ -127,7 +127,8 @@ bool Net::Nic::handle_ip(Ethernet_frame *eth, Genode::size_t size) { Net::Nic::Nic() : _tx_block_alloc(Genode::env()->heap()), - _nic(&_tx_block_alloc, BUF_SIZE, BUF_SIZE) + _nic(&_tx_block_alloc, BUF_SIZE, BUF_SIZE), + _mac(_nic.mac_address().addr) { _nic.rx_channel()->sigh_ready_to_ack(_sink_ack); _nic.rx_channel()->sigh_packet_avail(_sink_submit); diff --git a/os/src/server/nic_bridge/nic.h b/os/src/server/nic_bridge/nic.h index e61fd0b8d5..b93a83dc63 100644 --- a/os/src/server/nic_bridge/nic.h +++ b/os/src/server/nic_bridge/nic.h @@ -34,16 +34,16 @@ class Net::Nic : public Net::Packet_handler BUF_SIZE = ::Nic::Session::QUEUE_SIZE * PACKET_SIZE, }; - ::Nic::Packet_allocator _tx_block_alloc; - ::Nic::Connection _nic; + ::Nic::Packet_allocator _tx_block_alloc; + ::Nic::Connection _nic; + Ethernet_frame::Mac_address _mac; public: Nic(); - ::Nic::Connection *nic() { return &_nic; } - - Ethernet_frame::Mac_address mac() { return _nic.mac_address().addr; } + ::Nic::Connection *nic() { return &_nic; } + Ethernet_frame::Mac_address mac() { return _mac; } /******************************