**This is automatically generated documentation.** Edit after the "[[#COMMENTS|COMMENTS]]" heading; changes to the main body will be lost. ====== ARPQuerier Element Documentation ====== ===== NAME ===== **ARPQuerier** -- Click element; encapsulates IP packets in Ethernet headers found via ARP ===== SYNOPSIS ===== ARPQuerier(IP, ETH, //keywords//)\\ ARPQuerier(NAME, //keywords//) **Ports**: 2 inputs, 1-2 outputs\\ **Processing**: push\\ **Package**: ethernet (core)\\ ===== DESCRIPTION ===== Handles most of the ARP protocol. Argument IP should be this host's IP address, and ETH should be this host's Ethernet address. (In the one-argument form, NAME should be shorthand for both an IP and an Ethernet address; see [[AddressInfo]].) Packets arriving on input 0 should be IP packets, and must have their destination address annotations set. If an Ethernet address is already known for the destination, the IP packet is wrapped in an Ethernet header and sent to output 0. Otherwise the IP packet is saved and an ARP query is sent instead. If an ARP response arrives on input 1 for an IP address that we need, the mapping is recorded and any saved IP packets are sent. The ARP reply packets on input 1 should include the Ethernet header. ARPQuerier may have one or two outputs. If it has two, then ARP queries are sent to the second output. ARPQuerier will not send queries for packets addressed to 0.0.0.0, 255.255.255.255, or, if specified, any BROADCAST address. Packets addressed to 0.0.0.0 are dropped; packets for broadcast addresses are forwarded with destination Ethernet address FF:FF:FF:FF:FF:FF. Keyword arguments are: ? **CAPACITY** ! Unsigned integer. The maximum number of saved IP packets the element will hold at a time. Default is 2048. Note that, unlike the number of packets, the total number of ARP entries the element will hold is currently unlimited. ? **BROADCAST** ! IP address. Local broadcast IP address. Packets sent to this address will be forwarded to Ethernet address FF:FF:FF:FF:FF:FF. Defaults to the local broadcast address that can be extracted from the IP address's corresponding prefix, if any. ===== EXAMPLES ===== c :: Classifier(12/0806 20/0002, 12/0800, ...); a :: ARPQuerier(18.26.4.24, 00:00:C0:AE:67:EF); c[0] -> a[1]; c[1] -> ... -> a[0]; a[0] -> ... -> ToDevice(eth0); ===== NOTES ===== If a host has multiple interfaces, it will need multiple instances of ARPQuerier. ARPQuerier uses packets' destination IP address annotations, and can destroy their next packet annotations. ARPQuerier will send at most 10 queries a second for any IP address. ===== ELEMENT HANDLERS ===== ? **ipaddr (read/write)** ! Returns or sets the ARPQuerier's source IP address. ? **table (read-only)** ! Returns a textual representation of the ARP table. ? **stats (read-only)** ! Returns textual statistics (queries and drops). ? **queries (read-only)** ! Returns the number of queries sent. ? **responses (read-only)** ! Returns the number of responses received. ? **drops (read-only)** ! Returns the number of packets dropped. ===== SEE ALSO ===== [[ARPResponder]], [[ARPFaker]], [[AddressInfo]] Generated by 'click-elem2man' from '../elements/ethernet/arpquerier.hh' on 18/Sep/2007. ===== COMMENTS =====