This commit has several things.
- Fix to deal with FreeBSD 4.7 (4.x) problems with select() timeout and using BPF ioctl() BIOCSSEESENT. Several packets were being lost and depending on when exactly it happens, flows weren't making progress. In the particular case of 1 nse sending packets over 2 veths on the same pnode, this problem was the most severe. The kernel issues are discussed in the following freebsd arch mailing list. Also more discussions are on testbed-ops in the thread "bizarre veth/bpf/tcpdump behaviour" http://lists.freebsd.org/pipermail/freebsd-arch/2003-November/001446.html http://lists.freebsd.org/pipermail/freebsd-arch/2003-November/001439.html http://lists.freebsd.org/pipermail/freebsd-arch/2003-November/001444.html http://lists.freebsd.org/pipermail/freebsd-arch/2003-November/001447.html - The port classifier stores packet timestamps and sizes and can be made to dump them from the tcl side. The default is 100000 packets which is compiled in. This is on a per destination port basis. For a large number of simulator flows, it can eat up memory quickly. Will be removed out of the standard build after my thesis. The format of the output is <packet_timestamp> <size> <simulator_clock>, one per line. - In packets received from the wire, bpf timestamps (relative to start of nse) are stored in the simulator packet that is injected into the simulator. Again useful for traces. If the simulator packet is scheduled again, this timestamp will be overwritten to whenever the packet/event needs to be dispatched. - IPTap supports sendcount and recvcount methods (callable from Tcl) to print debugging info
Showing with 305 additions and 75 deletions