diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-07-27 21:09:04 +0000 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-07-27 21:09:04 +0000 |
commit | 933245bb5ae26d6672d52c81ce57c2f8a32e2eb5 (patch) | |
tree | b45a7fe0b8ab2ec3195093f0383a992134c1e8f2 /eth-multiplexer/README | |
parent | 12ad6153215578c57db2937648d3fa9612217100 (diff) | |
parent | 21adb5284111190057db245cfc2b54091920c373 (diff) |
Merge branch 'upstream-merged'
Diffstat (limited to 'eth-multiplexer/README')
-rw-r--r-- | eth-multiplexer/README | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/eth-multiplexer/README b/eth-multiplexer/README new file mode 100644 index 00000000..0024a937 --- /dev/null +++ b/eth-multiplexer/README @@ -0,0 +1,27 @@ +[Introduction] + +eth-multiplexer is a network multiplexer. It creates virtual ethernet interface and dispatches the packet to the right user program that opens its virtual interface. It also works as a bridge to connect the real ethernet interface and the virtual ones. + + +[Usage] + +Usage: eth-multiplexer [OPTION...] +Hurd multiplexer server. + + -i, --interface=DEVICE Network interface to use + -?, --help Give this help list + --usage Give a short usage message + -V, --version Print program version + +Mandatory or optional arguments to long options are also mandatory or optional +for any corresponding short options. + + +The '-i' option specifies the network interface the translator sits on. eth-multiplexer can only connect to one network interface and the '-i' option should be only used once. DEVICE is a device file that is created by the devnode translator. + + +[Internal] + +eth-multiplexer implements the server side functions in device.defs, so other programs can access the virtual device as other devices. All information about the virtual interface is kept in the vether_device structure. +When eth-multiplexer gets a packet from a virtual interface (which happens in ds_device_write) or from the real interface (which happens in ethernet_demuxer), it sends the packet to all other interfaces. eth-multipexer has BPF filters for each client. The BPF filter decides whether to deliver the packet. The packet delivery is done by deliver_pack(). There is no filter for the real network interface in eth-multiplexer, so every packet from the virtual interface will be sent to the real interface whose filter will decide the destination of the packet. +eth-multiplexer sets the real interface into the promiscuous mode, so eth-multiplexer can receive the packet with the virtual interface's hardware address from the real interface. |