genode/os/src/server/nic_bridge
Stefan Kalkowski 8fae7131c8 Unify buffer sizes of RX and TX in nic_session
In fact, the sizes were the same the whole time, but by using
the same enum in both cases to instantiate the Packet_stream_tx
and Packet_stream_rx members of the e.g. RPC object, it allows
for more flexible generalization between e.g. source or, sink
objects, when programming event-driven, and implementing generic
handlers for their signals.
2013-06-12 11:35:13 +02:00
..
address_node.cc Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
address_node.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
avl_safe.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
component.cc nic_bridge: drop 'gratuitous ARP' messages 2013-04-08 18:48:40 +02:00
component.h nic_bridge: Add static IP address configuration 2013-01-24 11:35:56 +01:00
list_safe.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
mac.cc Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
mac.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
main.cc Unify buffer sizes of RX and TX in nic_session 2013-06-12 11:35:13 +02:00
packet_handler.cc Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
packet_handler.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
README Make nic_bridge's MAC address range configurable 2012-10-24 16:39:02 +02:00
target.mk Merge base libraries into a single library 2013-02-19 14:45:55 +01:00
vlan.cc Update copyright headers to 2013 2013-01-10 21:44:47 +01:00
vlan.h Update copyright headers to 2013 2013-01-10 21:44:47 +01:00

The nic_bridge provides multiple sessions of the 'Nic' service while
using a single 'Nic' session for forwarding requests. For proper working
it implements some kind of the 'proxy arp' protocol (rfc1027). That
means it allocates a MAC address for each client. Whenever a client
sends a packet it changes the sender MAC address to the one it hold
available for the client. Moreover, it monitors DHCP packets, and
tracks which IP address is used by which client. Whenever ARP packets
come from the outside it will answer them with the corresponding MAC
address.

By adding the following attribute to the 'nic_bridge' config node:

! <config mac="02:02:02:02:02:00"/>

one can define the first MAC address from which the nic_brigde
will allocate MACs for it's clients. Note: that the least relevant
byte will be ignored always starting from 0.