**This is automatically generated documentation.** Edit after the "[[#COMMENTS|COMMENTS]]" heading; changes to the main body will be lost. ====== ToHost Element Documentation ====== ===== NAME ===== **ToHost** -- Click element; sends packets to Linux ===== SYNOPSIS ===== ToHost([DEVNAME, //keywords//]) **Ports**: 1 input, no outputs\\ **Processing**: push\\ **Drivers**: linuxmodule\\ **Package**: linuxmodule (core)\\ ===== DESCRIPTION ===== Hands packets to the ordinary Linux protocol stack. You should probably give Linux IP packets addressed to the local machine (including broadcasts), and a copy of each ARP reply. If DEVNAME is present, each packet is marked to appear as if it originated from that network device -- that is, its device annotation is set to that device. As with [[ToDevice]], DEVNAME can be an Ethernet address. If TYPE is ETHER, then expects packets with Ethernet headers; this is the default. If TYPE is IP, then expects packets with raw IP headers. This element is only available in the Linux kernel module. Keyword arguments are: ? **SNIFFERS** ! Boolean. If true, then ToHost will send packets to the kernel so that only tcpdump(1), and other sniffer programs on the host, will receive them. Default is false. ? **TYPE** ! Type of interface. Choices are ETHER and IP. Default is ETHER. ? **QUIET** ! Boolean. If true, then suppress device up/down messages. Default is false. ? **ALLOW_NONEXISTENT** ! Allow nonexistent devices. If true, and no device named DEVNAME exists when the router is initialized, then ToHost will report a warning (rather than an error). Later, while the router is running, if a device named DEVNAME appears, ToHost will seamlessly begin using it. Default is false. ? **UP_CALL** ! Write handler. If supplied, this handler is called when the device or link comes up. ? **DOWN_CALL** ! Write handler. If supplied, this handler is called when the device or link goes down. ===== NOTES ===== Linux expects packets to have valid device annotations and packet type annotations. ToHost will not pass packets with null device annotations to Linux! Use the `''ToHost(eth0)''%%'%% syntax to supply a device annotation. Most packets generated by Click will have null device annotations -- for example, [[InfiniteSource]] makes packets with null device annotations. Exceptions include [[FromDevice]] and [[PollDevice]]. Linux depends on packet type annotations as well. It will generally only process packets with packet type annotation HOST. (Other packets, such as packets originally sent to some other host, are sent only to packet sniffers like tcpdump(1). Linux will handle some BROADCAST and MULTICAST packets.) By default, packets made by Click have HOST packet type annotations. However, if you modified a packet that you originally got from some device, that packet may have some other type. Use [[SetPacketType]] to reset the type appropriately. Finally, IPv4 packets should have a destination IP address corresponding to DEVNAME, and a routable source address. Otherwise Linux will silently drop the packets. ===== ELEMENT HANDLERS ===== ? **drops (read-only)** ! Reports the number of packets ToHost has dropped because they had a null device annotation. ===== SEE ALSO ===== [[ToHostSniffers]], [[FromHost]], [[FromDevice]], [[PollDevice]], [[ToDevice]], [[SetPacketType]], [[InfiniteSource]] Generated by 'click-elem2man' from '../elements/linuxmodule/tohost.hh' on 7/Mar/2009. ===== COMMENTS =====