New: * Add two manuals. New in 0.8 - 2003-09-15: * The timeout to wait a reply from a slave, the maximum amount of time to send packets and the maximum amount of time to aggregate packets are now configurable at runtime. * Daemonize the process by default. * Add new options, --foreground and --pid. * Use the same id as the master uses in a start packet when sending a corresponding end packet. * Filter out packets not for its own machine. * Check if an end packet has an expected id. * The packet driver makes sure that a device is awake before binding. * Fix a bug in queue_alloc. * Do not set devices to promiscuous mode. That decreases the performance significantly. New in 0.7 - 2003-09-01: * Support aggregation of packets. * Add THANKS. * Show a copyright notice with version information. * Add a serial ID into a start/end packet mostly for debugging. * Expose the MAC address of the outer device instead of the inner one. * Make sure that the source address of each outgoing packet is the MAC address of the outer device, and the destination address of each incoming packet is the MAC address of the inner device. * Add zero-paddings into a packet in a packet socket, if necessary. * Fix a bug in the IP checksum code which only affects big-endian architectures. New in 0.6 - 2003-08-23: * Segregate RTC support from the master code, to share it with the slave code. * Extend the start packet to specify a maximum send time. * Add support for the maximum send time into both the master and the slave. * Change the software name to PEWIT. * Add support for setting up MAC addresses, IP addresses and broadcast addresses of network devices. * Set up devices before starting the job. New in 0.5 - 2003-08-18: * Add new options, "address" and "broadcast", into the configuration. Also, add support for getting address and broadcast automatically. * Implement remaining parts of the config parser. * Don't use pthread any longer. It is easier to use a single-thread program in this project. * Make every write to a device interruptible. * Implement a quite simple rotation scheduling algorithm. * Add the option "--disable-rtc" to configure, because UML doesn't support /dev/rtc. New in 0.4 - 2003-08-06: * Implement parsers of command-line arguments and a configuration file. * Add code for memory pools and queues. * Divide the sender into a queuing part and a flushing part. * Fix a serious bug on the buffer size. * Modify the usage of the debug level. New in 0.3 - 2003-07-31: * Integrate libConfuse 2.1 and change the structure of the source tree dramatically. * Use Autoconf and Automake. New in 0.2 - 2003-07-29: * Rewrite the main part by using pthread instead of select. New in 0.1 - 2003-07-28: * The first prototype is made. The program "pmpd" works just as a bridge between two ethernet devices (e.g. eth0 and tap0). It has no negotiation, no queuing, and no scheduling.